UNPKG

@playlyfe/babel-loader

Version:
92 lines (73 loc) 3.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = loader; var babel = _interopRequireWildcard(require("@babel/core")); var _loaderUtils = _interopRequireDefault(require("loader-utils")); var _path = _interopRequireDefault(require("path")); var _cacheTransform = _interopRequireDefault(require("./utils/cache-transform")); var _cacheIdentifier = _interopRequireDefault(require("./utils/cache-identifier")); var _babelConfigCacheIdentifier = require("./utils/babel-config-cache-identifier"); var _isRelaySource = _interopRequireDefault(require("./utils/is-relay-source")); var _transform = _interopRequireDefault(require("./transform")); var _package = _interopRequireDefault(require("../package.json")); /* eslint-disable playlyfe/babel-no-invalid-this */ async function loader(source, inputSourceMap) { const filename = this.resourcePath; const isRelay = (0, _isRelaySource.default)(source); const sourceRoot = process.cwd(); const userOptions = _loaderUtils.default.getOptions(this) || {}; const options = { filename, inputSourceMap, sourceRoot, sourceMap: this.sourceMap, sourceFileName: _path.default.relative(sourceRoot, filename), caller: { name: '@playlyfe/babel-loader', supportsStaticESM: true, supportsDynamicImport: true } }; const config = babel.loadPartialConfig(options); const tOptions = Object.assign({ isRelay }, options); if (config) { let result = null; if (userOptions.cacheDirectory) { result = await (0, _cacheTransform.default)({ directory: userOptions.cacheDirectory, sourceFileName: options.sourceFileName, identifier: _cacheIdentifier.default.generate({ babelCore: babel.version, babelLoader: _package.default.version, babelConfig: (0, _babelConfigCacheIdentifier.genBabelConfigCacheIdentifier)({ babelConfig: { root: config.options.root, envName: config.options.envName, presets: config.options.presets, plugins: config.options.plugins }, isRelay }), source: _loaderUtils.default.getHashDigest(source), env: process.env.BABEL_ENV || process.env.NODE_ENV }), transform: (oldIdentifier, newIdentifier) => { const diffTags = _cacheIdentifier.default.diff(oldIdentifier, newIdentifier); return (0, _transform.default)(source, tOptions, diffTags); } }); } else { result = (0, _transform.default)(source, tOptions); } // storeInModuleMeta(this._module, result.metadata); return [result.code, result.map]; } return [source, inputSourceMap]; } // function storeInModuleMeta(_module, metadata) { // _module.buildMeta.babel = metadata; // eslint-disable-line no-param-reassign // }