summaryrefslogtreecommitdiff
path: root/src/generate.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/generate.ts')
-rw-r--r--src/generate.ts61
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);
-}