diff options
Diffstat (limited to 'src/generate.ts')
-rw-r--r-- | src/generate.ts | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/src/generate.ts b/src/generate.ts deleted file mode 100644 index 4a31cc291..000000000 --- a/src/generate.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { AstroConfig } from './@types/astro'; -import { loadConfiguration, startServer as startSnowpackServer } from 'snowpack'; -import { promises as fsPromises } from 'fs'; -import { relative as pathRelative } from 'path'; - -const { mkdir, readdir, stat, writeFile } = fsPromises; - -async function* allPages(root: URL): AsyncGenerator<URL, void, unknown> { - for (const filename of await readdir(root)) { - const fullpath = new URL(filename, root); - const info = await stat(fullpath); - - if (info.isDirectory()) { - yield* allPages(new URL(fullpath + '/')); - } else { - yield fullpath; - } - } -} - -export default async function (astroConfig: AstroConfig) { - const { projectRoot, astroRoot } = astroConfig; - const pageRoot = new URL('./pages/', astroRoot); - const dist = new URL(astroConfig.dist + '/', projectRoot); - - const configPath = new URL('./snowpack.config.js', projectRoot).pathname; - const config = await loadConfiguration( - { - root: projectRoot.pathname, - devOptions: { open: 'none', output: 'stream' }, - }, - configPath - ); - const snowpack = await startSnowpackServer({ - config, - lockfile: null, // TODO should this be required? - }); - - const runtime = snowpack.getServerRuntime(); - - for await (const filepath of allPages(pageRoot)) { - const rel = pathRelative(astroRoot.pathname, filepath.pathname); // pages/index.astro - const pagePath = `/_astro/${rel.replace(/\.(astro|md)/, '.js')}`; - - try { - const outPath = new URL('./' + rel.replace(/\.(astro|md)/, '.html'), dist); - const outFolder = new URL('./', outPath); - const mod = await runtime.importModule(pagePath); - const html = await mod.exports.default({}); - - await mkdir(outFolder, { recursive: true }); - await writeFile(outPath, html, 'utf-8'); - } catch (err) { - console.error('Unable to generate page', rel); - console.error(err); - } - } - - await snowpack.shutdown(); - process.exit(0); -} |