UNPKG

astx

Version:

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

27 lines (24 loc) 3.89 kB
import compileReplacement from './index.mjs' import indentDebug from '../compileMatcher/indentDebug.mjs' export default function compileGenericArrayReplacement(path, compileOptions) { const { debug } = compileOptions const paths = path.filter(() => true) const elemOptions = { ...compileOptions, debug: indentDebug(debug, 2) } const elemReplacements = paths.map((elemPath) => compileReplacement(elemPath, elemOptions) ) return { generate: (match) => { const result = [] for (const elem of elemReplacements) { const replacement = elem.generate(match) if (Array.isArray(replacement)) { replacement.forEach((elem) => result.push(elem)) } else { result.push(replacement) } } return result }, } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlUmVwbGFjZW1lbnQiLCJpbmRlbnREZWJ1ZyIsImNvbXBpbGVHZW5lcmljQXJyYXlSZXBsYWNlbWVudCIsInBhdGgiLCJjb21waWxlT3B0aW9ucyIsImRlYnVnIiwicGF0aHMiLCJmaWx0ZXIiLCJlbGVtT3B0aW9ucyIsImVsZW1SZXBsYWNlbWVudHMiLCJtYXAiLCJlbGVtUGF0aCIsImdlbmVyYXRlIiwibWF0Y2giLCJyZXN1bHQiLCJlbGVtIiwicmVwbGFjZW1lbnQiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwicHVzaCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21waWxlUmVwbGFjZW1lbnQvR2VuZXJpY0FycmF5UmVwbGFjZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVBhdGgsIE5vZGUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCBjb21waWxlUmVwbGFjZW1lbnQsIHtcbiAgQ29tcGlsZWRSZXBsYWNlbWVudCxcbiAgQ29tcGlsZVJlcGxhY2VtZW50T3B0aW9ucyxcbiAgUmVwbGFjZWFibGVNYXRjaCxcbn0gZnJvbSAnLi9pbmRleCdcbmltcG9ydCBpbmRlbnREZWJ1ZyBmcm9tICcuLi9jb21waWxlTWF0Y2hlci9pbmRlbnREZWJ1ZydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcGlsZUdlbmVyaWNBcnJheVJlcGxhY2VtZW50KFxuICBwYXRoOiBOb2RlUGF0aDxOb2RlLCBOb2RlPltdIHwgTm9kZVBhdGg8Tm9kZSwgTm9kZVtdPixcbiAgY29tcGlsZU9wdGlvbnM6IENvbXBpbGVSZXBsYWNlbWVudE9wdGlvbnNcbik6IENvbXBpbGVkUmVwbGFjZW1lbnQge1xuICBjb25zdCB7IGRlYnVnIH0gPSBjb21waWxlT3B0aW9uc1xuICBjb25zdCBwYXRocyA9IHBhdGguZmlsdGVyKCgpID0+IHRydWUpXG5cbiAgY29uc3QgZWxlbU9wdGlvbnMgPSB7XG4gICAgLi4uY29tcGlsZU9wdGlvbnMsXG4gICAgZGVidWc6IGluZGVudERlYnVnKGRlYnVnLCAyKSxcbiAgfVxuICBjb25zdCBlbGVtUmVwbGFjZW1lbnRzID0gcGF0aHMubWFwKChlbGVtUGF0aCkgPT5cbiAgICBjb21waWxlUmVwbGFjZW1lbnQoZWxlbVBhdGgsIGVsZW1PcHRpb25zKVxuICApXG5cbiAgcmV0dXJuIHtcbiAgICBnZW5lcmF0ZTogKG1hdGNoOiBSZXBsYWNlYWJsZU1hdGNoKTogTm9kZSB8IE5vZGVbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQ6IE5vZGVbXSA9IFtdXG4gICAgICBmb3IgKGNvbnN0IGVsZW0gb2YgZWxlbVJlcGxhY2VtZW50cykge1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudCA9IGVsZW0uZ2VuZXJhdGUobWF0Y2gpXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcGxhY2VtZW50KSkge1xuICAgICAgICAgIHJlcGxhY2VtZW50LmZvckVhY2goKGVsZW0pID0+IHJlc3VsdC5wdXNoKGVsZW0pKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHJlcGxhY2VtZW50KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfSxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBT0Esa0JBQVA7Ozs7QUFJTyxTQUpQO0FBS0EsT0FBT0MsV0FBUCxNQUF3QiwrQkFBeEI7O0FBRUEsZUFBZSxTQUFTQyw4QkFBVDtBQUNiQyxJQURhO0FBRWJDLGNBRmE7QUFHUTtFQUNyQixNQUFNLEVBQUVDLEtBQUYsS0FBWUQsY0FBbEI7RUFDQSxNQUFNRSxLQUFLLEdBQUdILElBQUksQ0FBQ0ksTUFBTCxDQUFZLE1BQU0sSUFBbEIsQ0FBZDs7RUFFQSxNQUFNQyxXQUFXLEdBQUc7SUFDbEIsR0FBR0osY0FEZTtJQUVsQkMsS0FBSyxFQUFFSixXQUFXLENBQUNJLEtBQUQsRUFBUSxDQUFSLENBRkEsRUFBcEI7O0VBSUEsTUFBTUksZ0JBQWdCLEdBQUdILEtBQUssQ0FBQ0ksR0FBTixDQUFVLENBQUNDLFFBQUQ7RUFDakNYLGtCQUFrQixDQUFDVyxRQUFELEVBQVdILFdBQVgsQ0FESyxDQUF6Qjs7O0VBSUEsT0FBTztJQUNMSSxRQUFRLEVBQUUsQ0FBQ0MsS0FBRCxLQUE0QztNQUNwRCxNQUFNQyxNQUFjLEdBQUcsRUFBdkI7TUFDQSxLQUFLLE1BQU1DLElBQVgsSUFBbUJOLGdCQUFuQixFQUFxQztRQUNuQyxNQUFNTyxXQUFXLEdBQUdELElBQUksQ0FBQ0gsUUFBTCxDQUFjQyxLQUFkLENBQXBCO1FBQ0EsSUFBSUksS0FBSyxDQUFDQyxPQUFOLENBQWNGLFdBQWQsQ0FBSixFQUFnQztVQUM5QkEsV0FBVyxDQUFDRyxPQUFaLENBQW9CLENBQUNKLElBQUQsS0FBVUQsTUFBTSxDQUFDTSxJQUFQLENBQVlMLElBQVosQ0FBOUI7UUFDRCxDQUZELE1BRU87VUFDTEQsTUFBTSxDQUFDTSxJQUFQLENBQVlKLFdBQVo7UUFDRDtNQUNGO01BQ0QsT0FBT0YsTUFBUDtJQUNELENBWkksRUFBUDs7QUFjRCJ9