astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
28 lines (26 loc) • 3.94 kB
JavaScript
import compileGenericNodeReplacement from './GenericNodeReplacement.mjs'
export default function compileExportNamedDeclarationReplacement(
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 ExportDefaultSpecifier to beginning if necessary
// because @babel/generator craps out otherwise
const defaultIndex = result.specifiers.findIndex((s) =>
n.ExportDefaultSpecifier.check(s)
)
if (defaultIndex > 0) {
result.specifiers.unshift(
...result.specifiers.splice(defaultIndex, 1)
)
}
}
return result
},
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlR2VuZXJpY05vZGVSZXBsYWNlbWVudCIsImNvbXBpbGVFeHBvcnROYW1lZERlY2xhcmF0aW9uUmVwbGFjZW1lbnQiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwicmVwbGFjZW1lbnQiLCJnZW5lcmF0ZSIsIm1hdGNoIiwicmVzdWx0Iiwic3BlY2lmaWVycyIsImRlZmF1bHRJbmRleCIsImZpbmRJbmRleCIsInMiLCJFeHBvcnREZWZhdWx0U3BlY2lmaWVyIiwiY2hlY2siLCJ1bnNoaWZ0Iiwic3BsaWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVSZXBsYWNlbWVudC9FeHBvcnROYW1lZERlY2xhcmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9ydE5hbWVkRGVjbGFyYXRpb24sIE5vZGVQYXRoLCBOb2RlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQge1xuICBDb21waWxlZFJlcGxhY2VtZW50LFxuICBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zLFxuICBSZXBsYWNlYWJsZU1hdGNoLFxufSBmcm9tICcuJ1xuaW1wb3J0IGNvbXBpbGVHZW5lcmljTm9kZVJlcGxhY2VtZW50IGZyb20gJy4vR2VuZXJpY05vZGVSZXBsYWNlbWVudCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZUV4cG9ydE5hbWVkRGVjbGFyYXRpb25SZXBsYWNlbWVudChcbiAgcGF0aDogTm9kZVBhdGg8RXhwb3J0TmFtZWREZWNsYXJhdGlvbiwgRXhwb3J0TmFtZWREZWNsYXJhdGlvbj4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zXG4pOiBDb21waWxlZFJlcGxhY2VtZW50IHwgdm9pZCB7XG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCByZXBsYWNlbWVudCA9IGNvbXBpbGVHZW5lcmljTm9kZVJlcGxhY2VtZW50KHBhdGgsIGNvbXBpbGVPcHRpb25zKVxuICByZXR1cm4ge1xuICAgIGdlbmVyYXRlOiAobWF0Y2g6IFJlcGxhY2VhYmxlTWF0Y2gpOiBOb2RlIHwgTm9kZVtdID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdDogRXhwb3J0TmFtZWREZWNsYXJhdGlvbiA9IHJlcGxhY2VtZW50LmdlbmVyYXRlKG1hdGNoKSBhcyBhbnlcbiAgICAgIGlmIChyZXN1bHQuc3BlY2lmaWVycykge1xuICAgICAgICAvLyBtb3ZlIEV4cG9ydERlZmF1bHRTcGVjaWZpZXIgdG8gYmVnaW5uaW5nIGlmIG5lY2Vzc2FyeVxuICAgICAgICAvLyBiZWNhdXNlIEBiYWJlbC9nZW5lcmF0b3IgY3JhcHMgb3V0IG90aGVyd2lzZVxuICAgICAgICBjb25zdCBkZWZhdWx0SW5kZXggPSByZXN1bHQuc3BlY2lmaWVycy5maW5kSW5kZXgoKHMpID0+XG4gICAgICAgICAgbi5FeHBvcnREZWZhdWx0U3BlY2lmaWVyLmNoZWNrKHMpXG4gICAgICAgIClcbiAgICAgICAgaWYgKGRlZmF1bHRJbmRleCA+IDApIHtcbiAgICAgICAgICByZXN1bHQuc3BlY2lmaWVycy51bnNoaWZ0KFxuICAgICAgICAgICAgLi4uKHJlc3VsdC5zcGVjaWZpZXJzLnNwbGljZShkZWZhdWx0SW5kZXgsIDEpIGFzIGFueSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQU1BLE9BQU9BLDZCQUFQLE1BQTBDLDBCQUExQzs7QUFFQSxlQUFlLFNBQVNDLHdDQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdlO0VBQzVCLE1BQU1DLENBQUMsR0FBR0QsY0FBYyxDQUFDRSxPQUFmLENBQXVCQyxDQUF2QixDQUF5QkMsVUFBbkM7RUFDQSxNQUFNQyxXQUFXLEdBQUdSLDZCQUE2QixDQUFDRSxJQUFELEVBQU9DLGNBQVAsQ0FBakQ7RUFDQSxPQUFPO0lBQ0xNLFFBQVEsRUFBRSxDQUFDQyxLQUFELEtBQTRDO01BQ3BELE1BQU1DLE1BQThCLEdBQUdILFdBQVcsQ0FBQ0MsUUFBWixDQUFxQkMsS0FBckIsQ0FBdkM7TUFDQSxJQUFJQyxNQUFNLENBQUNDLFVBQVgsRUFBdUI7UUFDckI7UUFDQTtRQUNBLE1BQU1DLFlBQVksR0FBR0YsTUFBTSxDQUFDQyxVQUFQLENBQWtCRSxTQUFsQixDQUE0QixDQUFDQyxDQUFEO1FBQy9DWCxDQUFDLENBQUNZLHNCQUFGLENBQXlCQyxLQUF6QixDQUErQkYsQ0FBL0IsQ0FEbUIsQ0FBckI7O1FBR0EsSUFBSUYsWUFBWSxHQUFHLENBQW5CLEVBQXNCO1VBQ3BCRixNQUFNLENBQUNDLFVBQVAsQ0FBa0JNLE9BQWxCO1VBQ0UsR0FBSVAsTUFBTSxDQUFDQyxVQUFQLENBQWtCTyxNQUFsQixDQUF5Qk4sWUFBekIsRUFBdUMsQ0FBdkMsQ0FETjs7UUFHRDtNQUNGO01BQ0QsT0FBT0YsTUFBUDtJQUNELENBaEJJLEVBQVA7O0FBa0JEIn0=