babel-plugin-debug-macros
Version:
Debug macros and feature flag stripping
61 lines • 8.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeOptions = void 0;
const semver_1 = require("semver");
function parseDebugTools(options) {
let debugTools = options.debugTools || {
isDebug: false,
source: '',
assertPredicateIndex: undefined,
};
let isDebug = debugTools.isDebug;
let debugToolsImport = debugTools.source;
let assertPredicateIndex = debugTools.assertPredicateIndex;
return {
isDebug,
debugToolsImport,
assertPredicateIndex,
};
}
function evaluateFlagValue(options, name, flagName, flagValue) {
let svelte = options.svelte;
if (typeof flagValue === 'string' && name) {
if (svelte && svelte[name]) {
return (0, semver_1.gt)(flagValue, svelte[name]);
}
else {
return null;
}
}
else if (typeof flagValue === 'boolean' || flagValue === null) {
return flagValue;
}
else if (flagValue === '@embroider/macros') {
return flagValue;
}
else {
throw new Error(`Invalid value specified (${flagValue}) for ${flagName} by ${name}`);
}
}
function parseFlags(options) {
let flagsProvided = options.flags || [];
let combinedFlags = {};
flagsProvided.forEach((flagsDefinition) => {
let source = flagsDefinition.source;
let flagsForSource = (combinedFlags[source] = combinedFlags[source] || {});
for (let flagName in flagsDefinition.flags) {
let flagValue = flagsDefinition.flags[flagName];
flagsForSource[flagName] = evaluateFlagValue(options, flagsDefinition.name, flagName, flagValue);
}
});
return combinedFlags;
}
function normalizeOptions(options) {
return {
externalizeHelpers: options.externalizeHelpers,
flags: parseFlags(options),
debugTools: parseDebugTools(options),
};
}
exports.normalizeOptions = normalizeOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbm9ybWFsaXplLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQTRCO0FBRTVCLFNBQVMsZUFBZSxDQUFDLE9BQW9CO0lBSzNDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUk7UUFDckMsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLEVBQUUsRUFBRTtRQUNWLG9CQUFvQixFQUFFLFNBQVM7S0FDaEMsQ0FBQztJQUVGLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFDakMsSUFBSSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ3pDLElBQUksb0JBQW9CLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO0lBRTNELE9BQU87UUFDTCxPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLE9BQW9CLEVBQ3BCLElBQXdCLEVBQ3hCLFFBQWdCLEVBQ2hCLFNBQXdEO0lBRXhELElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFFNUIsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFBLFdBQUUsRUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxPQUFPLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxJQUFJLFNBQVMsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsU0FBUyxTQUFTLFFBQVEsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQ2pCLE9BQW9CO0lBRXBCLElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRXhDLElBQUksYUFBYSxHQUF5RSxFQUFFLENBQUM7SUFDN0YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1FBQ3hDLElBQUksTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLEtBQUssSUFBSSxRQUFRLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNDLElBQUksU0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFaEQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLGlCQUFpQixDQUMxQyxPQUFPLEVBQ1AsZUFBZSxDQUFDLElBQUksRUFDcEIsUUFBUSxFQUNSLFNBQVMsQ0FDVixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQWlDRCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFvQjtJQUNuRCxPQUFPO1FBQ0wsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtRQUM5QyxLQUFLLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUMxQixVQUFVLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQztLQUNyQyxDQUFDO0FBQ0osQ0FBQztBQU5ELDRDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3QgfSBmcm9tICdzZW12ZXInO1xuXG5mdW5jdGlvbiBwYXJzZURlYnVnVG9vbHMob3B0aW9uczogVXNlck9wdGlvbnMpOiB7XG4gIGlzRGVidWc6IGJvb2xlYW4gfCAnQGVtYnJvaWRlci9tYWNyb3MnO1xuICBkZWJ1Z1Rvb2xzSW1wb3J0OiBzdHJpbmc7XG4gIGFzc2VydFByZWRpY2F0ZUluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59IHtcbiAgbGV0IGRlYnVnVG9vbHMgPSBvcHRpb25zLmRlYnVnVG9vbHMgfHwge1xuICAgIGlzRGVidWc6IGZhbHNlLFxuICAgIHNvdXJjZTogJycsXG4gICAgYXNzZXJ0UHJlZGljYXRlSW5kZXg6IHVuZGVmaW5lZCxcbiAgfTtcblxuICBsZXQgaXNEZWJ1ZyA9IGRlYnVnVG9vbHMuaXNEZWJ1ZztcbiAgbGV0IGRlYnVnVG9vbHNJbXBvcnQgPSBkZWJ1Z1Rvb2xzLnNvdXJjZTtcbiAgbGV0IGFzc2VydFByZWRpY2F0ZUluZGV4ID0gZGVidWdUb29scy5hc3NlcnRQcmVkaWNhdGVJbmRleDtcblxuICByZXR1cm4ge1xuICAgIGlzRGVidWcsXG4gICAgZGVidWdUb29sc0ltcG9ydCxcbiAgICBhc3NlcnRQcmVkaWNhdGVJbmRleCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZXZhbHVhdGVGbGFnVmFsdWUoXG4gIG9wdGlvbnM6IFVzZXJPcHRpb25zLFxuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGZsYWdOYW1lOiBzdHJpbmcsXG4gIGZsYWdWYWx1ZTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bGwgfCBcIkBlbWJyb2lkZXIvbWFjcm9zXCJcbik6IGJvb2xlYW4gfCBudWxsIHwgXCJAZW1icm9pZGVyL21hY3Jvc1wiIHtcbiAgbGV0IHN2ZWx0ZSA9IG9wdGlvbnMuc3ZlbHRlO1xuXG4gIGlmICh0eXBlb2YgZmxhZ1ZhbHVlID09PSAnc3RyaW5nJyAmJiBuYW1lKSB7XG4gICAgaWYgKHN2ZWx0ZSAmJiBzdmVsdGVbbmFtZV0pIHtcbiAgICAgIHJldHVybiBndChmbGFnVmFsdWUsIHN2ZWx0ZVtuYW1lXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgZmxhZ1ZhbHVlID09PSAnYm9vbGVhbicgfHwgZmxhZ1ZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZsYWdWYWx1ZTtcbiAgfSBlbHNlIGlmIChmbGFnVmFsdWUgPT09ICdAZW1icm9pZGVyL21hY3JvcycpIHtcbiAgICByZXR1cm4gZmxhZ1ZhbHVlO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQgKCR7ZmxhZ1ZhbHVlfSkgZm9yICR7ZmxhZ05hbWV9IGJ5ICR7bmFtZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUZsYWdzKFxuICBvcHRpb25zOiBVc2VyT3B0aW9uc1xuKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYm9vbGVhbiB8IG51bGwgfCAnQGVtYnJvaWRlci9tYWNyb3MnPj4ge1xuICBsZXQgZmxhZ3NQcm92aWRlZCA9IG9wdGlvbnMuZmxhZ3MgfHwgW107XG5cbiAgbGV0IGNvbWJpbmVkRmxhZ3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBudWxsIHwgJ0BlbWJyb2lkZXIvbWFjcm9zJz4+ID0ge307XG4gIGZsYWdzUHJvdmlkZWQuZm9yRWFjaCgoZmxhZ3NEZWZpbml0aW9uKSA9PiB7XG4gICAgbGV0IHNvdXJjZSA9IGZsYWdzRGVmaW5pdGlvbi5zb3VyY2U7XG4gICAgbGV0IGZsYWdzRm9yU291cmNlID0gKGNvbWJpbmVkRmxhZ3Nbc291cmNlXSA9IGNvbWJpbmVkRmxhZ3Nbc291cmNlXSB8fCB7fSk7XG5cbiAgICBmb3IgKGxldCBmbGFnTmFtZSBpbiBmbGFnc0RlZmluaXRpb24uZmxhZ3MpIHtcbiAgICAgIGxldCBmbGFnVmFsdWUgPSBmbGFnc0RlZmluaXRpb24uZmxhZ3NbZmxhZ05hbWVdO1xuXG4gICAgICBmbGFnc0ZvclNvdXJjZVtmbGFnTmFtZV0gPSBldmFsdWF0ZUZsYWdWYWx1ZShcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgZmxhZ3NEZWZpbml0aW9uLm5hbWUsXG4gICAgICAgIGZsYWdOYW1lLFxuICAgICAgICBmbGFnVmFsdWVcbiAgICAgICk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gY29tYmluZWRGbGFncztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxpemVkT3B0aW9ucyB7XG4gIGV4dGVybmFsaXplSGVscGVycz86IHtcbiAgICBtb2R1bGU/OiBib29sZWFuO1xuICAgIGdsb2JhbD86IHN0cmluZztcbiAgfTtcbiAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBudWxsIHwgJ0BlbWJyb2lkZXIvbWFjcm9zJz4+O1xuICBkZWJ1Z1Rvb2xzOiB7XG4gICAgaXNEZWJ1ZzogYm9vbGVhbiB8ICdAZW1icm9pZGVyL21hY3Jvcyc7XG4gICAgZGVidWdUb29sc0ltcG9ydDogc3RyaW5nO1xuICAgIGFzc2VydFByZWRpY2F0ZUluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck9wdGlvbnMge1xuICBleHRlcm5hbGl6ZUhlbHBlcnM/OiB7XG4gICAgbW9kdWxlPzogYm9vbGVhbjtcbiAgICBnbG9iYWw/OiBzdHJpbmc7XG4gIH07XG4gIHN2ZWx0ZT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGZsYWdzPzoge1xuICAgIHNvdXJjZTogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsIHwgJ0BlbWJyb2lkZXIvbWFjcm9zJz47XG4gIH1bXTtcbiAgZGVidWdUb29scz86IHtcbiAgICBpc0RlYnVnOiBib29sZWFuIHwgJ0BlbWJyb2lkZXIvbWFjcm9zJztcbiAgICBzb3VyY2U6IHN0cmluZztcbiAgICBhc3NlcnRQcmVkaWNhdGVJbmRleD86IG51bWJlcjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZU9wdGlvbnMob3B0aW9uczogVXNlck9wdGlvbnMpOiBOb3JtYWxpemVkT3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgZXh0ZXJuYWxpemVIZWxwZXJzOiBvcHRpb25zLmV4dGVybmFsaXplSGVscGVycyxcbiAgICBmbGFnczogcGFyc2VGbGFncyhvcHRpb25zKSxcbiAgICBkZWJ1Z1Rvb2xzOiBwYXJzZURlYnVnVG9vbHMob3B0aW9ucyksXG4gIH07XG59XG4iXX0=