UNPKG

astx

Version:

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

26 lines (22 loc) 3.13 kB
import { getPlaceholder } from '../compileMatcher/Placeholder.mjs' import { unescapeIdentifier } from './Placeholder.mjs' import cloneNode from '../util/cloneNode.mjs' import * as t from '@babel/types' export default function compileStringLiteralReplacement(path) { const pattern = path.value const placeholder = getPlaceholder(pattern.value) if (placeholder) { return { generate: (match) => { var _match$stringCaptures const captured = (_match$stringCaptures = match.stringCaptures) === null || _match$stringCaptures === void 0 ? void 0 : _match$stringCaptures[placeholder] return captured ? t.stringLiteral(captured) : cloneNode(pattern) }, } } pattern.value = unescapeIdentifier(pattern.value) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQbGFjZWhvbGRlciIsInVuZXNjYXBlSWRlbnRpZmllciIsImNsb25lTm9kZSIsInQiLCJjb21waWxlU3RyaW5nTGl0ZXJhbFJlcGxhY2VtZW50IiwicGF0aCIsInBhdHRlcm4iLCJ2YWx1ZSIsInBsYWNlaG9sZGVyIiwiZ2VuZXJhdGUiLCJtYXRjaCIsImNhcHR1cmVkIiwic3RyaW5nQ2FwdHVyZXMiLCJzdHJpbmdMaXRlcmFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVSZXBsYWNlbWVudC9TdHJpbmdMaXRlcmFsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0cmluZ0xpdGVyYWwsIE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRQbGFjZWhvbGRlciB9IGZyb20gJy4uL2NvbXBpbGVNYXRjaGVyL1BsYWNlaG9sZGVyJ1xuaW1wb3J0IHsgQ29tcGlsZWRSZXBsYWNlbWVudCwgUmVwbGFjZWFibGVNYXRjaCB9IGZyb20gJy4vJ1xuaW1wb3J0IHsgdW5lc2NhcGVJZGVudGlmaWVyIH0gZnJvbSAnLi9QbGFjZWhvbGRlcidcbmltcG9ydCBjbG9uZU5vZGUgZnJvbSAnLi4vdXRpbC9jbG9uZU5vZGUnXG5pbXBvcnQgKiBhcyB0IGZyb20gJ0BiYWJlbC90eXBlcydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZVN0cmluZ0xpdGVyYWxSZXBsYWNlbWVudChcbiAgcGF0aDogTm9kZVBhdGg8U3RyaW5nTGl0ZXJhbD5cbik6IENvbXBpbGVkUmVwbGFjZW1lbnQgfCB2b2lkIHtcbiAgY29uc3QgcGF0dGVybiA9IHBhdGgudmFsdWVcbiAgY29uc3QgcGxhY2Vob2xkZXIgPSBnZXRQbGFjZWhvbGRlcihwYXR0ZXJuLnZhbHVlKVxuICBpZiAocGxhY2Vob2xkZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2VuZXJhdGU6IChtYXRjaDogUmVwbGFjZWFibGVNYXRjaCk6IFN0cmluZ0xpdGVyYWwgPT4ge1xuICAgICAgICBjb25zdCBjYXB0dXJlZCA9IG1hdGNoLnN0cmluZ0NhcHR1cmVzPy5bcGxhY2Vob2xkZXJdXG4gICAgICAgIHJldHVybiBjYXB0dXJlZCA/IHQuc3RyaW5nTGl0ZXJhbChjYXB0dXJlZCkgOiBjbG9uZU5vZGUocGF0dGVybilcbiAgICAgIH0sXG4gICAgfVxuICB9XG4gIHBhdHRlcm4udmFsdWUgPSB1bmVzY2FwZUlkZW50aWZpZXIocGF0dGVybi52YWx1ZSlcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUNBLFNBQVNBLGNBQVQsUUFBK0IsK0JBQS9COztBQUVBLFNBQVNDLGtCQUFULFFBQW1DLGVBQW5DO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixtQkFBdEI7QUFDQSxPQUFPLEtBQUtDLENBQVosTUFBbUIsY0FBbkI7O0FBRUEsZUFBZSxTQUFTQywrQkFBVDtBQUNiQyxJQURhO0FBRWU7RUFDNUIsTUFBTUMsT0FBTyxHQUFHRCxJQUFJLENBQUNFLEtBQXJCO0VBQ0EsTUFBTUMsV0FBVyxHQUFHUixjQUFjLENBQUNNLE9BQU8sQ0FBQ0MsS0FBVCxDQUFsQztFQUNBLElBQUlDLFdBQUosRUFBaUI7SUFDZixPQUFPO01BQ0xDLFFBQVEsRUFBRSxDQUFDQyxLQUFELEtBQTRDO1FBQ3BELE1BQU1DLFFBQVEsNEJBQUdELEtBQUssQ0FBQ0UsY0FBVCwwREFBRyxzQkFBdUJKLFdBQXZCLENBQWpCO1FBQ0EsT0FBT0csUUFBUSxHQUFHUixDQUFDLENBQUNVLGFBQUYsQ0FBZ0JGLFFBQWhCLENBQUgsR0FBK0JULFNBQVMsQ0FBQ0ksT0FBRCxDQUF2RDtNQUNELENBSkksRUFBUDs7RUFNRDtFQUNEQSxPQUFPLENBQUNDLEtBQVIsR0FBZ0JOLGtCQUFrQixDQUFDSyxPQUFPLENBQUNDLEtBQVQsQ0FBbEM7QUFDRCJ9