UNPKG

eslint-plugin-playlyfe

Version:
54 lines (46 loc) 1.18 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.parse = parse; exports.getMessageArguments = getMessageArguments; var _intlMessageformatParser = _interopRequireDefault(require("intl-messageformat-parser")); function parse(message) { return _intlMessageformatParser.default.parse(message); } function getMessageArguments(message) { try { // ignore if there is parse error const ast = _intlMessageformatParser.default.parse(message); return { err: null, args: getFromMessageFormatPattern(ast) }; } catch (err) { return { err, args: [] }; } } function getFromMessageFormatPattern(node) { const args = []; node.elements.forEach(elem => { if (elem.type === 'argumentElement') { args.push(elem); const { format } = elem; if (format && format.options) { const { options } = format; options.forEach(option => { args.push(...getFromMessageFormatPattern(option.value)); }); } } }); return args; }