a tool for shared writing and social publishing
at feature/backdate 41 lines 1.4 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"; 13 14const outdir = path.join("lexicons", "pub", "leaflet"); 15 16if (fs.existsSync(outdir)) { 17 fs.rmSync(outdir, { recursive: true }); 18} 19fs.mkdirSync(outdir, { recursive: true }); 20 21const lexicons = [ 22 PubLeafletDocument, 23 PubLeafletComment, 24 PubLeafletRichTextFacet, 25 PubLeafletAuthFullPermissions, 26 PageLexicons.PubLeafletPagesLinearDocument, 27 PageLexicons.PubLeafletPagesCanvasDocument, 28 ...ThemeLexicons, 29 ...BlockLexicons, 30 ...Object.values(PublicationLexicons), 31 ...Object.values(PollLexicons), 32]; 33 34// Write each lexicon to a file 35lexicons.forEach((lexicon) => { 36 let id = lexicon.id.split("."); 37 let folder = path.join(outdir, ...id.slice(2, -1)); 38 if (!fs.existsSync(folder)) fs.mkdirSync(folder, { recursive: true }); 39 const filename = path.join(folder, id[id.length - 1] + ".json"); 40 fs.writeFileSync(filename, JSON.stringify(lexicon, null, 2)); 41});