UNPKG

ember-intl

Version:

A internationalization toolbox for ambitious applications.

30 lines (24 loc) 539 B
const { TYPE } = require('intl-messageformat-parser'); function traverse(node, visitor) { if (Array.isArray(node)) { node.forEach((n) => { traverse(n, visitor); }); } if (!node || typeof node.type === 'undefined') { return; } if (visitor[node.type]) { visitor[node.type](node); } switch (node.type) { case TYPE.select: case TYPE.plural: { Object.values(node.options).forEach((it) => { traverse(it.value, visitor); }); break; } } } module.exports = traverse;