From 4d1b1069d1fe1ce78e69c27f6d6d9fe924647a9a Mon Sep 17 00:00:00 2001 From: Brendan Kenny Date: Mon, 19 Aug 2019 13:10:11 -0700 Subject: [PATCH] remove explicit intl-messageformat-parser dependency --- lighthouse-core/lib/i18n/i18n.js | 15 ++++++++------- package.json | 1 - 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lighthouse-core/lib/i18n/i18n.js b/lighthouse-core/lib/i18n/i18n.js index 7604327fb77a..b442e26da697 100644 --- a/lighthouse-core/lib/i18n/i18n.js +++ b/lighthouse-core/lib/i18n/i18n.js @@ -9,7 +9,6 @@ const path = require('path'); const isDeepEqual = require('lodash.isequal'); const log = require('lighthouse-logger'); const MessageFormat = require('intl-messageformat').default; -const MessageParser = require('intl-messageformat-parser').default; const lookupClosestLocale = require('lookup-closest-locale'); const LOCALES = require('./locales.js'); @@ -133,15 +132,16 @@ function lookupLocale(locale) { } /** + * Preformat values for the message based on how they're used, like KB or milliseconds. * @param {string} icuMessage + * @param {MessageFormat} messageFormatter * @param {Record} [values] * @return {Record} */ -function _preprocessMessageValues(icuMessage, values = {}) { +function _preformatValues(icuMessage, messageFormatter, values = {}) { const clonedValues = JSON.parse(JSON.stringify(values)); - const parsed = MessageParser.parse(icuMessage); - const elements = _collectAllCustomElementsFromICU(parsed.elements); + const elements = _collectAllCustomElementsFromICU(messageFormatter.getAst().elements); return _processParsedElements(icuMessage, Array.from(elements.values()), clonedValues); } @@ -269,12 +269,13 @@ function _formatIcuMessage(locale, icuMessageId, uiStringMessage, values) { // when using accented english, force the use of a different locale for number formatting const localeForMessageFormat = (locale === 'en-XA' || locale === 'en-XL') ? 'de-DE' : locale; - // pre-process values for the message format like KB and milliseconds - const valuesForMessageFormat = _preprocessMessageValues(localeMessage, values); const formatter = new MessageFormat(localeMessage, localeForMessageFormat, formats); - const formattedString = formatter.format(valuesForMessageFormat); + // preformat values for the message format like KB and milliseconds + const valuesForMessageFormat = _preformatValues(localeMessage, formatter, values); + + const formattedString = formatter.format(valuesForMessageFormat); return {formattedString, icuMessage: localeMessage}; } diff --git a/package.json b/package.json index 224810a101a0..558e48369bdc 100644 --- a/package.json +++ b/package.json @@ -140,7 +140,6 @@ "inquirer": "^3.3.0", "intl": "^1.2.5", "intl-messageformat": "^4.4.0", - "intl-messageformat-parser": "^1.8.1", "intl-pluralrules": "^1.0.3", "jpeg-js": "0.1.2", "js-library-detector": "^5.4.0",