summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/ssr/astro.config.mjs2
-rw-r--r--examples/ssr/build.mjs12
-rw-r--r--examples/ssr/package.json4
-rw-r--r--examples/ssr/server/server.mjs48
4 files changed, 22 insertions, 44 deletions
diff --git a/examples/ssr/astro.config.mjs b/examples/ssr/astro.config.mjs
index 481576db1..f6aba20ce 100644
--- a/examples/ssr/astro.config.mjs
+++ b/examples/ssr/astro.config.mjs
@@ -1,8 +1,10 @@
import { defineConfig } from 'astro/config';
import svelte from '@astrojs/svelte';
+import nodejs from '@astrojs/node';
// https://astro.build/config
export default defineConfig({
+ adapter: nodejs(),
integrations: [svelte()],
vite: {
server: {
diff --git a/examples/ssr/build.mjs b/examples/ssr/build.mjs
deleted file mode 100644
index 168c3c55f..000000000
--- a/examples/ssr/build.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-import { execa } from 'execa';
-
-const api = execa('npm', ['run', 'dev-api']);
-api.stdout.pipe(process.stdout);
-api.stderr.pipe(process.stderr);
-
-const build = execa('pnpm', ['astro', 'build', '--experimental-ssr']);
-build.stdout.pipe(process.stdout);
-build.stderr.pipe(process.stderr);
-await build;
-
-api.kill();
diff --git a/examples/ssr/package.json b/examples/ssr/package.json
index 44eebe3a1..44ffc3bfa 100644
--- a/examples/ssr/package.json
+++ b/examples/ssr/package.json
@@ -7,12 +7,12 @@
"dev-server": "astro dev --experimental-ssr",
"dev": "concurrently \"npm run dev-api\" \"astro dev --experimental-ssr\"",
"start": "astro dev",
- "build": "echo 'Run pnpm run build-ssr instead'",
- "build-ssr": "node build.mjs",
+ "build": "astro build --experimental-ssr",
"server": "node server/server.mjs"
},
"devDependencies": {
"@astrojs/svelte": "^0.0.2-next.0",
+ "@astrojs/node": "^0.0.1",
"astro": "^0.25.0-next.2",
"concurrently": "^7.0.0",
"lightcookie": "^1.0.25",
diff --git a/examples/ssr/server/server.mjs b/examples/ssr/server/server.mjs
index c6f35685e..bed49b749 100644
--- a/examples/ssr/server/server.mjs
+++ b/examples/ssr/server/server.mjs
@@ -1,43 +1,31 @@
import { createServer } from 'http';
import fs from 'fs';
import mime from 'mime';
-import { loadApp } from 'astro/app/node';
-import { polyfill } from '@astrojs/webapi';
import { apiHandler } from './api.mjs';
-
-polyfill(globalThis);
+import { handler as ssrHandler } from '../dist/server/entry.mjs';
const clientRoot = new URL('../dist/client/', import.meta.url);
-const serverRoot = new URL('../dist/server/', import.meta.url);
-const app = await loadApp(serverRoot);
async function handle(req, res) {
- const route = app.match(req);
+ ssrHandler(req, res, async () => {
+ // Did not match an SSR route
- if (route) {
- /** @type {Response} */
- const response = await app.render(req, route);
- const html = await response.text();
- res.writeHead(response.status, {
- 'Content-Type': 'text/html; charset=utf-8',
- 'Content-Length': Buffer.byteLength(html, 'utf-8'),
- });
- res.end(html);
- } else if (/^\/api\//.test(req.url)) {
- return apiHandler(req, res);
- } else {
- let local = new URL('.' + req.url, clientRoot);
- try {
- const data = await fs.promises.readFile(local);
- res.writeHead(200, {
- 'Content-Type': mime.getType(req.url),
- });
- res.end(data);
- } catch {
- res.writeHead(404);
- res.end();
+ if (/^\/api\//.test(req.url)) {
+ return apiHandler(req, res);
+ } else {
+ let local = new URL('.' + req.url, clientRoot);
+ try {
+ const data = await fs.promises.readFile(local);
+ res.writeHead(200, {
+ 'Content-Type': mime.getType(req.url),
+ });
+ res.end(data);
+ } catch {
+ res.writeHead(404);
+ res.end();
+ }
}
- }
+ });
}
const server = createServer((req, res) => {