babel-plugin-system-import-transformer
Version:
Babel plugin that replaces System.import with the equivalent UMD pattern
54 lines (40 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
var _pluginSyntaxDynamicImport = _interopRequireDefault(require("@babel/plugin-syntax-dynamic-import"));
var _babelArgumentProvider = require("./babelArgumentProvider");
var _SystemImportExpressionTransformer = _interopRequireDefault(require("./SystemImportExpressionTransformer"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PATTERN_SYSTEM_IMPORT = 'System.import';
var TYPE_IMPORT = 'Import';
var _default = (0, _helperPluginUtils.declare)(function (api) {
api.assertVersion(7);
return {
inherits: _pluginSyntaxDynamicImport.default,
visitor: {
CallExpression: function CallExpression(path, state) {
var callee = path.get('callee');
if (!callee) {
return;
}
var pluginOptions = state.opts || {};
var syntax = pluginOptions.syntax || {};
if (syntax['system-import'] !== false && callee.matchesPattern(PATTERN_SYSTEM_IMPORT) || syntax.import !== false && callee.type === TYPE_IMPORT) {
var params = path.get('arguments');
if (params.length) {
(0, _babelArgumentProvider.setBabelArgument)(api);
var transformer = new _SystemImportExpressionTransformer.default(state, params);
var transformedExpression = transformer.createTransformedExpression();
if (transformedExpression) {
path.replaceWith(transformedExpression);
}
}
}
}
}
};
});
exports.default = _default;