@storm-stack/core
Version:
A build toolkit and runtime used by Storm Software in TypeScript applications
133 lines (127 loc) • 4.87 kB
JavaScript
var chunkPWXX6DQI_cjs = require('./chunk-PWXX6DQI.cjs');
var chunkGRNJVY7I_cjs = require('./chunk-GRNJVY7I.cjs');
var types = require('@storm-software/config-tools/types');
var isFunction = require('@stryke/type-checks/is-function');
var chalk = require('chalk');
var defu = require('defu');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
var defu__default = /*#__PURE__*/_interopDefault(defu);
function resolveBabelPlugins(log, context, sourceFile, options = {}) {
return !options.plugins ? [] : options.plugins.reduce((ret, plugin) => {
if (!chunkPWXX6DQI_cjs.isDuplicatePlugin(ret, plugin)) {
if (Array.isArray(plugin) && plugin.length > 0 && plugin[0]) {
if (sourceFile && plugin.length > 2 && plugin[2] && isFunction.isFunction(plugin[2].filter) && // eslint-disable-next-line ts/no-unsafe-call
!plugin[2].filter(sourceFile)) {
log(types.LogLevelLabel.TRACE, `Skipping filtered Babel plugin ${chalk__default.default.bold.cyanBright(chunkPWXX6DQI_cjs.getPluginName(plugin) || "unnamed")} for ${sourceFile.id}`);
return ret;
}
ret.push([
isFunction.isFunction(plugin[0]) ? plugin[0](context) : plugin[0],
{
...plugin.length > 1 && plugin[1] ? plugin[1] : {},
options
},
plugin.length > 2 ? plugin[2] : void 0
]);
} else {
ret.push([
isFunction.isFunction(plugin) ? plugin(context) : plugin,
{
options
},
void 0
]);
}
} else {
log(types.LogLevelLabel.INFO, `Skipping duplicate Babel plugin ${chunkPWXX6DQI_cjs.getPluginName(plugin)}${sourceFile?.id ? ` for ${sourceFile.id}` : ""}`);
}
return ret;
}, []);
}
chunkGRNJVY7I_cjs.__name(resolveBabelPlugins, "resolveBabelPlugins");
function resolveBabelPresets(log, context, sourceFile, options = {}) {
return !options.presets ? [] : options.presets.reduce((ret, preset) => {
if (!chunkPWXX6DQI_cjs.isDuplicatePlugin(ret, preset)) {
if (Array.isArray(preset) && preset.length > 0 && preset[0]) {
if (sourceFile && preset.length > 2 && preset[2] && isFunction.isFunction(preset[2].filter) && // eslint-disable-next-line ts/no-unsafe-call
!preset[2].filter(sourceFile)) {
log(types.LogLevelLabel.INFO, `Skipping filtered Babel preset ${chunkPWXX6DQI_cjs.getPluginName(preset)} for ${sourceFile.id}`);
return ret;
}
ret.push([
isFunction.isFunction(preset[0]) ? preset[0](context) : preset[0],
{
...preset.length > 1 && preset[1] ? preset[1] : {},
options
},
preset.length > 2 ? preset[2] : void 0
]);
} else {
ret.push([
isFunction.isFunction(preset) ? preset(context) : preset,
{
options
},
void 0
]);
}
} else {
log(types.LogLevelLabel.INFO, `Skipping duplicate Babel preset ${chunkPWXX6DQI_cjs.getPluginName(preset)}${sourceFile?.id ? ` for ${sourceFile.id}` : ""}`);
}
return ret;
}, []);
}
chunkGRNJVY7I_cjs.__name(resolveBabelPresets, "resolveBabelPresets");
function resolveBabelInputOptions(context, options = {}, plugins = [], presets = []) {
return defu__default.default({
plugins: [
"@babel/plugin-syntax-typescript",
...plugins.map((plugin) => {
return [
plugin[0],
defu__default.default(plugin.length > 1 && plugin[1] ? plugin[1] : {}, {
options
}),
plugin[0]?.name
];
})
],
presets: presets.map((preset) => {
return [
preset[0],
defu__default.default(preset.length > 1 && preset[1] ? preset[1] : {}, {
options
}),
preset[0]?.name
];
})
}, options ? {
...options,
plugins: [],
presets: []
} : {}, {
highlightCode: true,
code: true,
ast: false,
cloneInputAst: false,
comments: true,
sourceType: "module",
configFile: false,
babelrc: false,
envName: context.options.mode,
caller: {
name: "storm-stack"
}
});
}
chunkGRNJVY7I_cjs.__name(resolveBabelInputOptions, "resolveBabelInputOptions");
function resolveBabelOptions(context, log = context.log, options = {}) {
return resolveBabelInputOptions(context, options, resolveBabelPlugins(log, context, void 0, options), resolveBabelPresets(log, context, void 0, options));
}
chunkGRNJVY7I_cjs.__name(resolveBabelOptions, "resolveBabelOptions");
exports.resolveBabelInputOptions = resolveBabelInputOptions;
exports.resolveBabelOptions = resolveBabelOptions;
exports.resolveBabelPlugins = resolveBabelPlugins;
exports.resolveBabelPresets = resolveBabelPresets;
;