2023-10-08 14:26:58 +02:00
|
|
|
import path from 'path'
|
|
|
|
import fs from 'fs'
|
|
|
|
import { collection } from '../../org/hooks/use-design.mjs'
|
|
|
|
import { capitalize } from '../utils.mjs'
|
|
|
|
import mustache from 'mustache'
|
|
|
|
|
2023-10-09 11:52:14 +02:00
|
|
|
const changeDelimiter = `{{!
|
|
|
|
// Change the Mustache delimiter from double curly braces to double dollar signs.
|
|
|
|
// Dollar signs are allowed in EcmaScript identifier names,
|
|
|
|
// which is helpful when running unrendered Mustache templates through eslint.
|
|
|
|
//}}{{=$$ $$=}}
|
|
|
|
`
|
|
|
|
|
2023-10-08 14:26:58 +02:00
|
|
|
const loadPageTemplate = async (name) =>
|
2023-10-09 11:52:14 +02:00
|
|
|
await fs.promises.readFile(path.resolve(`../org/page-templates/${name}`), 'utf-8')
|
2023-10-08 14:26:58 +02:00
|
|
|
|
2023-10-08 17:06:58 +02:00
|
|
|
const generateNewPatternPages = async () => {
|
2023-10-08 15:57:15 +02:00
|
|
|
const page = await loadPageTemplate('new-pattern.mjs')
|
2023-10-08 14:26:58 +02:00
|
|
|
for (const design of collection) {
|
|
|
|
await fs.promises.writeFile(
|
|
|
|
path.resolve(`../org/pages/new/${design}.mjs`),
|
2023-10-09 11:52:14 +02:00
|
|
|
mustache.render(changeDelimiter + page, {
|
2023-10-08 14:26:58 +02:00
|
|
|
design,
|
|
|
|
Design: capitalize(design),
|
|
|
|
})
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-08 17:06:58 +02:00
|
|
|
const generateEditPatternPages = async () => {
|
|
|
|
const page = await loadPageTemplate('edit-pattern.mjs')
|
|
|
|
for (const design of collection) {
|
|
|
|
const dir = `../org/pages/account/patterns/${design}/[id]`
|
|
|
|
await fs.promises.mkdir(path.resolve(dir), { recursive: true })
|
|
|
|
await fs.promises.writeFile(
|
|
|
|
path.resolve(`${dir}/edit.mjs`),
|
2023-10-09 11:52:14 +02:00
|
|
|
mustache.render(changeDelimiter + page, {
|
2023-10-08 17:06:58 +02:00
|
|
|
design,
|
|
|
|
Design: capitalize(design),
|
|
|
|
})
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-08 14:26:58 +02:00
|
|
|
export const prebuildOrg = async () => {
|
2023-10-08 17:06:58 +02:00
|
|
|
await generateNewPatternPages()
|
|
|
|
await generateEditPatternPages()
|
2023-10-08 14:26:58 +02:00
|
|
|
}
|