@cedarjs/cli 1.0.0-canary.13057 → 1.0.0-canary.13060

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.
@@ -8,7 +8,8 @@ const builder = (yargs) => {
8
8
  choices: ["api", "web"],
9
9
  default: ["api", "web"],
10
10
  description: "Which dev server(s) to start",
11
- type: "array"
11
+ type: "string",
12
+ array: true
12
13
  }).option("forward", {
13
14
  alias: "fwd",
14
15
  description: 'String of one or more vite dev server config options, for example: `--fwd="--port=1234 --open=false"`',
@@ -26,8 +26,10 @@ const handler = async ({
26
26
  });
27
27
  const rwjsPaths = getPaths();
28
28
  const serverFile = serverFileExists();
29
- let apiPreferredPort = parseInt(getConfig().api.port);
30
- let webPreferredPort = parseInt(getConfig().web.port);
29
+ const apiPreferredPort = parseInt(String(getConfig().api.port));
30
+ let webPreferredPort = parseInt(
31
+ String(getConfig().web.port)
32
+ );
31
33
  let apiAvailablePort = apiPreferredPort;
32
34
  let apiPortChangeNeeded = false;
33
35
  let webAvailablePort = webPreferredPort;
@@ -46,7 +48,8 @@ const handler = async ({
46
48
  ...forward.matchAll(/\-\-port(\=|\s)(?<port>[^\s]*)/g)
47
49
  ];
48
50
  if (forwardedPortMatches.length) {
49
- webPreferredPort = parseInt(forwardedPortMatches.pop().groups.port);
51
+ const port = forwardedPortMatches.pop()?.groups?.port;
52
+ webPreferredPort = port ? parseInt(port, 10) : void 0;
50
53
  }
51
54
  webAvailablePort = await getFreePort(webPreferredPort, [
52
55
  apiPreferredPort,
@@ -84,19 +87,18 @@ const handler = async ({
84
87
  force: false
85
88
  });
86
89
  } catch (e) {
87
- errorTelemetry(
88
- process.argv,
89
- `Error generating prisma client: ${e.message}`
90
- );
91
- console.error(c.error(e.message));
90
+ const message = e instanceof Object && "message" in e ? e.message : String(e);
91
+ errorTelemetry(process.argv, `Error generating prisma client: ${message}`);
92
+ console.error(c.error(message));
92
93
  }
93
94
  if (!serverFile) {
94
95
  try {
95
96
  await shutdownPort(apiAvailablePort);
96
97
  } catch (e) {
97
- errorTelemetry(process.argv, `Error shutting down "api": ${e.message}`);
98
+ const message = e instanceof Object && "message" in e ? e.message : String(e);
99
+ errorTelemetry(process.argv, `Error shutting down "api": ${message}`);
98
100
  console.error(
99
- `Error whilst shutting down "api" port: ${c.error(e.message)}`
101
+ `Error whilst shutting down "api" port: ${c.error(message)}`
100
102
  );
101
103
  }
102
104
  }
@@ -105,9 +107,10 @@ const handler = async ({
105
107
  try {
106
108
  await shutdownPort(webAvailablePort);
107
109
  } catch (e) {
108
- errorTelemetry(process.argv, `Error shutting down "web": ${e.message}`);
110
+ const message = e instanceof Object && "message" in e ? e.message : String(e);
111
+ errorTelemetry(process.argv, `Error shutting down "web": ${message}`);
109
112
  console.error(
110
- `Error whilst shutting down "web" port: ${c.error(e.message)}`
113
+ `Error whilst shutting down "web" port: ${c.error(message)}`
111
114
  );
112
115
  }
113
116
  }
@@ -168,12 +171,18 @@ const handler = async ({
168
171
  runWhen: () => generate
169
172
  }
170
173
  };
174
+ const mappedJobs = Object.keys(jobs).map((job) => {
175
+ if (side.includes(job) || job === "gen") {
176
+ return jobs[job];
177
+ }
178
+ return {
179
+ name: "",
180
+ command: "",
181
+ runWhen: () => false
182
+ };
183
+ });
171
184
  const { result } = concurrently(
172
- Object.keys(jobs).map((job) => {
173
- if (side.includes(job) || job === "gen") {
174
- return jobs[job];
175
- }
176
- }).filter((job) => job && job.runWhen()),
185
+ mappedJobs.filter((job) => job.runWhen()),
177
186
  {
178
187
  prefix: "{name} |",
179
188
  timestampFormat: "HH:mm:ss",
@@ -181,7 +190,7 @@ const handler = async ({
181
190
  }
182
191
  );
183
192
  result.catch((e) => {
184
- if (typeof e?.message !== "undefined") {
193
+ if (e?.message) {
185
194
  errorTelemetry(
186
195
  process.argv,
187
196
  `Error concurrently starting sides: ${e.message}`
@@ -529,7 +529,7 @@ async function runPreUpgradeScripts(ctx, task, { verbose, force }) {
529
529
  return;
530
530
  }
531
531
  const checkLevels = [];
532
- if (parsed) {
532
+ if (parsed && !parsed.prerelease.length) {
533
533
  checkLevels.push({
534
534
  id: "exact",
535
535
  candidates: [`${version}.ts`, `${version}/index.ts`]
@@ -545,10 +545,13 @@ async function runPreUpgradeScripts(ctx, task, { verbose, force }) {
545
545
  id: "minor",
546
546
  candidates: [`${parsed.major}.x.ts`, `${parsed.major}.x/index.ts`]
547
547
  });
548
- } else {
548
+ } else if (parsed && parsed.prerelease.length > 0) {
549
549
  checkLevels.push({
550
550
  id: "tag",
551
- candidates: [`${version}.ts`, `${version}/index.ts`]
551
+ candidates: [
552
+ `${parsed.prerelease[0]}.ts`,
553
+ `${parsed.prerelease[0]}/index.ts`
554
+ ]
552
555
  });
553
556
  }
554
557
  const scriptsToRun = [];
@@ -17,13 +17,17 @@ function setLock(identifier) {
17
17
  ""
18
18
  );
19
19
  }
20
+ function isErrorWithCode(error, code) {
21
+ return !!error && typeof error === "object" && "code" in error && error.code === code;
22
+ }
20
23
  function unsetLock(identifier) {
21
24
  try {
22
25
  fs.rmSync(path.join(getPaths().generated.base, "locks", identifier));
23
26
  } catch (error) {
24
- if (error.code !== "ENOENT") {
25
- throw error;
27
+ if (isErrorWithCode(error, "ENOENT")) {
28
+ return;
26
29
  }
30
+ throw error;
27
31
  }
28
32
  }
29
33
  function isLockSet(identifier) {
package/dist/lib/ports.js CHANGED
@@ -8,7 +8,7 @@ async function getFreePort(requestedPort, excludePorts = []) {
8
8
  freePort = await getFreePort(freePort + 1, excludePorts);
9
9
  }
10
10
  return freePort;
11
- } catch (error) {
11
+ } catch {
12
12
  return -1;
13
13
  }
14
14
  }
@@ -26,7 +26,7 @@ async function check() {
26
26
  try {
27
27
  console.time("Update Check");
28
28
  const packageJson = JSON.parse(
29
- fs.readFileSync(path.join(getPaths().base, "package.json"))
29
+ fs.readFileSync(path.join(getPaths().base, "package.json"), "utf-8")
30
30
  );
31
31
  let localVersion = packageJson.devDependencies["@cedarjs/core"];
32
32
  while (!/\d/.test(localVersion.charAt(0))) {
@@ -116,20 +116,26 @@ function getUpdateMessage() {
116
116
  borderStyle: "round"
117
117
  });
118
118
  }
119
+ function isErrorWithCode(error, code) {
120
+ return !!error && error instanceof Object && "code" in error && error.code === code;
121
+ }
119
122
  function readUpdateDataFile() {
120
123
  try {
121
124
  if (!fs.existsSync(getPersistenceDirectory())) {
122
125
  fs.mkdirSync(getPersistenceDirectory(), { recursive: true });
123
126
  }
124
127
  const persistedData = JSON.parse(
125
- fs.readFileSync(path.join(getPersistenceDirectory(), "data.json"))
128
+ fs.readFileSync(
129
+ path.join(getPersistenceDirectory(), "data.json"),
130
+ "utf-8"
131
+ )
126
132
  );
127
133
  persistedData.remoteVersions = new Map(
128
134
  Object.entries(persistedData.remoteVersions)
129
135
  );
130
136
  return persistedData;
131
137
  } catch (error) {
132
- if (error.code === "ENOENT") {
138
+ if (isErrorWithCode(error, "ENOENT")) {
133
139
  return {
134
140
  localVersion: "0.0.0",
135
141
  remoteVersions: /* @__PURE__ */ new Map(),
@@ -149,15 +155,17 @@ function updateUpdateDataFile({
149
155
  const existingData = readUpdateDataFile();
150
156
  const updatedData = {
151
157
  localVersion: localVersion ?? existingData.localVersion,
152
- remoteVersions: Object.fromEntries(
153
- remoteVersions ?? existingData.remoteVersions
154
- ),
158
+ remoteVersions: remoteVersions ?? existingData.remoteVersions,
155
159
  checkedAt: checkedAt ?? existingData.checkedAt,
156
160
  shownAt: shownAt ?? existingData.shownAt
157
161
  };
162
+ const dataToWrite = {
163
+ ...updatedData,
164
+ remoteVersions: Object.fromEntries(updatedData.remoteVersions)
165
+ };
158
166
  fs.writeFileSync(
159
167
  path.join(getPersistenceDirectory(), "data.json"),
160
- JSON.stringify(updatedData, null, 2)
168
+ JSON.stringify(dataToWrite, null, 2)
161
169
  );
162
170
  }
163
171
  function extractTagFromVersion(version) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedarjs/cli",
3
- "version": "1.0.0-canary.13057+31fb574b4",
3
+ "version": "1.0.0-canary.13060+6c50d6669",
4
4
  "description": "The CedarJS Command Line",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,15 +31,15 @@
31
31
  "dependencies": {
32
32
  "@babel/preset-typescript": "7.28.5",
33
33
  "@babel/runtime-corejs3": "7.28.4",
34
- "@cedarjs/api-server": "1.0.0-canary.13057",
35
- "@cedarjs/cli-helpers": "1.0.0-canary.13057",
36
- "@cedarjs/fastify-web": "1.0.0-canary.13057",
37
- "@cedarjs/internal": "1.0.0-canary.13057",
38
- "@cedarjs/prerender": "1.0.0-canary.13057",
39
- "@cedarjs/project-config": "1.0.0-canary.13057",
40
- "@cedarjs/structure": "1.0.0-canary.13057",
41
- "@cedarjs/telemetry": "1.0.0-canary.13057",
42
- "@cedarjs/web-server": "1.0.0-canary.13057",
34
+ "@cedarjs/api-server": "1.0.0-canary.13060",
35
+ "@cedarjs/cli-helpers": "1.0.0-canary.13060",
36
+ "@cedarjs/fastify-web": "1.0.0-canary.13060",
37
+ "@cedarjs/internal": "1.0.0-canary.13060",
38
+ "@cedarjs/prerender": "1.0.0-canary.13060",
39
+ "@cedarjs/project-config": "1.0.0-canary.13060",
40
+ "@cedarjs/structure": "1.0.0-canary.13060",
41
+ "@cedarjs/telemetry": "1.0.0-canary.13060",
42
+ "@cedarjs/web-server": "1.0.0-canary.13060",
43
43
  "@listr2/prompt-adapter-enquirer": "2.0.16",
44
44
  "@opentelemetry/api": "1.8.0",
45
45
  "@opentelemetry/core": "1.22.0",
@@ -101,5 +101,5 @@
101
101
  "publishConfig": {
102
102
  "access": "public"
103
103
  },
104
- "gitHead": "31fb574b4a6996190eb3acc2e76bbdb67dc50e23"
104
+ "gitHead": "6c50d6669463a18fd4b4978f9e5c4e293555ebc4"
105
105
  }