@web/dev-server-legacy
Version:
Plugin for legacy browsers in @web/dev-server
58 lines • 2.3 kB
JavaScript
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.babelTransform = exports.systemJsConfig = exports.es5Config = void 0;
const core_1 = require("@babel/core");
exports.es5Config = {
caller: {
name: '@web/dev-server-legacy',
supportsStaticESM: true,
},
sourceType: 'module',
babelrc: false,
configFile: false,
presets: [
[
require.resolve('@babel/preset-env'),
{
targets: ['defaults', 'ie 10'],
useBuiltIns: false,
shippedProposals: true,
modules: false,
bugfixes: true,
},
],
],
/**
* Enable syntax plugins for stage 3 features. This does **not** transform them,
* it only ensures that babel does not crash when you're using them.
*/
plugins: [
require.resolve('@babel/plugin-syntax-import-meta'),
require.resolve('@babel/plugin-syntax-class-properties'),
require.resolve('@babel/plugin-syntax-numeric-separator'),
require.resolve('@babel/plugin-syntax-dynamic-import'),
],
};
exports.systemJsConfig = Object.assign(Object.assign({}, exports.es5Config), { plugins: [
...((_a = exports.es5Config.plugins) !== null && _a !== void 0 ? _a : []),
require.resolve('@babel/plugin-proposal-dynamic-import'),
require.resolve('@babel/plugin-transform-modules-systemjs'),
// systemjs adds template literals, we do systemjs after (potential)
// es5 compilation so we need to ensure it stays es5
require.resolve('@babel/plugin-transform-template-literals'),
] });
async function babelTransform(filename, source, config) {
const largeFile = source.length > 100000;
const result = await (0, core_1.transformAsync)(source, Object.assign({ filename,
// prevent generating pretty output for large files
compact: largeFile,
// babel runs out of memory when processing source maps andfor large files
sourceMaps: !largeFile }, config));
if (!result || typeof result.code !== 'string') {
throw new Error('Failed to transform');
}
return result.code;
}
exports.babelTransform = babelTransform;
//# sourceMappingURL=babelTransform.js.map
;