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