-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnormalize.ts
More file actions
22 lines (21 loc) · 921 Bytes
/
normalize.ts
File metadata and controls
22 lines (21 loc) · 921 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { normalizePrimitiveArrays } from "./normalize-array-of-arrays";
import { normalizeArrayOfPrimitives } from "./normalize-array-of-primitives";
import { normalizeDeepObjects } from "./normalize-deep-objects";
import { normalizeDictionaries } from "./normalize-dictionaries";
import { normalizeLocalization } from "./normalize-localization";
import type { NormalizedData } from "./types";
export function normalize(data: unknown): NormalizedData {
return normalizeDictionaries(
/* replace {a:{b:'c'}} to {'a_b':'c'} */
normalizeDeepObjects(
/* replace [[...],[...]] to [{items:[...]},{items:[...]}] */
normalizePrimitiveArrays(
/* replace [1,2,3] to [{value:1},{value:2},{value:3}] */
normalizeArrayOfPrimitives(
/* replace { en: string, zh: string, ... } to { lang: string, text: string }[]*/
normalizeLocalization(data),
),
),
),
);
}