Added overrides handling in PKPass.from

This commit is contained in:
Alexander Cerutti
2021-09-28 21:49:03 +02:00
parent 27a941f2f1
commit 2ed39b3c59

View File

@@ -47,6 +47,7 @@ export default class PKPass extends Bundle {
static async from(source: PKPass | Schemas.Template): Promise<PKPass> { static async from(source: PKPass | Schemas.Template): Promise<PKPass> {
let certificates: Schemas.CertificatesSchema = undefined; let certificates: Schemas.CertificatesSchema = undefined;
let buffers: NamedBuffers = undefined; let buffers: NamedBuffers = undefined;
let overrides: Schemas.OverridablePassProps = {};
if (!source) { if (!source) {
throw new TypeError( throw new TypeError(
@@ -68,6 +69,16 @@ export default class PKPass extends Bundle {
buffers[fileName] = Buffer.alloc(contentBuffer.length); buffers[fileName] = Buffer.alloc(contentBuffer.length);
contentBuffer.copy(buffers[fileName]); contentBuffer.copy(buffers[fileName]);
} }
/**
* Moving props to pass.json instead of overrides
* because many might get excluded when passing
* through validation
*/
buffers["pass.json"] = Buffer.from(
JSON.stringify(source[propsSymbol]),
);
} else { } else {
if (!source.model || typeof source.model !== "string") { if (!source.model || typeof source.model !== "string") {
throw new TypeError( throw new TypeError(
@@ -76,9 +87,11 @@ export default class PKPass extends Bundle {
} }
buffers = await getModelFolderContents(source.model); buffers = await getModelFolderContents(source.model);
certificates = source.certificates;
overrides = source.overrides || {};
} }
return new PKPass(buffers, certificates, {}); return new PKPass(buffers, certificates, overrides);
} }
/** /**