a tool for shared writing and social publishing
1import * as PageLexicons from "./src/pages";
2import { BlockLexicons } from "./src/blocks";
3import { PubLeafletDocument } from "./src/document";
4import * as PublicationLexicons from "./src/publication";
5import * as PollLexicons from "./src/polls";
6import { ThemeLexicons } from "./src/theme";
7
8import * as fs from "fs";
9import * as path from "path";
10import { PubLeafletRichTextFacet } from "./src/facet";
11import { PubLeafletComment } from "./src/comment";
12import { PubLeafletAuthFullPermissions } from "./src/authFullPermissions";
13import { PubLeafletContent } from "./src/content";
14
15const outdir = path.join("lexicons", "pub", "leaflet");
16
17if (fs.existsSync(outdir)) {
18 fs.rmSync(outdir, { recursive: true });
19}
20fs.mkdirSync(outdir, { recursive: true });
21
22const lexicons = [
23 PubLeafletDocument,
24 PubLeafletContent,
25 PubLeafletComment,
26 PubLeafletRichTextFacet,
27 PubLeafletAuthFullPermissions,
28 PageLexicons.PubLeafletPagesLinearDocument,
29 PageLexicons.PubLeafletPagesCanvasDocument,
30 ...ThemeLexicons,
31 ...BlockLexicons,
32 ...Object.values(PublicationLexicons),
33 ...Object.values(PollLexicons),
34];
35
36// Write each lexicon to a file
37lexicons.forEach((lexicon) => {
38 let id = lexicon.id.split(".");
39 let folder = path.join(outdir, ...id.slice(2, -1));
40 if (!fs.existsSync(folder)) fs.mkdirSync(folder, { recursive: true });
41 const filename = path.join(folder, id[id.length - 1] + ".json");
42 fs.writeFileSync(filename, JSON.stringify(lexicon, null, 2));
43});