astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
29 lines (27 loc) • 3.81 kB
JavaScript
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=