From d41a592a691f596e145e98b0463335216ef55f15 Mon Sep 17 00:00:00 2001 From: Alexander Cerutti Date: Sun, 26 Sep 2021 16:39:00 +0200 Subject: [PATCH] Added color parsing in closePassSymbol method --- src/PKPass.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/PKPass.ts b/src/PKPass.ts index 5588edc..72389c3 100644 --- a/src/PKPass.ts +++ b/src/PKPass.ts @@ -7,6 +7,7 @@ import { processDate } from "./processDate"; import forge from "node-forge"; import * as Signature from "./signature"; import { EOL } from "os"; +import { isValidRGB } from "./utils"; /** Exporting for tests specs */ export const propsSymbol = Symbol("props"); @@ -389,6 +390,30 @@ export default class PKPass extends Bundle { } private [closePassSymbol]() { + /** + * Filtering colors props that have an + * invalid RGB value + */ + + const passColors = [ + "backgroundColor", + "foregroundColor", + "labelColor", + ] as Array; + + for (let i = 0; i < passColors.length; i++) { + const colorProperty = passColors[i]; + const colorInProps = this[propsSymbol][colorProperty]; + + if (colorInProps && !isValidRGB(colorInProps)) { + console.warn( + `'${colorProperty}' property has been removed from pass.json as it has not a valid RGB-strin value.`, + ); + + delete this[propsSymbol][colorProperty]; + } + } + const passJson = Buffer.from(JSON.stringify(this[propsSymbol])); super.addBuffer("pass.json", passJson);