a tool for shared writing and social publishing
at update/thread-viewer 43 lines 1.5 kB view raw
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});