GT2/Ejectable/node_modules/babel-plugin-module-resolver/lib/index.js

64 lines
1.5 KiB
JavaScript

"use strict";
exports.__esModule = true;
exports.default = void 0;
var _normalizeOptions = _interopRequireDefault(require("./normalizeOptions"));
var _resolvePath = _interopRequireDefault(require("./resolvePath"));
exports.resolvePath = _resolvePath.default;
var _call = _interopRequireDefault(require("./transformers/call"));
var _import = _interopRequireDefault(require("./transformers/import"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Public API for external plugins
const importVisitors = {
CallExpression: _call.default,
'ImportDeclaration|ExportDeclaration': _import.default
};
const visitor = {
Program: {
enter(programPath, state) {
programPath.traverse(importVisitors, state);
},
exit(programPath, state) {
programPath.traverse(importVisitors, state);
}
}
};
var _default = ({
types
}) => ({
name: 'module-resolver',
manipulateOptions(opts) {
if (opts.filename === undefined) {
opts.filename = 'unknown';
}
},
pre(file) {
this.types = types;
const currentFile = file.opts.filename;
this.normalizedOpts = (0, _normalizeOptions.default)(currentFile, this.opts); // We need to keep track of all handled nodes so we do not try to transform them twice,
// because we run before (enter) and after (exit) all nodes are handled
this.moduleResolverVisited = new Set();
},
visitor,
post() {
this.moduleResolverVisited.clear();
}
});
exports.default = _default;