mirror of
https://github.com/kou029w/_.git
synced 2025-01-30 22:08:02 +00:00
create astro-fastify
This commit is contained in:
parent
e9b42a86e4
commit
c5b6327a2e
7 changed files with 4621 additions and 0 deletions
9
astro-fastify/astro.config.ts
Normal file
9
astro-fastify/astro.config.ts
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import { defineConfig } from "astro/config";
|
||||||
|
import node from "@astrojs/node";
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
output: "server",
|
||||||
|
adapter: node({
|
||||||
|
mode: "middleware",
|
||||||
|
}),
|
||||||
|
});
|
21
astro-fastify/package.json
Normal file
21
astro-fastify/package.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "@kou029w/astro-fastify",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "fastify start --log-level=info --debug --watch server.js -- --dev",
|
||||||
|
"build": "astro build",
|
||||||
|
"start": "fastify start server.js"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@astrojs/node": "^8.2.5",
|
||||||
|
"@fastify/http-proxy": "^9.5.0",
|
||||||
|
"@fastify/middie": "^8.3.0",
|
||||||
|
"@fastify/static": "^7.0.1",
|
||||||
|
"astro": "^4.5.9",
|
||||||
|
"fastify": "^4.26.2",
|
||||||
|
"fastify-cli": "^6.1.1"
|
||||||
|
}
|
||||||
|
}
|
4553
astro-fastify/pnpm-lock.yaml
generated
Normal file
4553
astro-fastify/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load diff
1
astro-fastify/public/public.txt
Normal file
1
astro-fastify/public/public.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
public
|
27
astro-fastify/server.js
Normal file
27
astro-fastify/server.js
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
import fastifyMiddie from "@fastify/middie";
|
||||||
|
import fastifyStatic from "@fastify/static";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
/** @type {import("fastify").FastifyPluginAsync} */
|
||||||
|
const app = async (fastify, opts) => {
|
||||||
|
fastify.get("/hello", async () => "hello");
|
||||||
|
|
||||||
|
if (opts.dev) {
|
||||||
|
const astro = await import("astro");
|
||||||
|
const astroDevServer = await astro.dev();
|
||||||
|
await fastify.register(await import("@fastify/http-proxy"), {
|
||||||
|
upstream: `http://localhost:${astroDevServer.address.port}`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await fastify.register(fastifyStatic, {
|
||||||
|
root: fileURLToPath(import.meta.resolve("./dist/client")),
|
||||||
|
});
|
||||||
|
await fastify.register(fastifyMiddie);
|
||||||
|
const astroServer = await import("./dist/server/entry.mjs");
|
||||||
|
fastify.use(astroServer.handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
fastify.get("/world", async () => "world");
|
||||||
|
};
|
||||||
|
|
||||||
|
export default app;
|
1
astro-fastify/src/env.d.ts
vendored
Normal file
1
astro-fastify/src/env.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/// <reference types="astro/client" />
|
9
astro-fastify/src/pages/index.ts
Normal file
9
astro-fastify/src/pages/index.ts
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
import type { APIRoute } from "astro";
|
||||||
|
|
||||||
|
export const GET: APIRoute = () => {
|
||||||
|
return new Response(
|
||||||
|
JSON.stringify({
|
||||||
|
number: Math.random(),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
};
|
Loading…
Add table
Reference in a new issue