UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

133 lines (127 loc) 4.87 kB
'use strict'; 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;