Skip to content

Commit 708f323

Browse files
marcoscaceresgithub-advanced-security[bot]CopilotCopilot
authored
chore: upgrade TypeScript from 5.6.3 to 6.0.3 (#504)
* chore: upgrade TypeScript from 5.6.3 to 6.0.3 - Update typescript to ^6.0.3 and @types/node to ^24.12.2 - Change tsconfig module/moduleResolution from esnext/node to nodenext - Fix catch clause variables typed as unknown (stricter in TS 6) - Replace @ts-ignore with @ts-expect-error - Fix definite assignment assertion for Logger.result - Fix view-engine type compatibility with express * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor: type engine directly as EngineCallback, remove async and cast Agent-Logs-Url: https://github.com/speced/respec-web-services/sessions/50c73c28-bbb9-43db-8a58-d5c85ae17fd3 * refactor: simplify engine body, let TS infer params from EngineCallback type Agent-Logs-Url: https://github.com/speced/respec-web-services/sessions/50c73c28-bbb9-43db-8a58-d5c85ae17fd3 * fix: resolve TaskModule TS errors, extract getErrnoCode helper Agent-Logs-Url: https://github.com/speced/respec-web-services/sessions/a465b3f6-aa1e-4a52-9998-11d12704f748 * test: add coverage for getErrnoCode utility Agent-Logs-Url: https://github.com/speced/respec-web-services/sessions/a465b3f6-aa1e-4a52-9998-11d12704f748 * fix(xref): include options.all in search cache key to prevent cache poisoning Agent-Logs-Url: https://github.com/speced/respec-web-services/sessions/9ff1c977-d8d7-467c-937f-9353541e3b87 * fix: address Sid's review feedback - Re-throw HTTPError directly in group.ts catch block instead of double-wrapping it - Revert cache key change in search.ts (behavior change, not a TS upgrade fix; should be a separate PR) --------- Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1 parent 935166f commit 708f323

19 files changed

Lines changed: 116 additions & 54 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@
5353
"@types/cors": "^2.8.19",
5454
"@types/express": "^5.0.6",
5555
"@types/morgan": "^1.9.10",
56-
"@types/node": "^22.9.0",
56+
"@types/node": "^24.12.2",
5757
"@types/split2": "^4.2.3",
5858
"jasmine": "^6.2.0",
5959
"simple-git-hooks": "^2.13.1",
60-
"typescript": "^5.6.3"
60+
"typescript": "^6.0.3"
6161
}
6262
}

pnpm-lock.yaml

Lines changed: 20 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

routes/caniuse/feature.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ export default async function route(req: IRequest, res: Response) {
2424
}
2525
res.json({ result });
2626
} catch (error) {
27-
const errorCode = error.message === "INTERNAL_ERROR" ? 500 : 404;
27+
const message = error instanceof Error ? error.message : String(error);
28+
const errorCode = message === "INTERNAL_ERROR" ? 500 : 404;
29+
console.error("caniuse feature route error", error);
2830
res.status(errorCode);
2931
res.setHeader("Content-Type", "text/plain");
30-
res.send(error.message);
32+
res.send(errorCode === 500 ? "Internal Server Error" : "Not Found");
3133
}
3234
}
3335

routes/caniuse/update.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { cache } from "./lib/index.js";
55
import { Request, Response } from "express";
66

77
const workerFile = path.join(import.meta.dirname, "update.worker.js");
8-
const taskQueue = new BackgroundTaskQueue<typeof import("./update.worker")>(
8+
const taskQueue = new BackgroundTaskQueue<typeof import("./update.worker.ts")>(
99
workerFile,
1010
"caniuse_update",
1111
);

routes/docs/update.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ export default async function route(_req: Request, res: Response) {
1414
console.log(`Successfully regenerated docs in ${Date.now() - start}ms.`);
1515
res.sendStatus(200); // ok
1616
} catch (error) {
17-
const { message = "", statusCode = 500 } = error;
17+
const message = error instanceof Error ? error.message : String(error);
18+
const statusCode = error instanceof HTTPError ? error.statusCode : 500;
1819
console.error(`Failed to regenerate docs: ${message.slice(0, 400)}...`);
1920
res.status(statusCode);
2021
res.send(message);

routes/github/commits.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ export default async function route(req: IRequest, res: Response) {
3636
}
3737
res.json(commits);
3838
} catch (error) {
39+
console.error("Failed to fetch commits", error);
3940
res.set("Content-Type", "text/plain");
40-
res.status(404).send(error.message);
41+
res.status(404).send("Unable to fetch commits");
4142
}
4243
}

routes/github/contributors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export default async function route(req: IRequest, res: Response) {
4141
contributors.push(contributor);
4242
}
4343
} catch (err) {
44-
if (err.message && err.message.includes("404 Not Found")) {
44+
if (err instanceof Error && err.message.includes("404 Not Found")) {
4545
await cache.set(cacheKey, null);
4646
return res.sendStatus(404);
4747
} else {

routes/github/files.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ export default async function route(req: IRequest, res: Response) {
1717
res.set("Cache-Control", `max-age=${seconds("30m")}`);
1818
res.json({ entries });
1919
} catch (error) {
20-
const errorCode = error.message === "INTERNAL_ERROR" ? 500 : 404;
20+
const message = error instanceof Error ? error.message : String(error);
21+
const errorCode = message === "INTERNAL_ERROR" ? 500 : 404;
22+
console.error("Failed to get repository files", error);
2123
res.status(errorCode);
2224
res.setHeader("Content-Type", "text/plain");
23-
res.send(error.message);
25+
res.send(errorCode === 500 ? "Internal server error" : "Not found");
2426
}
2527
}
2628

routes/respec/builds/update.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { mkdir, readFile } from "node:fs/promises";
33

44
import type { Request, Response } from "express";
55

6-
import { env } from "../../../utils/misc.js";
6+
import { env, HTTPError } from "../../../utils/misc.js";
77
import sh from "../../../utils/sh.js";
88

99
export const PKG_DIR = path.join(env("DATA_DIR"), "respec", "package");
@@ -25,7 +25,8 @@ export default async function route(req: Request, res: Response) {
2525
await pullRelease();
2626
res.sendStatus(200); // ok
2727
} catch (error) {
28-
const { message = "", statusCode = 500 } = error;
28+
const message = error instanceof Error ? error.message : String(error);
29+
const statusCode = error instanceof HTTPError ? error.statusCode : 500;
2930
console.error(`Failed to pull respec release: ${message.slice(0, 400)}...`);
3031
res.status(statusCode);
3132
res.send(message);

routes/w3c/group.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ export default async function route(req: IRequest, res: Response) {
6565
res.set("Cache-Control", `max-age=${seconds("24h")}`);
6666
res.json(groupInfo);
6767
} catch (error) {
68-
const { statusCode = 500, message } = error;
68+
const statusCode = error instanceof HTTPError ? error.statusCode : 500;
69+
const message = error instanceof Error ? error.message : String(error);
6970
res.set("Content-Type", "text/plain");
7071
res.status(statusCode).send(message);
7172
}
@@ -117,9 +118,10 @@ async function fetchGroupInfo(
117118
}
118119
var json = (await res.json()) as APIResponse;
119120
} catch (error) {
121+
if (error instanceof HTTPError) throw error;
120122
throw new HTTPError(
121-
error.statusCode || 500,
122-
error.message
123+
500,
124+
error instanceof Error ? error.message : String(error),
123125
);
124126
}
125127

0 commit comments

Comments
 (0)