UNPKG

astx

Version:

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

29 lines (27 loc) 3.81 kB
import compilePlaceholderReplacement from './Placeholder.mjs' export default function compileObjectTypePropertyReplacement( path, compileOptions ) { const n = compileOptions.backend.t.namedTypes const pattern = path.value if (n.Identifier.check(pattern.key)) { if ( !pattern.static && !pattern.proto && !pattern.method && !pattern.optional && n.GenericTypeAnnotation.check(pattern.value) && n.Identifier.check(pattern.value.id) && pattern.value.id.name === '$' && pattern.variance == null ) { const placeholderReplacement = compilePlaceholderReplacement( path, pattern.key.name, compileOptions ) if (placeholderReplacement) return placeholderReplacement } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJSZXBsYWNlbWVudCIsImNvbXBpbGVPYmplY3RUeXBlUHJvcGVydHlSZXBsYWNlbWVudCIsInBhdGgiLCJjb21waWxlT3B0aW9ucyIsIm4iLCJiYWNrZW5kIiwidCIsIm5hbWVkVHlwZXMiLCJwYXR0ZXJuIiwidmFsdWUiLCJJZGVudGlmaWVyIiwiY2hlY2siLCJrZXkiLCJzdGF0aWMiLCJwcm90byIsIm1ldGhvZCIsIm9wdGlvbmFsIiwiR2VuZXJpY1R5cGVBbm5vdGF0aW9uIiwiaWQiLCJuYW1lIiwidmFyaWFuY2UiLCJwbGFjZWhvbGRlclJlcGxhY2VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVSZXBsYWNlbWVudC9PYmplY3RUeXBlUHJvcGVydHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JqZWN0VHlwZVByb3BlcnR5LCBOb2RlUGF0aCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZWRSZXBsYWNlbWVudCwgQ29tcGlsZVJlcGxhY2VtZW50T3B0aW9ucyB9IGZyb20gJy4nXG5pbXBvcnQgY29tcGlsZVBsYWNlaG9sZGVyUmVwbGFjZW1lbnQgZnJvbSAnLi9QbGFjZWhvbGRlcidcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZU9iamVjdFR5cGVQcm9wZXJ0eVJlcGxhY2VtZW50KFxuICBwYXRoOiBOb2RlUGF0aDxPYmplY3RUeXBlUHJvcGVydHksIE9iamVjdFR5cGVQcm9wZXJ0eT4sXG4gIGNvbXBpbGVPcHRpb25zOiBDb21waWxlUmVwbGFjZW1lbnRPcHRpb25zXG4pOiBDb21waWxlZFJlcGxhY2VtZW50IHwgdm9pZCB7XG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCBwYXR0ZXJuID0gcGF0aC52YWx1ZVxuICBpZiAobi5JZGVudGlmaWVyLmNoZWNrKHBhdHRlcm4ua2V5KSkge1xuICAgIGlmIChcbiAgICAgICEocGF0dGVybiBhcyBhbnkpLnN0YXRpYyAmJlxuICAgICAgIShwYXR0ZXJuIGFzIGFueSkucHJvdG8gJiZcbiAgICAgICEocGF0dGVybiBhcyBhbnkpLm1ldGhvZCAmJlxuICAgICAgIXBhdHRlcm4ub3B0aW9uYWwgJiZcbiAgICAgIG4uR2VuZXJpY1R5cGVBbm5vdGF0aW9uLmNoZWNrKHBhdHRlcm4udmFsdWUpICYmXG4gICAgICBuLklkZW50aWZpZXIuY2hlY2socGF0dGVybi52YWx1ZS5pZCkgJiZcbiAgICAgIHBhdHRlcm4udmFsdWUuaWQubmFtZSA9PT0gJyQnICYmXG4gICAgICBwYXR0ZXJuLnZhcmlhbmNlID09IG51bGxcbiAgICApIHtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyUmVwbGFjZW1lbnQgPSBjb21waWxlUGxhY2Vob2xkZXJSZXBsYWNlbWVudChcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGF0dGVybi5rZXkubmFtZSxcbiAgICAgICAgY29tcGlsZU9wdGlvbnNcbiAgICAgIClcbiAgICAgIGlmIChwbGFjZWhvbGRlclJlcGxhY2VtZW50KSByZXR1cm4gcGxhY2Vob2xkZXJSZXBsYWNlbWVudFxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU9BLDZCQUFQLE1BQTBDLGVBQTFDOztBQUVBLGVBQWUsU0FBU0Msb0NBQVQ7QUFDYkMsSUFEYTtBQUViQyxjQUZhO0FBR2U7RUFDNUIsTUFBTUMsQ0FBQyxHQUFHRCxjQUFjLENBQUNFLE9BQWYsQ0FBdUJDLENBQXZCLENBQXlCQyxVQUFuQztFQUNBLE1BQU1DLE9BQU8sR0FBR04sSUFBSSxDQUFDTyxLQUFyQjtFQUNBLElBQUlMLENBQUMsQ0FBQ00sVUFBRixDQUFhQyxLQUFiLENBQW1CSCxPQUFPLENBQUNJLEdBQTNCLENBQUosRUFBcUM7SUFDbkM7SUFDRSxDQUFFSixPQUFELENBQWlCSyxNQUFsQjtJQUNBLENBQUVMLE9BQUQsQ0FBaUJNLEtBRGxCO0lBRUEsQ0FBRU4sT0FBRCxDQUFpQk8sTUFGbEI7SUFHQSxDQUFDUCxPQUFPLENBQUNRLFFBSFQ7SUFJQVosQ0FBQyxDQUFDYSxxQkFBRixDQUF3Qk4sS0FBeEIsQ0FBOEJILE9BQU8sQ0FBQ0MsS0FBdEMsQ0FKQTtJQUtBTCxDQUFDLENBQUNNLFVBQUYsQ0FBYUMsS0FBYixDQUFtQkgsT0FBTyxDQUFDQyxLQUFSLENBQWNTLEVBQWpDLENBTEE7SUFNQVYsT0FBTyxDQUFDQyxLQUFSLENBQWNTLEVBQWQsQ0FBaUJDLElBQWpCLEtBQTBCLEdBTjFCO0lBT0FYLE9BQU8sQ0FBQ1ksUUFBUixJQUFvQixJQVJ0QjtJQVNFO01BQ0EsTUFBTUMsc0JBQXNCLEdBQUdyQiw2QkFBNkI7TUFDMURFLElBRDBEO01BRTFETSxPQUFPLENBQUNJLEdBQVIsQ0FBWU8sSUFGOEM7TUFHMURoQixjQUgwRCxDQUE1RDs7TUFLQSxJQUFJa0Isc0JBQUosRUFBNEIsT0FBT0Esc0JBQVA7SUFDN0I7RUFDRjtBQUNGIn0=