import fs_ from 'fs' import path from 'path' import axios from 'axios' import { designsByType } from '../../../config/software/index.mjs' const fs = fs_.promises 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. * * If you want to make changes, update the pageTemplate in: * * sites/shared/prebuild/lab.mjs * */ ` const loadFromUnpkg = (design, version) => { const start = Date.now() return axios .get(`https://unpkg.com/@freesewing/${design}@${version}/dist/index.mjs`) .then(res => { if (res.data) { console.log(`Downloaded @freesewing/${design}@${version} in ${Date.now() - start}ms`) return res.data } return false }) .catch(err => false) } const pageTemplate = design => `${header} import design from 'designs/${design}/src/index.js' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import PageTemplate from 'site/page-templates/workbench' const Page = (props) => export default Page export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale)), } } } ` const versionedPageTemplate = (design, version) => `${header} import design from 'lib/${version}/${design}.mjs' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import PageTemplate from 'site/page-templates/workbench.js' const Page = (props) => export default Page export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale)), } } } ` const versionOverviewPage = (version) => `${header} import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import Template from 'site/page-templates/design-list.js' const Page = props =>