astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
28 lines (26 loc) • 3.89 kB
JavaScript
import compileGenericNodeReplacement from './GenericNodeReplacement.mjs'
export default function compileImportDeclarationReplacement(
path,
compileOptions
) {
const n = compileOptions.backend.t.namedTypes
const replacement = compileGenericNodeReplacement(path, compileOptions)
return {
generate: (match) => {
const result = replacement.generate(match)
if (result.specifiers) {
// move ImportDefaultSpecifier to beginning if necessary
// because @babel/generator craps out otherwise
const defaultIndex = result.specifiers.findIndex((s) =>
n.ImportDefaultSpecifier.check(s)
)
if (defaultIndex > 0) {
result.specifiers.unshift(
...result.specifiers.splice(defaultIndex, 1)
)
}
}
return result
},
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlR2VuZXJpY05vZGVSZXBsYWNlbWVudCIsImNvbXBpbGVJbXBvcnREZWNsYXJhdGlvblJlcGxhY2VtZW50IiwicGF0aCIsImNvbXBpbGVPcHRpb25zIiwibiIsImJhY2tlbmQiLCJ0IiwibmFtZWRUeXBlcyIsInJlcGxhY2VtZW50IiwiZ2VuZXJhdGUiLCJtYXRjaCIsInJlc3VsdCIsInNwZWNpZmllcnMiLCJkZWZhdWx0SW5kZXgiLCJmaW5kSW5kZXgiLCJzIiwiSW1wb3J0RGVmYXVsdFNwZWNpZmllciIsImNoZWNrIiwidW5zaGlmdCIsInNwbGljZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlUmVwbGFjZW1lbnQvSW1wb3J0RGVjbGFyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW1wb3J0RGVjbGFyYXRpb24sIE5vZGVQYXRoLCBOb2RlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQge1xuICBDb21waWxlZFJlcGxhY2VtZW50LFxuICBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zLFxuICBSZXBsYWNlYWJsZU1hdGNoLFxufSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVHZW5lcmljTm9kZVJlcGxhY2VtZW50IGZyb20gJy4vR2VuZXJpY05vZGVSZXBsYWNlbWVudCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZUltcG9ydERlY2xhcmF0aW9uUmVwbGFjZW1lbnQoXG4gIHBhdGg6IE5vZGVQYXRoPEltcG9ydERlY2xhcmF0aW9uLCBJbXBvcnREZWNsYXJhdGlvbj4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zXG4pOiBDb21waWxlZFJlcGxhY2VtZW50IHwgdm9pZCB7XG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCByZXBsYWNlbWVudCA9IGNvbXBpbGVHZW5lcmljTm9kZVJlcGxhY2VtZW50KHBhdGgsIGNvbXBpbGVPcHRpb25zKVxuICByZXR1cm4ge1xuICAgIGdlbmVyYXRlOiAobWF0Y2g6IFJlcGxhY2VhYmxlTWF0Y2gpOiBOb2RlIHwgTm9kZVtdID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdDogSW1wb3J0RGVjbGFyYXRpb24gPSByZXBsYWNlbWVudC5nZW5lcmF0ZShtYXRjaCkgYXMgYW55XG4gICAgICBpZiAocmVzdWx0LnNwZWNpZmllcnMpIHtcbiAgICAgICAgLy8gbW92ZSBJbXBvcnREZWZhdWx0U3BlY2lmaWVyIHRvIGJlZ2lubmluZyBpZiBuZWNlc3NhcnlcbiAgICAgICAgLy8gYmVjYXVzZSBAYmFiZWwvZ2VuZXJhdG9yIGNyYXBzIG91dCBvdGhlcndpc2VcbiAgICAgICAgY29uc3QgZGVmYXVsdEluZGV4ID0gcmVzdWx0LnNwZWNpZmllcnMuZmluZEluZGV4KChzKSA9PlxuICAgICAgICAgIG4uSW1wb3J0RGVmYXVsdFNwZWNpZmllci5jaGVjayhzKVxuICAgICAgICApXG4gICAgICAgIGlmIChkZWZhdWx0SW5kZXggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0LnNwZWNpZmllcnMudW5zaGlmdChcbiAgICAgICAgICAgIC4uLihyZXN1bHQuc3BlY2lmaWVycy5zcGxpY2UoZGVmYXVsdEluZGV4LCAxKSBhcyBhbnkpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFNQSxPQUFPQSw2QkFBUCxNQUEwQywwQkFBMUM7O0FBRUEsZUFBZSxTQUFTQyxtQ0FBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHZTtFQUM1QixNQUFNQyxDQUFDLEdBQUdELGNBQWMsQ0FBQ0UsT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DO0VBQ0EsTUFBTUMsV0FBVyxHQUFHUiw2QkFBNkIsQ0FBQ0UsSUFBRCxFQUFPQyxjQUFQLENBQWpEO0VBQ0EsT0FBTztJQUNMTSxRQUFRLEVBQUUsQ0FBQ0MsS0FBRCxLQUE0QztNQUNwRCxNQUFNQyxNQUF5QixHQUFHSCxXQUFXLENBQUNDLFFBQVosQ0FBcUJDLEtBQXJCLENBQWxDO01BQ0EsSUFBSUMsTUFBTSxDQUFDQyxVQUFYLEVBQXVCO1FBQ3JCO1FBQ0E7UUFDQSxNQUFNQyxZQUFZLEdBQUdGLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQkUsU0FBbEIsQ0FBNEIsQ0FBQ0MsQ0FBRDtRQUMvQ1gsQ0FBQyxDQUFDWSxzQkFBRixDQUF5QkMsS0FBekIsQ0FBK0JGLENBQS9CLENBRG1CLENBQXJCOztRQUdBLElBQUlGLFlBQVksR0FBRyxDQUFuQixFQUFzQjtVQUNwQkYsTUFBTSxDQUFDQyxVQUFQLENBQWtCTSxPQUFsQjtVQUNFLEdBQUlQLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQk8sTUFBbEIsQ0FBeUJOLFlBQXpCLEVBQXVDLENBQXZDLENBRE47O1FBR0Q7TUFDRjtNQUNELE9BQU9GLE1BQVA7SUFDRCxDQWhCSSxFQUFQOztBQWtCRCJ9