From 5750c543fe530493e11a80557eb615501ae826ed Mon Sep 17 00:00:00 2001 From: Amr Saber Date: Sat, 28 Sep 2024 21:19:00 +0100 Subject: [PATCH] assert i18n dictionaries match on app startup --- src/hooks.server.ts | 1 + src/lib/i18n/dicts/_assertions.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 src/hooks.server.ts create mode 100644 src/lib/i18n/dicts/_assertions.ts diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..2210a20 --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1 @@ +import '$lib/i18n/dicts/_assertions'; diff --git a/src/lib/i18n/dicts/_assertions.ts b/src/lib/i18n/dicts/_assertions.ts new file mode 100644 index 0000000..9be6ab8 --- /dev/null +++ b/src/lib/i18n/dicts/_assertions.ts @@ -0,0 +1,14 @@ +import { assert } from '$lib/utils'; +import arDict from './ar'; +import enDict from './en'; + +// Assert that languages dictionaries contain same values +{ + const arKeys = new Set(Object.keys(arDict)); + const enKeys = new Set(Object.keys(enDict)); + + const dictsUnion = arKeys.union(enKeys); + const dictsIntersection = arKeys.intersection(enKeys); + const difference = dictsUnion.difference(dictsIntersection); + assert(difference.size == 0, `i18n dictionaries have difference [${[...difference].join(', ')}]`); +}