UNPKG

json-transforms

Version:

Provides a recursive, pattern-matching approach to transforming JSON data.

25 lines (20 loc) 464 B
const transform = (json, rules) => { const runner = match => { for (let i = 0; i < rules.length; i++) { const rule = rules[i]; const res = rule(match, adaptedRunner); if (res !== null) { return res; } } }; const adaptedRunner = ast => { if (Array.isArray(ast)) { return ast.map(r => runner(r)); } else { return runner(ast); } }; return adaptedRunner(json); }; export default transform;