animate/webGl/my-threejs-test/node_modules/@parcel/transformer-babel/lib/babel7.js

133 lines
4.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = babel7;
function _assert() {
const data = _interopRequireDefault(require("assert"));
_assert = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _diagnostic() {
const data = require("@parcel/diagnostic");
_diagnostic = function () {
return data;
};
return data;
}
function _utils() {
const data = require("@parcel/utils");
_utils = function () {
return data;
};
return data;
}
var _remapAstLocations = require("./remapAstLocations");
var _package = _interopRequireDefault(require("../package.json"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const transformerVersion = _package.default.version;
(0, _assert().default)(typeof transformerVersion === 'string');
async function babel7(opts) {
var _babelOptions$config$, _babelOptions$config$2, _babelOptions$syntaxP;
let {
asset,
options,
babelOptions,
additionalPlugins = [],
tracer
} = opts;
const babelCore = await options.packageManager.require('@babel/core', asset.filePath, {
range: '^7.12.0',
saveDev: true,
shouldAutoInstall: options.shouldAutoInstall
});
let config = {
...babelOptions.config,
plugins: additionalPlugins.concat(babelOptions.config.plugins),
code: false,
ast: true,
filename: asset.filePath,
babelrc: false,
configFile: false,
parserOpts: {
...babelOptions.config.parserOpts,
sourceFilename: (0, _utils().relativeUrl)(options.projectRoot, asset.filePath),
allowReturnOutsideFunction: true,
strictMode: false,
sourceType: 'module',
plugins: [...((_babelOptions$config$ = (_babelOptions$config$2 = babelOptions.config.parserOpts) === null || _babelOptions$config$2 === void 0 ? void 0 : _babelOptions$config$2.plugins) !== null && _babelOptions$config$ !== void 0 ? _babelOptions$config$ : []), ...((_babelOptions$syntaxP = babelOptions.syntaxPlugins) !== null && _babelOptions$syntaxP !== void 0 ? _babelOptions$syntaxP : []),
// Applied by preset-env
'classProperties', 'classPrivateProperties', 'classPrivateMethods', 'exportDefaultFrom'
// 'topLevelAwait'
]
},
caller: {
name: 'parcel',
version: transformerVersion,
targets: JSON.stringify(babelOptions.targets),
outputFormat: asset.env.outputFormat
}
};
if (tracer.enabled) {
config.wrapPluginVisitorMethod = (key, nodeType, fn) => {
return function () {
let pluginKey = key;
if (pluginKey.startsWith(options.projectRoot)) {
pluginKey = _path().default.relative(options.projectRoot, pluginKey);
}
const measurement = tracer.createMeasurement(pluginKey, nodeType, _path().default.relative(options.projectRoot, asset.filePath));
fn.apply(this, arguments);
measurement && measurement.end();
};
};
}
let ast = await asset.getAST();
let res;
if (ast) {
res = await babelCore.transformFromAstAsync(ast.program, asset.isASTDirty() ? undefined : await asset.getCode(), config);
} else {
res = await babelCore.transformAsync(await asset.getCode(), config);
if (res.ast) {
let map = await asset.getMap();
if (map) {
(0, _remapAstLocations.remapAstLocations)(babelCore.types, res.ast, map);
}
}
if (res.externalDependencies) {
for (let f of res.externalDependencies) {
if (!_path().default.isAbsolute(f)) {
opts.logger.warn({
message: (0, _diagnostic().md)`Ignoring non-absolute Babel external dependency: ${f}`,
hints: ['Please report this to the corresponding Babel plugin and/or to Parcel.']
});
} else {
if (await options.inputFS.exists(f)) {
asset.invalidateOnFileChange(f);
} else {
asset.invalidateOnFileCreate({
filePath: f
});
}
}
}
}
}
if (res.ast) {
asset.setAST({
type: 'babel',
version: '7.0.0',
program: res.ast
});
}
}