diff --git a/locale/_/pronouns/morphemes.ts b/locale/_/pronouns/morphemes.ts new file mode 100644 index 000000000..8eb27f173 --- /dev/null +++ b/locale/_/pronouns/morphemes.ts @@ -0,0 +1 @@ +export default [] as const; diff --git a/locale/_/pronouns/morphemes.js b/locale/_base/pronouns/morphemes.ts similarity index 91% rename from locale/_/pronouns/morphemes.js rename to locale/_base/pronouns/morphemes.ts index f082fdb28..0005ffc65 100644 --- a/locale/_/pronouns/morphemes.js +++ b/locale/_base/pronouns/morphemes.ts @@ -4,4 +4,4 @@ export default [ 'possessive_determiner', 'possessive_pronoun', 'reflexive', -]; +] as const; diff --git a/locale/ar/pronouns/morphemes.js b/locale/ar/pronouns/morphemes.ts similarity index 94% rename from locale/ar/pronouns/morphemes.js rename to locale/ar/pronouns/morphemes.ts index 45f918bad..38fd844ab 100644 --- a/locale/ar/pronouns/morphemes.js +++ b/locale/ar/pronouns/morphemes.ts @@ -11,4 +11,4 @@ export default [ 'future', 'order', 'noun_end', -]; +] as const; diff --git a/locale/data.ts b/locale/data.ts new file mode 100644 index 000000000..189e8fbe7 --- /dev/null +++ b/locale/data.ts @@ -0,0 +1,28 @@ +export type PronounData = { + key: string; + description: string; + normative: boolean; + plural: boolean; + pluralHonorific: boolean; + pronounceable: boolean; + history?: string; + thirdForm?: M; + smallForm?: M; + sourcesInfo?: string; + hidden?: boolean; +} & { [morpheme in M]: string | null }; + +export interface PronounExamplesData { + singular: string; + plural?: string; + isHonorific?: boolean; +} + +export interface NounTemplatesData { + masc: string; + fem: string; + neutr: string; + mascPl: string; + femPl: string; + neutrPl: string; +} diff --git a/locale/dataFiles.ts b/locale/dataFiles.ts new file mode 100644 index 000000000..c758200df --- /dev/null +++ b/locale/dataFiles.ts @@ -0,0 +1,34 @@ +declare module '*/config.suml' { + import type { Config } from '~/locale/config.ts'; + const config: Config; + export default config; +} + +declare module '*/translations.suml' { + import type { Translations } from '~/locale/translations.ts'; + const translations: Translations; + export default translations; +} + +declare module '*/pronouns/pronouns.tsv' { + import type { PronounData } from '~/locale/data.ts'; + const data: PronounData[]; + export default data; +} + +declare module '*/pronouns/examples.tsv' { + import type { PronounExamplesData } from '~/locale/data.ts'; + const data: PronounExamplesData[]; + export default data; +} + +declare module '*/nouns/nounTemplates.tsv' { + import type { NounTemplatesData } from '~/locale/data.ts'; + const data: NounTemplatesData[]; + export default data; +} + +declare module '*.tsv' { + const data: Record[]; + export default data; +} diff --git a/locale/de/pronouns/morphemes.js b/locale/de/pronouns/morphemes.js deleted file mode 100644 index d5007aa68..000000000 --- a/locale/de/pronouns/morphemes.js +++ /dev/null @@ -1,26 +0,0 @@ -// sort Nominativ first and Dativ second to keep the convention that the first two morphemes identify the pronoun set -const cases = ['n', 'd', 'a', 'g']; - -const morphemeByCase = (morphemeType) => { - return cases.map((caseAbbreviation) => `${morphemeType}_${caseAbbreviation}`); -}; - -const morphemeGroups = [ - morphemeByCase('pronoun'), - morphemeByCase('possessive_determiner_f'), - morphemeByCase('possessive_determiner_m'), - morphemeByCase('possessive_determiner_n'), - morphemeByCase('possessive_determiner_x'), - morphemeByCase('possessive_determiner_pl'), - morphemeByCase('possessive_pronoun_f'), - morphemeByCase('possessive_pronoun_m'), - morphemeByCase('possessive_pronoun_n'), - morphemeByCase('possessive_pronoun_x'), - morphemeByCase('possessive_pronoun_pl'), - morphemeByCase('relative'), - morphemeByCase('demonstrative'), - ['pronoun_equal', 'possessive_pronoun_substantivized'], - ['adverb_because', 'adverb_back_then', 'adverb_by'], - ['adjective_back_then'], -]; -export default morphemeGroups.flatMap((morphemeGroup) => morphemeGroup); diff --git a/locale/de/pronouns/morphemes.ts b/locale/de/pronouns/morphemes.ts new file mode 100644 index 000000000..e81dffdb9 --- /dev/null +++ b/locale/de/pronouns/morphemes.ts @@ -0,0 +1,28 @@ +// sort Nominativ first and Dativ second to keep the convention that the first two morphemes identify the pronoun set +const cases = ['n', 'd', 'a', 'g'] as const; + +const morphemeByCase = (morphemeType: M): `${M}_${typeof cases[number]}`[] => { + return cases.map((caseAbbreviation) => `${morphemeType}_${caseAbbreviation}` as const); +}; + +export default [ + ...morphemeByCase('pronoun'), + ...morphemeByCase('possessive_determiner_f'), + ...morphemeByCase('possessive_determiner_m'), + ...morphemeByCase('possessive_determiner_n'), + ...morphemeByCase('possessive_determiner_x'), + ...morphemeByCase('possessive_determiner_pl'), + ...morphemeByCase('possessive_pronoun_f'), + ...morphemeByCase('possessive_pronoun_m'), + ...morphemeByCase('possessive_pronoun_n'), + ...morphemeByCase('possessive_pronoun_x'), + ...morphemeByCase('possessive_pronoun_pl'), + ...morphemeByCase('relative'), + ...morphemeByCase('demonstrative'), + 'pronoun_equal', + 'possessive_pronoun_substantivized', + 'adverb_because', + 'adverb_back_then', + 'adverb_by', + 'adjective_back_then', +] as const; diff --git a/locale/en/pronouns/morphemes.js b/locale/en/pronouns/morphemes.js deleted file mode 100644 index f082fdb28..000000000 --- a/locale/en/pronouns/morphemes.js +++ /dev/null @@ -1,7 +0,0 @@ -export default [ - 'pronoun_subject', - 'pronoun_object', - 'possessive_determiner', - 'possessive_pronoun', - 'reflexive', -]; diff --git a/locale/_base/pronouns/morphemes.js b/locale/en/pronouns/morphemes.ts similarity index 91% rename from locale/_base/pronouns/morphemes.js rename to locale/en/pronouns/morphemes.ts index f082fdb28..0005ffc65 100644 --- a/locale/_base/pronouns/morphemes.js +++ b/locale/en/pronouns/morphemes.ts @@ -4,4 +4,4 @@ export default [ 'possessive_determiner', 'possessive_pronoun', 'reflexive', -]; +] as const; diff --git a/locale/eo/pronouns/morphemes.js b/locale/eo/pronouns/morphemes.ts similarity index 76% rename from locale/eo/pronouns/morphemes.js rename to locale/eo/pronouns/morphemes.ts index d0e5fa1c0..75f2dfc4a 100644 --- a/locale/eo/pronouns/morphemes.js +++ b/locale/eo/pronouns/morphemes.ts @@ -1,3 +1,3 @@ export default [ 'pronoun_subject', -]; +] as const; diff --git a/locale/es/pronouns/morphemes.js b/locale/es/pronouns/morphemes.ts similarity index 96% rename from locale/es/pronouns/morphemes.js rename to locale/es/pronouns/morphemes.ts index b64e2969a..ec07ac116 100644 --- a/locale/es/pronouns/morphemes.js +++ b/locale/es/pronouns/morphemes.ts @@ -9,4 +9,4 @@ export default [ 'plural_direct_object_pronoun', 'inflection', 'inflection_c', -]; +] as const; diff --git a/locale/et/pronouns/morphemes.js b/locale/et/pronouns/morphemes.ts similarity index 93% rename from locale/et/pronouns/morphemes.js rename to locale/et/pronouns/morphemes.ts index 8447e057a..7e3e639f1 100644 --- a/locale/et/pronouns/morphemes.js +++ b/locale/et/pronouns/morphemes.ts @@ -6,4 +6,4 @@ export default [ 'reflexive', 'thirdForm', 'smallForm', -]; +] as const; diff --git a/locale/fr/pronouns/morphemes.js b/locale/fr/pronouns/morphemes.ts similarity index 94% rename from locale/fr/pronouns/morphemes.js rename to locale/fr/pronouns/morphemes.ts index 200f6abc8..d60cf8d33 100644 --- a/locale/fr/pronouns/morphemes.js +++ b/locale/fr/pronouns/morphemes.ts @@ -7,4 +7,4 @@ export default [ 'inflection_x', 'inflection_e', 'inflection_n', -]; +] as const; diff --git a/locale/gl/pronouns/morphemes.js b/locale/gl/pronouns/morphemes.ts similarity index 95% rename from locale/gl/pronouns/morphemes.js rename to locale/gl/pronouns/morphemes.ts index 108164f91..6ef801c59 100644 --- a/locale/gl/pronouns/morphemes.js +++ b/locale/gl/pronouns/morphemes.ts @@ -10,4 +10,4 @@ export default [ 'plural_indefinite_article', 'inflection_c', 'possessive', -]; +] as const; diff --git a/locale/he/pronouns/morphemes.js b/locale/he/pronouns/morphemes.ts similarity index 91% rename from locale/he/pronouns/morphemes.js rename to locale/he/pronouns/morphemes.ts index f082fdb28..0005ffc65 100644 --- a/locale/he/pronouns/morphemes.js +++ b/locale/he/pronouns/morphemes.ts @@ -4,4 +4,4 @@ export default [ 'possessive_determiner', 'possessive_pronoun', 'reflexive', -]; +] as const; diff --git a/locale/it/pronouns/morphemes.js b/locale/it/pronouns/morphemes.ts similarity index 94% rename from locale/it/pronouns/morphemes.js rename to locale/it/pronouns/morphemes.ts index 12e2c6b46..48c74d40e 100644 --- a/locale/it/pronouns/morphemes.js +++ b/locale/it/pronouns/morphemes.ts @@ -10,4 +10,4 @@ export default [ 'adjective', 'past_participle', 'h', -]; +] as const; diff --git a/locale/ja/pronouns/morphemes.js b/locale/ja/pronouns/morphemes.ts similarity index 75% rename from locale/ja/pronouns/morphemes.js rename to locale/ja/pronouns/morphemes.ts index dcf1ad36f..242a4c5e3 100644 --- a/locale/ja/pronouns/morphemes.js +++ b/locale/ja/pronouns/morphemes.ts @@ -1,3 +1,3 @@ export default [ 'base_pronoun', -]; +] as const; diff --git a/locale/ko/pronouns/morphemes.js b/locale/ko/pronouns/morphemes.ts similarity index 72% rename from locale/ko/pronouns/morphemes.js rename to locale/ko/pronouns/morphemes.ts index d3c5e2de4..694ab022e 100644 --- a/locale/ko/pronouns/morphemes.js +++ b/locale/ko/pronouns/morphemes.ts @@ -1,3 +1,3 @@ export default [ 'pronoun', -]; +] as const; diff --git a/locale/lad/pronouns/morphemes.js b/locale/lad/pronouns/morphemes.ts similarity index 95% rename from locale/lad/pronouns/morphemes.js rename to locale/lad/pronouns/morphemes.ts index 8949ab241..c9e30250f 100644 --- a/locale/lad/pronouns/morphemes.js +++ b/locale/lad/pronouns/morphemes.ts @@ -9,4 +9,4 @@ export default [ 'plural_direct_object_pronoun', 'inflection', 'inflection_l', -]; +] as const; diff --git a/locale/nl/pronouns/morphemes.js b/locale/nl/pronouns/morphemes.ts similarity index 90% rename from locale/nl/pronouns/morphemes.js rename to locale/nl/pronouns/morphemes.ts index 22a32cf75..c64248a41 100644 --- a/locale/nl/pronouns/morphemes.js +++ b/locale/nl/pronouns/morphemes.ts @@ -4,4 +4,4 @@ export default [ 'pronominal_poss', 'predicative_poss', 'dative', -]; +] as const; diff --git a/locale/no/pronouns/morphemes.js b/locale/no/pronouns/morphemes.ts similarity index 88% rename from locale/no/pronouns/morphemes.js rename to locale/no/pronouns/morphemes.ts index b01025fef..6959c58cd 100644 --- a/locale/no/pronouns/morphemes.js +++ b/locale/no/pronouns/morphemes.ts @@ -3,4 +3,4 @@ export default [ 'pronoun_object', 'possessive', 'reflexive', -]; +] as const; diff --git a/locale/pl/pronouns/morphemes.js b/locale/pl/pronouns/morphemes.ts similarity index 97% rename from locale/pl/pronouns/morphemes.js rename to locale/pl/pronouns/morphemes.ts index 58c652f0d..4ede8549f 100644 --- a/locale/pl/pronouns/morphemes.js +++ b/locale/pl/pronouns/morphemes.ts @@ -27,4 +27,4 @@ export default [ 'verb_go', 'verb_o', 'honorific', -]; +] as const; diff --git a/locale/pt/pronouns/morphemes.js b/locale/pt/pronouns/morphemes.ts similarity index 96% rename from locale/pt/pronouns/morphemes.js rename to locale/pt/pronouns/morphemes.ts index 5753b9f58..28d345eb2 100644 --- a/locale/pt/pronouns/morphemes.js +++ b/locale/pt/pronouns/morphemes.ts @@ -15,4 +15,4 @@ export default [ 'possessive', 'demonstrative_ss', 'demonstrative_st', -]; +] as const; diff --git a/locale/ro/pronouns/morphemes.js b/locale/ro/pronouns/morphemes.ts similarity index 90% rename from locale/ro/pronouns/morphemes.js rename to locale/ro/pronouns/morphemes.ts index 570b02aed..1ce984ff1 100644 --- a/locale/ro/pronouns/morphemes.js +++ b/locale/ro/pronouns/morphemes.ts @@ -4,4 +4,4 @@ export default [ 'strengthening', 'first_article', 'second_article', -]; +] as const; diff --git a/locale/ru/pronouns/morphemes.js b/locale/ru/pronouns/morphemes.ts similarity index 96% rename from locale/ru/pronouns/morphemes.js rename to locale/ru/pronouns/morphemes.ts index 27aafbd01..2aeae1667 100644 --- a/locale/ru/pronouns/morphemes.js +++ b/locale/ru/pronouns/morphemes.ts @@ -13,4 +13,4 @@ export default [ 'adjective', 'possessive', 'definitive', -]; +] as const; diff --git a/locale/sv/pronouns/morphemes.js b/locale/sv/pronouns/morphemes.ts similarity index 87% rename from locale/sv/pronouns/morphemes.js rename to locale/sv/pronouns/morphemes.ts index 6b4ec31e5..f2cbafd1b 100644 --- a/locale/sv/pronouns/morphemes.js +++ b/locale/sv/pronouns/morphemes.ts @@ -2,4 +2,4 @@ export default [ 'pronoun_nominative', 'pronoun_object', 'possessive', -]; +] as const; diff --git a/locale/tok/pronouns/morphemes.js b/locale/tok/pronouns/morphemes.ts similarity index 72% rename from locale/tok/pronouns/morphemes.js rename to locale/tok/pronouns/morphemes.ts index d3c5e2de4..694ab022e 100644 --- a/locale/tok/pronouns/morphemes.js +++ b/locale/tok/pronouns/morphemes.ts @@ -1,3 +1,3 @@ export default [ 'pronoun', -]; +] as const; diff --git a/locale/tr/pronouns/morphemes.js b/locale/tr/pronouns/morphemes.js deleted file mode 100644 index d6d1738de..000000000 --- a/locale/tr/pronouns/morphemes.js +++ /dev/null @@ -1 +0,0 @@ -export default []; diff --git a/locale/tr/pronouns/morphemes.ts b/locale/tr/pronouns/morphemes.ts new file mode 100644 index 000000000..8eb27f173 --- /dev/null +++ b/locale/tr/pronouns/morphemes.ts @@ -0,0 +1 @@ +export default [] as const; diff --git a/locale/ua/pronouns/morphemes.js b/locale/ua/pronouns/morphemes.ts similarity index 96% rename from locale/ua/pronouns/morphemes.js rename to locale/ua/pronouns/morphemes.ts index fedc4ad58..f9aba9ad4 100644 --- a/locale/ua/pronouns/morphemes.js +++ b/locale/ua/pronouns/morphemes.ts @@ -12,4 +12,4 @@ export default [ 'adjective', 'possessive', 'definitive', -]; +] as const; diff --git a/locale/vi/pronouns/morphemes.js b/locale/vi/pronouns/morphemes.ts similarity index 81% rename from locale/vi/pronouns/morphemes.js rename to locale/vi/pronouns/morphemes.ts index 7be69cb9f..61468ec14 100644 --- a/locale/vi/pronouns/morphemes.js +++ b/locale/vi/pronouns/morphemes.ts @@ -1,4 +1,4 @@ export default [ '3rd_person', '2nd_person', -]; +] as const; diff --git a/locale/yi/pronouns/morphemes.js b/locale/yi/pronouns/morphemes.ts similarity index 91% rename from locale/yi/pronouns/morphemes.js rename to locale/yi/pronouns/morphemes.ts index a70187200..94249c85e 100644 --- a/locale/yi/pronouns/morphemes.js +++ b/locale/yi/pronouns/morphemes.ts @@ -6,4 +6,4 @@ export default [ 'article_n', 'article_d', 'article_a', -]; +] as const; diff --git a/locale/zh/pronouns/morphemes.js b/locale/zh/pronouns/morphemes.ts similarity index 81% rename from locale/zh/pronouns/morphemes.js rename to locale/zh/pronouns/morphemes.ts index 7be69cb9f..61468ec14 100644 --- a/locale/zh/pronouns/morphemes.js +++ b/locale/zh/pronouns/morphemes.ts @@ -1,4 +1,4 @@ export default [ '3rd_person', '2nd_person', -]; +] as const; diff --git a/new/backend/src/locales.ts b/new/backend/src/locales.ts index ddb42c59f..7a058c2d5 100644 --- a/new/backend/src/locales.ts +++ b/new/backend/src/locales.ts @@ -369,7 +369,7 @@ export class Locale { text: "data:image/svg+xml," + encodeURIComponent(logoSource.text), }; - this._morphemes = (await this.importFile(["pronouns/morphemes.js"])) + this._morphemes = (await this.importFile(["pronouns/morphemes.ts"])) .default as string[]; this._pronouns = []; this._pronounsByAlias = {}; diff --git a/plugins/data.d.ts b/plugins/data.d.ts deleted file mode 100644 index 540622fd1..000000000 --- a/plugins/data.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -import type { Config } from '../locale/config.ts'; -import type { Translations } from '../locale/translations.ts'; - -export interface PronounsData { - key: string; - description: string; - normative: string; - [morpheme: M]: string | null; - plural: string; - pluralHonorific: string; - pronounceable: string; - history?: string; - thirdForm?: M; - smallForm?: M; - sourcesInfo?: string; - hidden?: boolean; -} - -export interface PronounExamplesData { - singular: string; - plural?: string; - isHonorific?: boolean; -} - -export interface NounTemplatesData { - masc: string; - fem: string; - neutr: string; - mascPl: string; - femPl: string; - neutrPl: string; -} - -declare namespace Data { - declare module '*/config.suml' { - declare const config: Config; - export default config; - } - - declare module '*/translations.suml' { - declare const translations: Translations; - export default translations; - } - - declare module '*/pronouns/pronouns.tsv' { - declare const data: PronounsData[]; - export default data; - } - - declare module '*/pronouns/examples.tsv' { - declare const data: PronounExamplesData[]; - export default data; - } - - declare module '*/nouns/nounTemplates.tsv' { - declare const data: NounTemplatesData[]; - export default data; - } - - declare module '*.tsv' { - declare const data: Record[]; - export default data; - } -} diff --git a/routes/pronouns.vue b/routes/pronouns.vue index 19a832d3b..857b37958 100644 --- a/routes/pronouns.vue +++ b/routes/pronouns.vue @@ -280,7 +280,7 @@ import Vue from 'vue'; import { examples, pronouns, pronounLibrary } from '../src/data.ts'; import { ExampleCategory, ExamplePart, Pronoun } from '../src/classes.ts'; import Compressor from '../src/compressor.js'; -import MORPHEMES from '../data/pronouns/morphemes.js'; +import MORPHEMES from '../data/pronouns/morphemes.ts'; import { mapState } from 'vuex'; import Suggested from '../data/pronouns/Suggested.vue'; import type { PronounLibrary, Example } from '../src/classes.ts'; diff --git a/src/buildPronoun.ts b/src/buildPronoun.ts index 1581eb2c0..bc80ecb2f 100644 --- a/src/buildPronoun.ts +++ b/src/buildPronoun.ts @@ -1,9 +1,10 @@ import { Pronoun } from './classes.ts'; import Compressor from './compressor.js'; import { buildDict, isEmoji, unescapeControlSymbols } from './helpers.ts'; -import MORPHEMES from '../data/pronouns/morphemes.js'; +import MORPHEMES from '../data/pronouns/morphemes.ts'; import type { Config, NullPronounsConfig } from '../locale/config.ts'; import type { Translator } from './translator.js'; +import type { PronounData } from '../locale/data.ts'; export const addAliasesToPronouns = (pronouns: Record): Record => { const pronounsWithAliases: Record = {}; @@ -274,7 +275,7 @@ export const buildPronoun = ( export const parsePronouns = ( config: Config, - pronounsRaw: Record[], + pronounsRaw: PronounData[], ): Record => { return buildDict(function* () { for (const t of pronounsRaw) { diff --git a/src/classes.ts b/src/classes.ts index 6789b1e86..1c7ad7b7c 100644 --- a/src/classes.ts +++ b/src/classes.ts @@ -1,5 +1,5 @@ import { buildDict, buildList, capitalise, escapeControlSymbols, escapePronunciationString } from './helpers.ts'; -import MORPHEMES from '../data/pronouns/morphemes.js'; +import MORPHEMES from '../data/pronouns/morphemes.ts'; import type { Translator } from './translator.js'; import type { Config } from '../locale/config.ts'; @@ -388,7 +388,7 @@ export class Pronoun { pronounceable: boolean; thirdForm: string | null; smallForm: string | null; - sourcesInfo: Record | null; + sourcesInfo: string | null; hidden: boolean; static DESCRIPTION_MAXLENGTH = 64; @@ -405,7 +405,7 @@ export class Pronoun { pronounceable: boolean = true, thirdForm: string | null = null, smallForm: string | null = null, - sourcesInfo = null, + sourcesInfo: string | null = null, hidden: boolean = false, ) { this.config = config; @@ -437,7 +437,7 @@ export class Pronoun { nameOptions(): string[] { const options: Set = new Set(); const optionsN = (this.morphemes[MORPHEMES[0]] || '').split('&'); - if (MORPHEMES.length === 1) { + if (MORPHEMES.length as number === 1) { return optionsN; } const optionsG: string[] = (this.morphemes[MORPHEMES[1]] || '').split('&'); diff --git a/test/buildPronoun.test.ts b/test/buildPronoun.test.ts index 9bdd35292..0f5ae9255 100644 --- a/test/buildPronoun.test.ts +++ b/test/buildPronoun.test.ts @@ -16,7 +16,7 @@ const translations = { const translator = new Translator(translations, translations, []); // workaround to be independent of the current selected locale -jest.unstable_mockModule('../data/pronouns/morphemes.js', () => { +jest.unstable_mockModule('../data/pronouns/morphemes.ts', () => { return { default: ['pronoun_subject', 'pronoun_object', 'possessive_determiner', 'possessive_pronoun', 'reflexive'], }; diff --git a/test/locales/data.test.ts b/test/locales/data.test.ts index 66de4bb4a..c221fc8fa 100644 --- a/test/locales/data.test.ts +++ b/test/locales/data.test.ts @@ -6,7 +6,7 @@ import { Example, gendersWithNumerus } from '../../src/classes.ts'; import type { ExpectationResult } from 'expect'; import { loadSumlFromBase } from '../../server/loader.ts'; import type { Config } from '../../locale/config.ts'; -import type { NounTemplatesData, PronounExamplesData, PronounsData } from '../../plugins/data'; +import type { NounTemplatesData, PronounExamplesData, PronounData } from '../../locale/data.ts'; const __dirname = new URL('.', import.meta.url).pathname; @@ -44,8 +44,8 @@ describe.each(allLocales)('data files of $code', ({ code }) => { const nounTemplates = loadTsv(`${__dirname}/../../locale/${code}/nouns/nounTemplates.tsv`); test('pronouns/pronouns.tsv match schema', async () => { - const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.js`); - const pronouns = loadTsv>(`${__dirname}/../../locale/${code}/pronouns/pronouns.tsv`); + const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.ts`); + const pronouns = loadTsv>(`${__dirname}/../../locale/${code}/pronouns/pronouns.tsv`); if (pronouns.length === 0) { return; } @@ -80,7 +80,7 @@ describe.each(allLocales)('data files of $code', ({ code }) => { expect(actual).toEqual(required); }); test('pronouns/examples.tsv contain valid morphemes', async () => { - const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.js`); + const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.ts`); for (const example of examples) { expect(example.singular).toHaveValidMorphemes(MORPHEMES); if (example.plural) {