All files / normalize normalize.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 1/1
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23                32x                            
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),
        ),
      ),
    ),
  );
}