@prisma/compute-cli 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,20 +57,20 @@ bunx @prisma/compute-cli deploy --path ./my-app
57
57
 
58
58
  Key flags:
59
59
 
60
- | Flag | Description |
61
- | ----------------- | ------------------------------------------------------ |
62
- | `--path` | App directory (default: `.`) |
63
- | `--project` | Project ID (prompted interactively if omitted) |
64
- | `--service` | Compute service ID (prompted interactively if omitted) |
65
- | `--entrypoint` | Relative app entrypoint |
66
- | `--serviceName` | Name for a new compute service |
67
- | `--region` | Region for a new compute service |
68
- | `--env KEY=VALUE` | Environment variable (repeatable) |
69
- | `--httpPort` | HTTP port your application listens on |
70
- | `--skipBuild` | Deploy a pre-built artifact (requires `--entrypoint`) |
71
- | `--timeout` | Poll timeout in seconds (default: `120`) |
72
- | `--pollInterval` | Poll interval in ms (default: `1000`) |
73
- | `--json` | Output JSON instead of human-readable text |
60
+ | Flag | Description |
61
+ | ----------------- | ---------------------------------------------------------------------------------- |
62
+ | `--path` | App directory (default: `.`) |
63
+ | `--project` | Project ID (prompted interactively if omitted) |
64
+ | `--service` | Compute service ID (prompted interactively if omitted) |
65
+ | `--entrypoint` | File to run at startup, relative to `--path` (falls back to `package.json` `main`) |
66
+ | `--serviceName` | Name for a new compute service |
67
+ | `--region` | Region for a new compute service |
68
+ | `--env KEY=VALUE` | Environment variable (repeatable) |
69
+ | `--httpPort` | HTTP port your application listens on (default: `8080`) |
70
+ | `--skipBuild` | Deploy a pre-built artifact (requires `--entrypoint`) |
71
+ | `--timeout` | Poll timeout in seconds (default: `120`) |
72
+ | `--pollInterval` | Poll interval in ms (default: `1000`) |
73
+ | `--json` | Output JSON instead of human-readable text |
74
74
 
75
75
  Set `PRISMA_COMPUTE_SERVICE_ID` to skip the `--service` flag across all commands:
76
76
 
@@ -14,7 +14,7 @@ export declare const deployCommand: import("citty").CommandDef<{
14
14
  };
15
15
  readonly entrypoint: {
16
16
  readonly type: "string";
17
- readonly description: "Relative app entrypoint";
17
+ readonly description: "File to run at startup, relative to --path (falls back to package.json main)";
18
18
  };
19
19
  readonly serviceName: {
20
20
  readonly type: "string";
@@ -24,6 +24,11 @@ export declare const deployCommand: import("citty").CommandDef<{
24
24
  readonly type: "string";
25
25
  readonly description: "Region for a new compute service";
26
26
  };
27
+ readonly buildType: {
28
+ readonly type: "string";
29
+ readonly default: "auto";
30
+ readonly description: "Build strategy: auto, bun, or nextjs";
31
+ };
27
32
  readonly skipBuild: {
28
33
  readonly type: "boolean";
29
34
  readonly default: false;
@@ -39,7 +44,7 @@ export declare const deployCommand: import("citty").CommandDef<{
39
44
  };
40
45
  readonly httpPort: {
41
46
  readonly type: "string";
42
- readonly description: "HTTP port your application listens on";
47
+ readonly description: "HTTP port your application listens on (default: 8080)";
43
48
  };
44
49
  readonly timeout: {
45
50
  readonly type: "string";
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0HxB,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+JxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { BunBuild, ComputeClient, PreBuilt, } from "@prisma/compute-sdk";
2
+ import { AutoBuild, BunBuild, ComputeClient, NextjsBuild, PreBuilt, } from "@prisma/compute-sdk";
3
3
  import { defineCommand } from "citty";
4
4
  import { createDeployInteraction } from "../lib/interaction.js";
5
5
  import { printJsonResult } from "../lib/json-output.js";
@@ -11,12 +11,20 @@ export const deployCommand = defineCommand({
11
11
  project: { type: "string", description: "Project ID" },
12
12
  service: { type: "string", description: "Compute service ID" },
13
13
  path: { type: "string", default: ".", description: "App directory" },
14
- entrypoint: { type: "string", description: "Relative app entrypoint" },
14
+ entrypoint: {
15
+ type: "string",
16
+ description: "File to run at startup, relative to --path (falls back to package.json main)",
17
+ },
15
18
  serviceName: {
16
19
  type: "string",
17
20
  description: "Name for a new compute service",
18
21
  },
19
22
  region: { type: "string", description: "Region for a new compute service" },
23
+ buildType: {
24
+ type: "string",
25
+ default: "auto",
26
+ description: "Build strategy: auto, bun, or nextjs",
27
+ },
20
28
  skipBuild: {
21
29
  type: "boolean",
22
30
  default: false,
@@ -32,7 +40,7 @@ export const deployCommand = defineCommand({
32
40
  },
33
41
  httpPort: {
34
42
  type: "string",
35
- description: "HTTP port your application listens on",
43
+ description: "HTTP port your application listens on (default: 8080)",
36
44
  },
37
45
  timeout: {
38
46
  type: "string",
@@ -67,13 +75,37 @@ export const deployCommand = defineCommand({
67
75
  const inputServiceId = resolveServiceId(args);
68
76
  let strategy;
69
77
  if (args.skipBuild) {
78
+ if (args.buildType !== "auto") {
79
+ throw new Error("--build-type cannot be combined with --skip-build");
80
+ }
70
81
  if (!args.entrypoint) {
71
82
  throw new Error("When --skip-build is set you must provide --entrypoint");
72
83
  }
73
84
  strategy = new PreBuilt({ appPath, entrypoint: args.entrypoint });
74
85
  }
75
86
  else {
76
- strategy = new BunBuild({ appPath, entrypoint: args.entrypoint });
87
+ switch (args.buildType) {
88
+ case "auto":
89
+ strategy = new AutoBuild({
90
+ appPath,
91
+ entrypoint: args.entrypoint,
92
+ });
93
+ break;
94
+ case "bun":
95
+ strategy = new BunBuild({
96
+ appPath,
97
+ entrypoint: args.entrypoint,
98
+ });
99
+ break;
100
+ case "nextjs":
101
+ if (args.entrypoint) {
102
+ throw new Error("--entrypoint cannot be combined with --build-type=nextjs");
103
+ }
104
+ strategy = new NextjsBuild({ appPath });
105
+ break;
106
+ default:
107
+ throw new Error(`Unknown build type: ${args.buildType}`);
108
+ }
77
109
  }
78
110
  if (args.skipPromote && args.destroyOldVersion) {
79
111
  throw new Error("--destroy-old-version cannot be combined with --skip-promote");
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/compute-cli",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "repository": "prisma/project-compute",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@clack/prompts": "^1.1.0",
34
- "@prisma/compute-sdk": "0.6.0",
34
+ "@prisma/compute-sdk": "0.8.0",
35
35
  "@prisma/credentials-store": "^7.5.0",
36
36
  "@prisma/management-api-sdk": "^1.23.0",
37
37
  "citty": "^0.2.1",
@@ -1,8 +1,11 @@
1
1
  import path from "node:path";
2
2
  import {
3
+ AutoBuild,
4
+ type BuildStrategy,
3
5
  BunBuild,
4
6
  ComputeClient,
5
7
  type DeployResult,
8
+ NextjsBuild,
6
9
  PreBuilt,
7
10
  } from "@prisma/compute-sdk";
8
11
  import { defineCommand } from "citty";
@@ -26,12 +29,21 @@ export const deployCommand = defineCommand({
26
29
  project: { type: "string", description: "Project ID" },
27
30
  service: { type: "string", description: "Compute service ID" },
28
31
  path: { type: "string", default: ".", description: "App directory" },
29
- entrypoint: { type: "string", description: "Relative app entrypoint" },
32
+ entrypoint: {
33
+ type: "string",
34
+ description:
35
+ "File to run at startup, relative to --path (falls back to package.json main)",
36
+ },
30
37
  serviceName: {
31
38
  type: "string",
32
39
  description: "Name for a new compute service",
33
40
  },
34
41
  region: { type: "string", description: "Region for a new compute service" },
42
+ buildType: {
43
+ type: "string",
44
+ default: "auto",
45
+ description: "Build strategy: auto, bun, or nextjs",
46
+ },
35
47
  skipBuild: {
36
48
  type: "boolean",
37
49
  default: false,
@@ -47,7 +59,7 @@ export const deployCommand = defineCommand({
47
59
  },
48
60
  httpPort: {
49
61
  type: "string",
50
- description: "HTTP port your application listens on",
62
+ description: "HTTP port your application listens on (default: 8080)",
51
63
  },
52
64
  timeout: {
53
65
  type: "string",
@@ -85,8 +97,13 @@ export const deployCommand = defineCommand({
85
97
 
86
98
  const inputServiceId = resolveServiceId(args);
87
99
 
88
- let strategy: PreBuilt | BunBuild;
100
+ let strategy: BuildStrategy;
89
101
  if (args.skipBuild) {
102
+ if (args.buildType !== "auto") {
103
+ throw new Error(
104
+ "--build-type cannot be combined with --skip-build",
105
+ );
106
+ }
90
107
  if (!args.entrypoint) {
91
108
  throw new Error(
92
109
  "When --skip-build is set you must provide --entrypoint",
@@ -94,7 +111,30 @@ export const deployCommand = defineCommand({
94
111
  }
95
112
  strategy = new PreBuilt({ appPath, entrypoint: args.entrypoint });
96
113
  } else {
97
- strategy = new BunBuild({ appPath, entrypoint: args.entrypoint });
114
+ switch (args.buildType) {
115
+ case "auto":
116
+ strategy = new AutoBuild({
117
+ appPath,
118
+ entrypoint: args.entrypoint,
119
+ });
120
+ break;
121
+ case "bun":
122
+ strategy = new BunBuild({
123
+ appPath,
124
+ entrypoint: args.entrypoint,
125
+ });
126
+ break;
127
+ case "nextjs":
128
+ if (args.entrypoint) {
129
+ throw new Error(
130
+ "--entrypoint cannot be combined with --build-type=nextjs",
131
+ );
132
+ }
133
+ strategy = new NextjsBuild({ appPath });
134
+ break;
135
+ default:
136
+ throw new Error(`Unknown build type: ${args.buildType}`);
137
+ }
98
138
  }
99
139
 
100
140
  if (args.skipPromote && args.destroyOldVersion) {