Skip to content

Commit 16ac230

Browse files
NathanFlurryjog1t
authored andcommitted
chore: add aider to gitignore
1 parent be976a5 commit 16ac230

File tree

9 files changed

+363
-4
lines changed

9 files changed

+363
-4
lines changed

packages/platforms/redis/src/mod.ts

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
export { createRouter } from "./router/mod";
22
export { RedisConfig } from "./config";
3+
export type { PlatformConfig } from "./platform_config";
4+
export { createRouter } from "./router/mod";
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"name": "@actor-core/vercel",
3+
"version": "0.3.0",
4+
"files": [
5+
"src",
6+
"dist",
7+
"package.json"
8+
],
9+
"type": "module",
10+
"exports": {
11+
".": {
12+
"import": {
13+
"types": "./dist/mod.d.ts",
14+
"default": "./dist/mod.js"
15+
},
16+
"require": {
17+
"types": "./dist/mod.d.cts",
18+
"default": "./dist/mod.cjs"
19+
}
20+
}
21+
},
22+
"sideEffects": false,
23+
"scripts": {
24+
"build": "tsup src/mod.ts",
25+
"dev": "yarn build --watch",
26+
"check-types": "tsc --noEmit"
27+
},
28+
"peerDependencies": {
29+
"actor-core": "workspace:*"
30+
},
31+
"devDependencies": {
32+
"@actor-core/redis": "workspace:*",
33+
"hono": "^4.7.0",
34+
"next": "^15.1.7",
35+
"tsup": "^8.3.6",
36+
"typescript": "^5.5.2"
37+
},
38+
"dependencies": {
39+
"@hono/node-server": "^1.13.8",
40+
"dedent": "^1.5.3",
41+
"ioredis": "^5.4.2"
42+
}
43+
}
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { RedisConfig } from "@actor-core/redis";
2+
3+
export interface Config extends RedisConfig {
4+
// Add any Vercel-specific config options here if needed
5+
}

packages/platforms/vercel/src/mod.ts

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { createRouter } from "@actor-core/redis";
2+
import type { Config } from "./config";
3+
import type { NextRequest } from "next/server";
4+
5+
export function createHandler(config: Config) {
6+
const app = createRouter(config, {
7+
// Vercel doesn't need WebSocket upgrade handling as it's handled differently
8+
getUpgradeWebSocket: undefined,
9+
});
10+
11+
return {
12+
GET: async (request: NextRequest) => {
13+
return app.fetch(request);
14+
},
15+
POST: async (request: NextRequest) => {
16+
return app.fetch(request);
17+
},
18+
PUT: async (request: NextRequest) => {
19+
return app.fetch(request);
20+
},
21+
DELETE: async (request: NextRequest) => {
22+
return app.fetch(request);
23+
},
24+
PATCH: async (request: NextRequest) => {
25+
return app.fetch(request);
26+
},
27+
HEAD: async (request: NextRequest) => {
28+
return app.fetch(request);
29+
},
30+
OPTIONS: async (request: NextRequest) => {
31+
return app.fetch(request);
32+
},
33+
};
34+
}
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": "../../../tsconfig.base.json",
3+
"compilerOptions": {
4+
"paths": {
5+
"@/*": ["./src/*"]
6+
}
7+
},
8+
"include": ["src/**/*"]
9+
}
+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import defaultConfig from "../../../tsup.base.ts";
2+
import { defineConfig } from "tsup";
3+
4+
export default defineConfig(defaultConfig);

packages/platforms/vercel/turbo.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"$schema": "https://turbo.build/schema.json",
3+
"extends": ["//"],
4+
"tasks": {
5+
"build": {
6+
"inputs": ["src/**", "./tsup.config.ts"],
7+
"dependsOn": ["actor-core#build"]
8+
}
9+
}
10+
}

scripts/template_platforms.ts

+38
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,44 @@ interface PlatformOutput {
2828
type PlatformConfigFn = (build: PlatformInput) => PlatformOutput;
2929

3030
const PLATFORMS: Record<string, PlatformConfigFn> = {
31+
vercel: (input) => {
32+
input.packageJson.name += "-vercel";
33+
input.packageJson.devDependencies = {
34+
"@actor-core/vercel": "workspace:*",
35+
"next": "^14.0.0",
36+
...input.packageJson.devDependencies,
37+
};
38+
input.packageJson.scripts = {
39+
dev: "next dev",
40+
build: "next build",
41+
start: "next start",
42+
...input.packageJson.scripts,
43+
};
44+
45+
const { actorImports, actorList } = buildActorImports(input);
46+
47+
return {
48+
files: {
49+
"package.json": stringifyJson(input.packageJson),
50+
"src/app/api/actor/route.ts": dedent`
51+
import { createHandler } from "@actor-core/vercel"
52+
${actorImports}
53+
54+
const handler = createHandler({
55+
actors: { ${actorList} }
56+
});
57+
58+
export const GET = handler.GET;
59+
export const POST = handler.POST;
60+
export const PUT = handler.PUT;
61+
export const DELETE = handler.DELETE;
62+
export const PATCH = handler.PATCH;
63+
export const HEAD = handler.HEAD;
64+
export const OPTIONS = handler.OPTIONS;
65+
`,
66+
},
67+
};
68+
},
3169
rivet: (input) => {
3270
input.packageJson.name += "-rivet";
3371
input.packageJson.devDependencies = {

0 commit comments

Comments
 (0)