astx
Version:
super powerful structural search and replace for JavaScript and TypeScript to automate your refactoring
15 lines (13 loc) • 2.16 kB
JavaScript
import compileMatcher from './index.mjs'
export default function compileOptionalMatcher(path, subpath, compileOptions) {
const matcher = compileMatcher(subpath, compileOptions)
return {
...matcher,
pattern: path,
optional: true,
match: (path, matchSoFar) => {
if (path.value == null) return matchSoFar || {}
return matcher.match(path, matchSoFar)
},
}
} //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlTWF0Y2hlciIsImNvbXBpbGVPcHRpb25hbE1hdGNoZXIiLCJwYXRoIiwic3VicGF0aCIsImNvbXBpbGVPcHRpb25zIiwibWF0Y2hlciIsInBhdHRlcm4iLCJvcHRpb25hbCIsIm1hdGNoIiwibWF0Y2hTb0ZhciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBpbGVNYXRjaGVyL09wdGlvbmFsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQYXRoIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBDb21waWxlZE1hdGNoZXIsIENvbXBpbGVPcHRpb25zIH0gZnJvbSAnLidcbmltcG9ydCBjb21waWxlTWF0Y2hlciwgeyBNYXRjaFJlc3VsdCB9IGZyb20gJy4nXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbXBpbGVPcHRpb25hbE1hdGNoZXIoXG4gIHBhdGg6IE5vZGVQYXRoLFxuICBzdWJwYXRoOiBOb2RlUGF0aDxhbnk+LFxuICBjb21waWxlT3B0aW9uczogQ29tcGlsZU9wdGlvbnNcbik6IENvbXBpbGVkTWF0Y2hlciB8IHZvaWQge1xuICBjb25zdCBtYXRjaGVyID0gY29tcGlsZU1hdGNoZXIoc3VicGF0aCwgY29tcGlsZU9wdGlvbnMpXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5tYXRjaGVyLFxuICAgIHBhdHRlcm46IHBhdGgsXG4gICAgb3B0aW9uYWw6IHRydWUsXG5cbiAgICBtYXRjaDogKHBhdGg6IE5vZGVQYXRoLCBtYXRjaFNvRmFyOiBNYXRjaFJlc3VsdCk6IE1hdGNoUmVzdWx0ID0+IHtcbiAgICAgIGlmIChwYXRoLnZhbHVlID09IG51bGwpIHJldHVybiBtYXRjaFNvRmFyIHx8IHt9XG5cbiAgICAgIHJldHVybiBtYXRjaGVyLm1hdGNoKHBhdGgsIG1hdGNoU29GYXIpXG4gICAgfSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE9BQU9BLGNBQVAsTUFBNEMsR0FBNUM7O0FBRUEsZUFBZSxTQUFTQyxzQkFBVDtBQUNiQyxJQURhO0FBRWJDLE9BRmE7QUFHYkMsY0FIYTtBQUlXO0VBQ3hCLE1BQU1DLE9BQU8sR0FBR0wsY0FBYyxDQUFDRyxPQUFELEVBQVVDLGNBQVYsQ0FBOUI7O0VBRUEsT0FBTztJQUNMLEdBQUdDLE9BREU7SUFFTEMsT0FBTyxFQUFFSixJQUZKO0lBR0xLLFFBQVEsRUFBRSxJQUhMOztJQUtMQyxLQUFLLEVBQUUsQ0FBQ04sSUFBRCxFQUFpQk8sVUFBakIsS0FBMEQ7TUFDL0QsSUFBSVAsSUFBSSxDQUFDUSxLQUFMLElBQWMsSUFBbEIsRUFBd0IsT0FBT0QsVUFBVSxJQUFJLEVBQXJCOztNQUV4QixPQUFPSixPQUFPLENBQUNHLEtBQVIsQ0FBY04sSUFBZCxFQUFvQk8sVUFBcEIsQ0FBUDtJQUNELENBVEksRUFBUDs7QUFXRCJ9