@@ -28,6 +28,44 @@ interface PlatformOutput {
28
28
type PlatformConfigFn = ( build : PlatformInput ) => PlatformOutput ;
29
29
30
30
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
+ } ,
31
69
rivet : ( input ) => {
32
70
input . packageJson . name += "-rivet" ;
33
71
input . packageJson . devDependencies = {
0 commit comments