All files / src/lib/helpers encodings.ts

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

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 24 25 26 27 28 29 30 31 32                                                               
import fs from "fs";
import glob from "glob";
import Path from "path";
import { localesRoot } from "consts";
 
interface EncodingData {
  name: string;
  mapping: Record<string, number | undefined>;
}
 
type EncodingDef = EncodingData & {
  id: string;
};
 
const encodingsPath = `${localesRoot}/encodings/*.json`;
 
export const encodings: EncodingDef[] = glob.sync(encodingsPath).map((path) => {
  try {
    const data = JSON.parse(fs.readFileSync(path, "utf8"));
    return {
      id: Path.basename(path, ".json"),
      ...data,
    };
  } catch (e) {
    return {
      id: Path.basename(path, ".json"),
      name: String(e),
      mapping: {},
    };
  }
});