UNPKG

@scriptables/manifest

Version:

Utilities to generate, parse, and update manifest headers in Scriptable scripts.

43 lines (42 loc) 1.32 kB
const BooleanConverter = (value) => { if (typeof value === "boolean") { return value; } if (typeof value === "number" && (value === 0 || value === 1)) { return value === 1; } if (typeof value === "string") { const lower = value.toLowerCase(); return lower === "true" || lower === "1"; } return value; }; const ToLowerCaseConverter = (value) => { if (typeof value === "string") { return value.toLowerCase(); } return value; }; const ShareSheetInputsConverter = (value) => { const array = Array.isArray(value) ? value : [value]; return array.map((item) => String(item).toLowerCase()); }; const converters = { alwaysRunInApp: BooleanConverter, shareSheetInputs: ShareSheetInputsConverter, iconColor: ToLowerCaseConverter, iconGlyph: ToLowerCaseConverter }; function normalizeManifest(manifest) { const normalized = {}; for (const [key, value] of Object.entries(manifest ?? {})) { const normalizedKey = key.replace(/[-_](.)/g, (_, c) => c.toUpperCase()); const converter = converters[normalizedKey] || ((val) => val); const normalizedValue = converter(value); normalized[normalizedKey] = normalizedValue; } return normalized; } export { normalizeManifest }; //# sourceMappingURL=normalizeManifest.js.map //# sourceMappingURL=normalizeManifest.js.map