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