astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
38 lines (29 loc) • 1.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = compileImportDeclarationReplacement;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _GenericNodeReplacement = _interopRequireDefault(require("./GenericNodeReplacement"));
function compileImportDeclarationReplacement(path, compileOptions) {
var n = compileOptions.backend.t.namedTypes;
var replacement = (0, _GenericNodeReplacement["default"])(path, compileOptions);
return {
generate: function generate(match) {
var result = replacement.generate(match);
if (result.specifiers) {
// move ImportDefaultSpecifier to beginning if necessary
// because @babel/generator craps out otherwise
var defaultIndex = result.specifiers.findIndex(function (s) {
return n.ImportDefaultSpecifier.check(s);
});
if (defaultIndex > 0) {
var _result$specifiers;
(_result$specifiers = result.specifiers).unshift.apply(_result$specifiers, (0, _toConsumableArray2["default"])(result.specifiers.splice(defaultIndex, 1)));
}
}
return result;
}
};
}