import fs_ from 'fs' import path from 'path' import designs from '../../../config/software/designs.json' assert { type: 'json' } import { capitalize } from '../../../sites/shared/utils.mjs' import mustache from 'mustache' const fs = fs_.promises export const header = `/* * * This page was auto-generated by the prebuild script * Any changes you make to it will be lost on the next (pre)build. */ ` const loadTemplate = async (name) => await fs.readFile(path.resolve('..', 'shared', 'page-templates', name), 'utf-8') /* * Main method that does what needs doing */ export const prebuildOrg = async (site = 'org') => { const promises = [] const folder = ['..', site, 'pages', 'new', 'pattern'] const pages = { index: { page: await loadTemplate('new-pattern.mjs.mustache'), folder: (design) => path.resolve(...folder, design), file: (design) => path.resolve(...folder, design, 'index.mjs'), }, set: { page: await loadTemplate('new-pattern-from-set.mjs.mustache'), folder: (design) => path.resolve(...folder, design, 'set'), file: (design) => path.resolve(...folder, design, 'set', '[id].mjs'), }, cset: { page: await loadTemplate('new-pattern-from-cset.mjs.mustache'), folder: (design) => path.resolve(...folder, design, 'cset'), file: (design) => path.resolve(...folder, design, 'cset', '[id].mjs'), }, } for (const design in designs) { // Generate new/pattern/design pages for (const page in pages) { await fs.mkdir(pages[page].folder(design), { recursive: true }) promises.push( fs.writeFile( pages[page].file(design), mustache.render(pages[page].page, { design, Design: capitalize(design) }) ) ) } } return await Promise.all(promises) } prebuildOrg()