From fc957a4a242e82f4e1af40d1a2ee45ff8d1692c4 Mon Sep 17 00:00:00 2001 From: Alexander Cerutti Date: Thu, 30 Sep 2021 23:52:52 +0200 Subject: [PATCH] Added optional props parameter to PKPass.from and renamed constructor parameter "overrides" to "props"; --- src/PKPass.ts | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/PKPass.ts b/src/PKPass.ts index ec6b58b..cb6a437 100644 --- a/src/PKPass.ts +++ b/src/PKPass.ts @@ -38,7 +38,10 @@ export default class PKPass extends Bundle { * @returns */ - static async from(source: PKPass | Schemas.Template): Promise { + static async from( + source: PKPass | Schemas.Template, + additionalProps: Schemas.OverridablePassProps = {}, + ): Promise { let certificates: Schemas.CertificatesSchema = undefined; let buffers: Schemas.FileBuffers = undefined; let overrides: Schemas.OverridablePassProps = {}; @@ -85,7 +88,21 @@ export default class PKPass extends Bundle { overrides = source.overrides || {}; } - return new PKPass(buffers, certificates, overrides); + if (additionalProps && Object.keys(additionalProps).length) { + const validation = Schemas.getValidated( + additionalProps, + Schemas.OverridablePassProps, + ); + + if (validation) { + Object.assign(overrides, validation); + } + } + + return new PKPass(buffers, certificates, { + ...overrides, + ...additionalProps, + }); } /** @@ -129,7 +146,7 @@ export default class PKPass extends Bundle { constructor( buffers: Schemas.FileBuffers, certificates: Schemas.CertificatesSchema, - overrides: Schemas.OverridablePassProps, + props: Schemas.OverridablePassProps, ) { super("application/vnd.apple.pkpass"); @@ -150,7 +167,7 @@ export default class PKPass extends Bundle { /** Overrides validation and pushing in props */ const overridesValidation = Schemas.getValidated( - overrides, + props, Schemas.OverridablePassProps, );