Only log warnings for unrecognized metadata properties.

pull/43/head
Atul Varma 2021-02-28 18:57:51 -05:00
rodzic c024f24853
commit c62214186b
3 zmienionych plików z 30 dodań i 10 usunięć

Wyświetl plik

@ -23,8 +23,11 @@ describe("validateSvgSymbolMetadata()", () => {
always_be_nested: true, always_be_nested: true,
}) })
).toEqual({ ).toEqual({
always_nest: true, metadata: {
always_be_nested: true, always_nest: true,
always_be_nested: true,
},
unknownProperties: [],
}); });
}); });
@ -37,10 +40,14 @@ describe("validateSvgSymbolMetadata()", () => {
}); });
it("raises errors when a property is unrecognized", () => { it("raises errors when a property is unrecognized", () => {
expect(() => expect(
validateSvgSymbolMetadata({ validateSvgSymbolMetadata({
always_nest: true,
blarp: true, blarp: true,
}) })
).toThrow('Unrecognized SVG symbol metadata property "blarp"'); ).toEqual({
metadata: { always_nest: true },
unknownProperties: ["blarp"],
});
}); });
}); });

Wyświetl plik

@ -25,8 +25,11 @@ function isSvgSymbolMetadataBoolean(
export type SvgSymbolMetadata = SvgSymbolMetadataBooleans; export type SvgSymbolMetadata = SvgSymbolMetadataBooleans;
export function validateSvgSymbolMetadata(obj: any): SvgSymbolMetadata { export function validateSvgSymbolMetadata(
const result: SvgSymbolMetadata = {}; obj: any
): { metadata: SvgSymbolMetadata; unknownProperties: string[] } {
const metadata: SvgSymbolMetadata = {};
const unknownProperties: string[] = [];
for (let key in obj) { for (let key in obj) {
const value: unknown = obj[key]; const value: unknown = obj[key];
if (isSvgSymbolMetadataBoolean(key)) { if (isSvgSymbolMetadataBoolean(key)) {
@ -35,10 +38,10 @@ export function validateSvgSymbolMetadata(obj: any): SvgSymbolMetadata {
`Expected "${key}" to be a boolean, but it is a ${typeof value}!` `Expected "${key}" to be a boolean, but it is a ${typeof value}!`
); );
} }
result[key] = value; metadata[key] = value;
} else { } else {
throw new Error(`Unrecognized SVG symbol metadata property "${key}"`); unknownProperties.push(key);
} }
} }
return result; return { metadata, unknownProperties };
} }

Wyświetl plik

@ -127,7 +127,17 @@ export function build() {
}); });
const symbol = convertSvgMarkupToSymbolData(filename, svgMarkup); const symbol = convertSvgMarkupToSymbolData(filename, svgMarkup);
if (metaToml) { if (metaToml) {
symbol.meta = validateSvgSymbolMetadata(toml.parse(metaToml)); const { metadata, unknownProperties } = validateSvgSymbolMetadata(
toml.parse(metaToml)
);
symbol.meta = metadata;
if (unknownProperties.length) {
console.log(
`WARNING: Found unknown metadata properties ${unknownProperties.join(
", "
)}.`
);
}
} }
vocab.push(symbol); vocab.push(symbol);
} }