UNPKG

astx

Version:

super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring

28 lines (26 loc) 3.94 kB
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=