mirror of
https://github.com/kou029w/_.git
synced 2025-01-30 13:58:08 +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