diff options
author | dan <dan.abramov@gmail.com> | 2024-06-18 08:23:41 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-18 08:23:41 +0300 |
commit | e6213d7aa56faa6994a27bf127c63ded69e67d6f (patch) | |
tree | ebdd76bda638c8547e2b90e12abd12330aa93f0c /eslint | |
parent | 077da0830924d4c040ef095d8349f13fdfdf4372 (diff) | |
download | voidsky-e6213d7aa56faa6994a27bf127c63ded69e67d6f.tar.zst |
Fix Android startup perf regression (#4544)
Diffstat (limited to 'eslint')
-rw-r--r-- | eslint/index.js | 1 | ||||
-rw-r--r-- | eslint/keep-i18n-patch-in-sync.js | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/eslint/index.js b/eslint/index.js index bb31a942d..955103d8c 100644 --- a/eslint/index.js +++ b/eslint/index.js @@ -2,6 +2,7 @@ module.exports = { rules: { + 'keep-i18n-patch-in-sync': require('./keep-i18n-patch-in-sync'), 'avoid-unwrapped-text': require('./avoid-unwrapped-text'), 'use-typed-gates': require('./use-typed-gates'), }, diff --git a/eslint/keep-i18n-patch-in-sync.js b/eslint/keep-i18n-patch-in-sync.js new file mode 100644 index 000000000..ee183a5c6 --- /dev/null +++ b/eslint/keep-i18n-patch-in-sync.js @@ -0,0 +1,28 @@ +/* eslint-disable bsky-internal/keep-i18n-patch-in-sync */ +const LOCALE_DATA_FOLDER = '@formatjs/intl-pluralrules/locale-data/' +const GEN_MODULE_PATH = + '@formatjs/intl-pluralrules/supported-locales.generated.js' + +exports.create = function create(context) { + delete require.cache[require.resolve(GEN_MODULE_PATH)] + const {supportedLocales} = require(GEN_MODULE_PATH) + return { + Literal(node) { + if (typeof node.value !== 'string') { + return + } + if (!node.value.startsWith(LOCALE_DATA_FOLDER)) { + return + } + const code = node.value.slice(LOCALE_DATA_FOLDER.length) + if (!supportedLocales.includes(code)) { + context.report({ + node, + message: + 'Edit .patches/@formatjs+intl-pluralrules+XXX.patch to include ' + + code, + }) + } + }, + } +} |