feeles-ide
Version:
The hackable and serializable IDE to make learning material
36 lines (30 loc) • 1.75 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = BabelWorker;
var _babel = _interopRequireDefault(require("raw-loader!../lib/escape-loader!@babel/standalone/babel.min"));
var _babelPresetEnvMin = _interopRequireDefault(require("raw-loader!@babel/preset-env-standalone/babel-preset-env.min.js"));
// raw-loader!escape-loader
var babelConfig = {
presets: [['env', {
targets: {
ie: 11
},
useBuiltIns: false
}]],
plugins: [['transform-runtime', {
corejs: false,
helpers: true,
regenerator: true,
useESModules: false
}]]
};
var prefix = "\nself.addEventListener(\"message\", function (event) {\n try {\n // Transpile the code\n var options = Object.assign({}, event.data.options, ".concat(JSON.stringify(babelConfig), ");\n var result = Babel.transform(event.data.code, options);\n // Send result\n self.postMessage({\n id: event.data.id,\n code: result && result.code\n });\n } catch (error) {\n // Throw babel error with processing\n self.postMessage({\n id: event.data.id,\n error: {\n code: error.code + '',\n message: error.message + '',\n stack: error.stack + '',\n loc: error.loc && {\n line: error.loc.line,\n column: error.loc.column\n },\n missingPlugin: error.missingPlugin\n }\n });\n // Show useful error info into console\n console.warn(error);\n }\n});\n");
var url = URL.createObjectURL(new Blob([prefix, _babel.default, _babelPresetEnvMin.default], {
type: 'text/javascript'
}));
function BabelWorker() {
return new Worker(url);
}