UNPKG

astx

Version:

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

32 lines (30 loc) 3.76 kB
import { convertPredicateMatcher } from './index.mjs' import { compileStringPlaceholderMatcher, unescapeIdentifier, } from './Placeholder.mjs' export default function matchStringLiteral(path, compileOptions) { const pattern = path.value const n = compileOptions.backend.t.namedTypes const placeholderMatcher = compileStringPlaceholderMatcher( path, (pattern) => pattern.value, compileOptions, { nodeType: 'StringLiteral', } ) if (placeholderMatcher) return placeholderMatcher pattern.value = unescapeIdentifier(pattern.value) return convertPredicateMatcher( path, { match: (path) => { const { value: node } = path return n.StringLiteral.check(node) && pattern.value === node.value }, nodeType: 'StringLiteral', }, compileOptions ) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0UHJlZGljYXRlTWF0Y2hlciIsImNvbXBpbGVTdHJpbmdQbGFjZWhvbGRlck1hdGNoZXIiLCJ1bmVzY2FwZUlkZW50aWZpZXIiLCJtYXRjaFN0cmluZ0xpdGVyYWwiLCJwYXRoIiwiY29tcGlsZU9wdGlvbnMiLCJwYXR0ZXJuIiwidmFsdWUiLCJuIiwiYmFja2VuZCIsInQiLCJuYW1lZFR5cGVzIiwicGxhY2Vob2xkZXJNYXRjaGVyIiwibm9kZVR5cGUiLCJtYXRjaCIsIm5vZGUiLCJTdHJpbmdMaXRlcmFsIiwiY2hlY2siXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcGlsZU1hdGNoZXIvU3RyaW5nTGl0ZXJhbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlUGF0aCwgU3RyaW5nTGl0ZXJhbCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQ29tcGlsZU9wdGlvbnMsIGNvbnZlcnRQcmVkaWNhdGVNYXRjaGVyLCBDb21waWxlZE1hdGNoZXIgfSBmcm9tICcuJ1xuaW1wb3J0IHtcbiAgY29tcGlsZVN0cmluZ1BsYWNlaG9sZGVyTWF0Y2hlcixcbiAgdW5lc2NhcGVJZGVudGlmaWVyLFxufSBmcm9tICcuL1BsYWNlaG9sZGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYXRjaFN0cmluZ0xpdGVyYWwoXG4gIHBhdGg6IE5vZGVQYXRoPFN0cmluZ0xpdGVyYWwsIFN0cmluZ0xpdGVyYWw+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnNcbik6IENvbXBpbGVkTWF0Y2hlciB7XG4gIGNvbnN0IHBhdHRlcm46IFN0cmluZ0xpdGVyYWwgPSBwYXRoLnZhbHVlXG4gIGNvbnN0IG4gPSBjb21waWxlT3B0aW9ucy5iYWNrZW5kLnQubmFtZWRUeXBlc1xuICBjb25zdCBwbGFjZWhvbGRlck1hdGNoZXIgPSBjb21waWxlU3RyaW5nUGxhY2Vob2xkZXJNYXRjaGVyKFxuICAgIHBhdGgsXG4gICAgKHBhdHRlcm4pID0+IHBhdHRlcm4udmFsdWUsXG4gICAgY29tcGlsZU9wdGlvbnMsXG4gICAgeyBub2RlVHlwZTogJ1N0cmluZ0xpdGVyYWwnIH1cbiAgKVxuXG4gIGlmIChwbGFjZWhvbGRlck1hdGNoZXIpIHJldHVybiBwbGFjZWhvbGRlck1hdGNoZXJcblxuICBwYXR0ZXJuLnZhbHVlID0gdW5lc2NhcGVJZGVudGlmaWVyKHBhdHRlcm4udmFsdWUpXG5cbiAgcmV0dXJuIGNvbnZlcnRQcmVkaWNhdGVNYXRjaGVyKFxuICAgIHBhdGgsXG4gICAge1xuICAgICAgbWF0Y2g6IChwYXRoOiBOb2RlUGF0aCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB7IHZhbHVlOiBub2RlIH0gPSBwYXRoXG5cbiAgICAgICAgcmV0dXJuIG4uU3RyaW5nTGl0ZXJhbC5jaGVjayhub2RlKSAmJiBwYXR0ZXJuLnZhbHVlID09PSBub2RlLnZhbHVlXG4gICAgICB9LFxuICAgICAgbm9kZVR5cGU6ICdTdHJpbmdMaXRlcmFsJyxcbiAgICB9LFxuICAgIGNvbXBpbGVPcHRpb25zXG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQXlCQSx1QkFBekIsUUFBeUUsR0FBekU7QUFDQTtBQUNFQywrQkFERjtBQUVFQyxrQkFGRjtBQUdPLGVBSFA7O0FBS0EsZUFBZSxTQUFTQyxrQkFBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHSTtFQUNqQixNQUFNQyxPQUFzQixHQUFHRixJQUFJLENBQUNHLEtBQXBDO0VBQ0EsTUFBTUMsQ0FBQyxHQUFHSCxjQUFjLENBQUNJLE9BQWYsQ0FBdUJDLENBQXZCLENBQXlCQyxVQUFuQztFQUNBLE1BQU1DLGtCQUFrQixHQUFHWCwrQkFBK0I7RUFDeERHLElBRHdEO0VBRXhELENBQUNFLE9BQUQsS0FBYUEsT0FBTyxDQUFDQyxLQUZtQztFQUd4REYsY0FId0Q7RUFJeEQsRUFBRVEsUUFBUSxFQUFFLGVBQVosRUFKd0QsQ0FBMUQ7OztFQU9BLElBQUlELGtCQUFKLEVBQXdCLE9BQU9BLGtCQUFQOztFQUV4Qk4sT0FBTyxDQUFDQyxLQUFSLEdBQWdCTCxrQkFBa0IsQ0FBQ0ksT0FBTyxDQUFDQyxLQUFULENBQWxDOztFQUVBLE9BQU9QLHVCQUF1QjtFQUM1QkksSUFENEI7RUFFNUI7SUFDRVUsS0FBSyxFQUFFLENBQUNWLElBQUQsS0FBNkI7TUFDbEMsTUFBTSxFQUFFRyxLQUFLLEVBQUVRLElBQVQsS0FBa0JYLElBQXhCOztNQUVBLE9BQU9JLENBQUMsQ0FBQ1EsYUFBRixDQUFnQkMsS0FBaEIsQ0FBc0JGLElBQXRCLEtBQStCVCxPQUFPLENBQUNDLEtBQVIsS0FBa0JRLElBQUksQ0FBQ1IsS0FBN0Q7SUFDRCxDQUxIO0lBTUVNLFFBQVEsRUFBRSxlQU5aLEVBRjRCOztFQVU1QlIsY0FWNEIsQ0FBOUI7O0FBWUQifQ==