UNPKG

astx

Version:

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

38 lines (35 loc) 4.58 kB
import compilePlaceholderMatcher from './Placeholder.mjs' export default function compileObjectTypePropertyMatcher(path, compileOptions) { const pattern = path.value const n = compileOptions.backend.t.namedTypes 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 placeholderMatcher = compilePlaceholderMatcher( path, pattern.key.name, compileOptions, { nodeType: 'Flow', getCondition: () => (path) => { var _path$parent return n.ObjectTypeAnnotation.check( (_path$parent = path.parent) === null || _path$parent === void 0 ? void 0 : _path$parent.value ) }, } ) if (placeholderMatcher) return placeholderMatcher } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUGxhY2Vob2xkZXJNYXRjaGVyIiwiY29tcGlsZU9iamVjdFR5cGVQcm9wZXJ0eU1hdGNoZXIiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJwYXR0ZXJuIiwidmFsdWUiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwiSWRlbnRpZmllciIsImNoZWNrIiwia2V5Iiwic3RhdGljIiwicHJvdG8iLCJtZXRob2QiLCJvcHRpb25hbCIsIkdlbmVyaWNUeXBlQW5ub3RhdGlvbiIsImlkIiwibmFtZSIsInZhcmlhbmNlIiwicGxhY2Vob2xkZXJNYXRjaGVyIiwibm9kZVR5cGUiLCJnZXRDb25kaXRpb24iLCJPYmplY3RUeXBlQW5ub3RhdGlvbiIsInBhcmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlTWF0Y2hlci9PYmplY3RUeXBlUHJvcGVydHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JqZWN0VHlwZVByb3BlcnR5LCBOb2RlUGF0aCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZWRNYXRjaGVyLCBDb21waWxlT3B0aW9ucyB9IGZyb20gJy4nXG5pbXBvcnQgY29tcGlsZVBsYWNlaG9sZGVyTWF0Y2hlciBmcm9tICcuL1BsYWNlaG9sZGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21waWxlT2JqZWN0VHlwZVByb3BlcnR5TWF0Y2hlcihcbiAgcGF0aDogTm9kZVBhdGg8T2JqZWN0VHlwZVByb3BlcnR5LCBPYmplY3RUeXBlUHJvcGVydHk+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnNcbik6IENvbXBpbGVkTWF0Y2hlciB8IHZvaWQge1xuICBjb25zdCBwYXR0ZXJuOiBPYmplY3RUeXBlUHJvcGVydHkgPSBwYXRoLnZhbHVlXG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuXG4gIGlmIChuLklkZW50aWZpZXIuY2hlY2socGF0dGVybi5rZXkpKSB7XG4gICAgaWYgKFxuICAgICAgIShwYXR0ZXJuIGFzIGFueSkuc3RhdGljICYmXG4gICAgICAhKHBhdHRlcm4gYXMgYW55KS5wcm90byAmJlxuICAgICAgIShwYXR0ZXJuIGFzIGFueSkubWV0aG9kICYmXG4gICAgICAhcGF0dGVybi5vcHRpb25hbCAmJlxuICAgICAgbi5HZW5lcmljVHlwZUFubm90YXRpb24uY2hlY2socGF0dGVybi52YWx1ZSkgJiZcbiAgICAgIG4uSWRlbnRpZmllci5jaGVjayhwYXR0ZXJuLnZhbHVlLmlkKSAmJlxuICAgICAgcGF0dGVybi52YWx1ZS5pZC5uYW1lID09PSAnJCcgJiZcbiAgICAgIHBhdHRlcm4udmFyaWFuY2UgPT0gbnVsbFxuICAgICkge1xuICAgICAgY29uc3QgcGxhY2Vob2xkZXJNYXRjaGVyID0gY29tcGlsZVBsYWNlaG9sZGVyTWF0Y2hlcihcbiAgICAgICAgcGF0aCxcbiAgICAgICAgcGF0dGVybi5rZXkubmFtZSxcbiAgICAgICAgY29tcGlsZU9wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICBub2RlVHlwZTogJ0Zsb3cnLFxuICAgICAgICAgIGdldENvbmRpdGlvbjogKCkgPT4gKHBhdGg6IE5vZGVQYXRoKSA9PlxuICAgICAgICAgICAgbi5PYmplY3RUeXBlQW5ub3RhdGlvbi5jaGVjayhwYXRoLnBhcmVudD8udmFsdWUpLFxuICAgICAgICB9XG4gICAgICApXG5cbiAgICAgIGlmIChwbGFjZWhvbGRlck1hdGNoZXIpIHJldHVybiBwbGFjZWhvbGRlck1hdGNoZXJcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFFQSxPQUFPQSx5QkFBUCxNQUFzQyxlQUF0Qzs7QUFFQSxlQUFlLFNBQVNDLGdDQUFUO0FBQ2JDLElBRGE7QUFFYkMsY0FGYTtBQUdXO0VBQ3hCLE1BQU1DLE9BQTJCLEdBQUdGLElBQUksQ0FBQ0csS0FBekM7RUFDQSxNQUFNQyxDQUFDLEdBQUdILGNBQWMsQ0FBQ0ksT0FBZixDQUF1QkMsQ0FBdkIsQ0FBeUJDLFVBQW5DOztFQUVBLElBQUlILENBQUMsQ0FBQ0ksVUFBRixDQUFhQyxLQUFiLENBQW1CUCxPQUFPLENBQUNRLEdBQTNCLENBQUosRUFBcUM7SUFDbkM7SUFDRSxDQUFFUixPQUFELENBQWlCUyxNQUFsQjtJQUNBLENBQUVULE9BQUQsQ0FBaUJVLEtBRGxCO0lBRUEsQ0FBRVYsT0FBRCxDQUFpQlcsTUFGbEI7SUFHQSxDQUFDWCxPQUFPLENBQUNZLFFBSFQ7SUFJQVYsQ0FBQyxDQUFDVyxxQkFBRixDQUF3Qk4sS0FBeEIsQ0FBOEJQLE9BQU8sQ0FBQ0MsS0FBdEMsQ0FKQTtJQUtBQyxDQUFDLENBQUNJLFVBQUYsQ0FBYUMsS0FBYixDQUFtQlAsT0FBTyxDQUFDQyxLQUFSLENBQWNhLEVBQWpDLENBTEE7SUFNQWQsT0FBTyxDQUFDQyxLQUFSLENBQWNhLEVBQWQsQ0FBaUJDLElBQWpCLEtBQTBCLEdBTjFCO0lBT0FmLE9BQU8sQ0FBQ2dCLFFBQVIsSUFBb0IsSUFSdEI7SUFTRTtNQUNBLE1BQU1DLGtCQUFrQixHQUFHckIseUJBQXlCO01BQ2xERSxJQURrRDtNQUVsREUsT0FBTyxDQUFDUSxHQUFSLENBQVlPLElBRnNDO01BR2xEaEIsY0FIa0Q7TUFJbEQ7UUFDRW1CLFFBQVEsRUFBRSxNQURaO1FBRUVDLFlBQVksRUFBRSxNQUFNLENBQUNyQixJQUFEO1lBQ2xCSSxDQUFDLENBQUNrQixvQkFBRixDQUF1QmIsS0FBdkIsaUJBQTZCVCxJQUFJLENBQUN1QixNQUFsQyxpREFBNkIsYUFBYXBCLEtBQTFDLENBRGtCLEdBRnRCLEVBSmtELENBQXBEOzs7O01BV0EsSUFBSWdCLGtCQUFKLEVBQXdCLE9BQU9BLGtCQUFQO0lBQ3pCO0VBQ0Y7QUFDRiJ9