UNPKG

babel-plugin-system-import-transformer

Version:

Babel plugin that replaces System.import with the equivalent UMD pattern

54 lines (40 loc) 1.7 kB
"use strict"; 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;