@scriptables/manifest
Version:
Utilities to generate, parse, and update manifest headers in Scriptable scripts.
35 lines (32 loc) • 1.42 kB
JavaScript
;
var generateScriptableBanner = require('./generateScriptableBanner');
var normalizeManifest = require('./normalizeManifest');
var parseScriptableManifest = require('./parseScriptableManifest');
var scriptHeaderNotices = require('./scriptHeaderNotices');
function mergeScriptableBanner(script, manifestOrOldScript) {
if (!script || !script.includes(scriptHeaderNotices.SCRIPT_HEADER_NOTICES[0])) {
return {
banner: generateScriptableBanner.generateScriptableBanner(manifestOrOldScript),
content: script || ""
};
}
const { manifest: currentManifest, content: scriptContent } = parseScriptableManifest.parseScriptableManifest(script);
let finalManifest = currentManifest ?? {};
if (manifestOrOldScript) {
if (typeof manifestOrOldScript === "string") {
const { manifest } = parseScriptableManifest.parseScriptableManifest(manifestOrOldScript);
if (manifest && Object.keys(manifest).length) {
finalManifest = { ...finalManifest, ...manifest };
}
} else {
finalManifest = { ...finalManifest, ...normalizeManifest.normalizeManifest(manifestOrOldScript) };
}
}
return {
banner: generateScriptableBanner.generateScriptableBanner(finalManifest),
content: scriptContent
};
}
exports.mergeScriptableBanner = mergeScriptableBanner;
//# sourceMappingURL=mergeScriptableBanner.js.map
//# sourceMappingURL=mergeScriptableBanner.js.map