Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return (path) => {
log(rule, path.node);
if (nodesExclude.length && compareAny(path, nodesExclude))
return;
if (nodesInclude.length && !compareAll(path, nodesInclude))
return;
fn(path);
};
}
const fix = (from, to, path) => {
const nodeFrom = template.ast(from);
const watermark = `${from} -> ${to}`;
path._putout = path._putout || [];
if (path._putout.includes(watermark))
return;
if (!compare(path, nodeFrom))
return;
if (!to)
return path.remove();
const nodeTo = template.ast.fresh(to);
const {node} = path;
const waysFrom = findVarsWays(nodeFrom);
const waysTo = findVarsWays(nodeTo);
const values = getValues({
waysFrom,
node,
});
replaceWith(path, nodeTo);
return (path) => {
log(rule, path.node);
if (nodesExclude.length && compareAny(path, nodesExclude))
return;
if (nodesInclude.length && !compareAll(path, nodesInclude))
return;
fn(path);
};
}
const entries = Object.entries(visitor);
const nodesExclude = maybeArray(options.exclude);
const nodesInclude = maybeArray(options.include);
for (const [tmpl, fn] of entries) {
if (!isTemplate(tmpl)) {
parsed.push(exclude({
rule,
tmpl,
fn,
nodesExclude,
}));
continue;
}
const [node, type] = parseTemplate(tmpl);
const visit = wrapWithCheck({
rule,
fn,
nodesExclude,
nodesInclude: [
node,
...nodesInclude,
],
});
parsed.push({
[type]: visit,
});
}
return parsed;