Skip to content

Commit 2d28766

Browse files
Dependency audit (#10239)
Had copilot do an audit of all our dependencies to see which ones were not used, which ones should use a more modern or built in alternative. ### Removed unused dependencies | Dependency | Packages affected | Reason | |---|---|---| | `json5` | `internal-build-utils` | Unused | | `grammarkdown` | `compiler` | Unused | | `date-fns` | `website` | Unused | ### Replaced with built in | Dependency | Packages affected | Reason | |---|---|---| | `c8` | ~25 packages | Unused; coverage handled by `@vitest/coverage-v8` | | `deep-equal` / `@types/deep-equal` | `spec-api`, `spector`, `http-specs` | Replaced with Node.js built-in `isDeepStrictEqual` from `node:util` | | `body-parser` / `@types/body-parser` | `spector` | Replaced with Express 5 built-ins (`express.json()`, `express.urlencoded()`, etc.) | | `fs-extra` | `http-server-csharp`, `http-server-js`, `http-client-js` | Replaced with `fs/promises` (`access`, `copyFile`, `mkdir`, etc.) | ### Modernized dependencies | Old | New | Packages affected | Notes | |---|---|---|---| | `onigasm` | `vscode-oniguruma` | `tmlanguage-generator` | Updated WASM loading and regex validation logic | | `inquirer` | `@inquirer/prompts` | `http-server-csharp`, `http-server-js`, `http-client-js` | Switched to modern modular `select()` API | | `rimraf` | `fs.rm()` | `typespec-vscode` | Uses `rm(dir, { recursive: true, force: true })` | ### Code changes - Emit scenario scripts in `http-server-csharp`, `http-server-js`, and `http-client-js` updated to use native `fs/promises` and `@inquirer/prompts` - A local `pathExists()` helper added to replace the `fs-extra` version - `tmlanguage-generator` migrated from `onigasm` to `vscode-oniguruma`, including updated WASM loading and regex validation logic (also removed a workaround for an `onigasm` bug) - `@typespec/spector` mock API server replaced `bodyParser.*` calls with `express.*` equivalents - `@typespec/spec-api` and `@typespec/spector` replaced all `deepEqual(a, b, { strict: true })` calls with `isDeepStrictEqual(a, b)` - pnpm catalog and lockfile cleaned up, removing many transitive dependencies
1 parent 2a3cc5e commit 2d28766

47 files changed

Lines changed: 166 additions & 779 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking
3+
changeKind: internal
4+
packages:
5+
- "@typespec/asset-emitter"
6+
- "@typespec/bundler"
7+
- "@typespec/compiler"
8+
- "@typespec/eslint-plugin"
9+
- "@typespec/events"
10+
- "@typespec/html-program-viewer"
11+
- "@typespec/http-client-js"
12+
- "@typespec/http-server-csharp"
13+
- "@typespec/http-server-js"
14+
- "@typespec/http-specs"
15+
- "@typespec/http"
16+
- "@typespec/internal-build-utils"
17+
- "@typespec/json-schema"
18+
- "@typespec/library-linter"
19+
- "@typespec/openapi"
20+
- "@typespec/openapi3"
21+
- "@typespec/playground"
22+
- "@typespec/protobuf"
23+
- "@typespec/rest"
24+
- "@typespec/spec-api"
25+
- "@typespec/spector"
26+
- "@typespec/sse"
27+
- "@typespec/streams"
28+
- tmlanguage-generator
29+
- "@typespec/tspd"
30+
- typespec-vscode
31+
- "@typespec/versioning"
32+
- "@typespec/xml"
33+
---
34+
35+
Dependency audit

packages/asset-emitter/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
"@typespec/compiler": "workspace:^",
5050
"@vitest/coverage-v8": "catalog:",
5151
"@vitest/ui": "catalog:",
52-
"c8": "catalog:",
5352
"rimraf": "catalog:",
5453
"typescript": "catalog:",
5554
"vitest": "catalog:"

packages/best-practices/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
"@typespec/compiler": "workspace:^",
4949
"@vitest/coverage-v8": "catalog:",
5050
"@vitest/ui": "catalog:",
51-
"c8": "catalog:",
5251
"rimraf": "catalog:",
5352
"typescript": "catalog:",
5453
"vitest": "catalog:"

packages/bundle-uploader/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
"@pnpm/workspace.find-packages": "catalog:",
4343
"@typespec/bundler": "workspace:^",
4444
"globby": "catalog:",
45-
"json5": "catalog:",
4645
"picocolors": "catalog:",
4746
"semver": "catalog:"
4847
},
@@ -51,7 +50,6 @@
5150
"@types/semver": "catalog:",
5251
"@vitest/coverage-v8": "catalog:",
5352
"@vitest/ui": "catalog:",
54-
"c8": "catalog:",
5553
"rimraf": "catalog:",
5654
"typescript": "catalog:",
5755
"vitest": "catalog:"

packages/bundler/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"@types/yargs": "catalog:",
5454
"@vitest/coverage-v8": "catalog:",
5555
"@vitest/ui": "catalog:",
56-
"c8": "catalog:",
5756
"rimraf": "catalog:",
5857
"typescript": "catalog:",
5958
"vite": "catalog:",

packages/compiler/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@
132132
"@typespec/internal-build-utils": "workspace:^",
133133
"@vitest/coverage-v8": "catalog:",
134134
"@vitest/ui": "catalog:",
135-
"c8": "catalog:",
136-
"grammarkdown": "catalog:",
137135
"pathe": "catalog:",
138136
"rimraf": "catalog:",
139137
"source-map-support": "catalog:",

packages/eslint-plugin-typespec/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
"@typescript-eslint/types": "catalog:",
4747
"@vitest/coverage-v8": "catalog:",
4848
"@vitest/ui": "catalog:",
49-
"c8": "catalog:",
5049
"eslint": "catalog:",
5150
"rimraf": "catalog:",
5251
"typescript": "catalog:",

packages/events/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
"@typespec/tspd": "workspace:^",
6363
"@vitest/coverage-v8": "catalog:",
6464
"@vitest/ui": "catalog:",
65-
"c8": "catalog:",
6665
"rimraf": "catalog:",
6766
"typescript": "catalog:",
6867
"vitest": "catalog:"

packages/html-program-viewer/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
"@vitejs/plugin-react": "catalog:",
7272
"@vitest/coverage-v8": "catalog:",
7373
"@vitest/ui": "catalog:",
74-
"c8": "catalog:",
7574
"rimraf": "catalog:",
7675
"typescript": "catalog:",
7776
"vite": "catalog:",

packages/http-client-js/eng/scripts/emit-e2e.js

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#!/usr/bin/env node
22
/* eslint-disable no-console */
3+
import { select } from "@inquirer/prompts";
34
import { execa } from "execa";
4-
import pkg from "fs-extra";
5-
import { copyFile, mkdir, rm } from "fs/promises";
5+
import { access, copyFile, mkdir, readFile, rm, stat, writeFile } from "fs/promises";
66
import { globby } from "globby";
7-
import inquirer from "inquirer";
87
import ora from "ora";
98
import pLimit from "p-limit";
109
import { basename, dirname, join, resolve } from "path";
@@ -13,11 +12,16 @@ import { fileURLToPath } from "url";
1312
import { hideBin } from "yargs/helpers";
1413
import yargs from "yargs/yargs";
1514

16-
const { pathExists, stat, readFile, writeFile } = pkg;
17-
1815
const __filename = fileURLToPath(import.meta.url);
1916
const __dirname = dirname(__filename);
2017

18+
async function pathExists(path) {
19+
return access(path).then(
20+
() => true,
21+
() => false,
22+
);
23+
}
24+
2125
const projectRoot = join(__dirname, "../..");
2226
const tspConfig = join(__dirname, "tspconfig.yaml");
2327

@@ -185,18 +189,14 @@ async function processFile(file, options) {
185189
await writeFile(logFilePath, errorDetails, "utf8");
186190

187191
if (interactive) {
188-
const { action } = await inquirer.prompt([
189-
{
190-
type: "list",
191-
name: "action",
192-
message: `Processing failed for ${relativePath}. What would you like to do?`,
193-
choices: [
194-
{ name: "Retry", value: "retry" },
195-
{ name: "Skip to next file", value: "next" },
196-
{ name: "Abort processing", value: "abort" },
197-
],
198-
},
199-
]);
192+
const action = await select({
193+
message: `Processing failed for ${relativePath}. What would you like to do?`,
194+
choices: [
195+
{ name: "Retry", value: "retry" },
196+
{ name: "Skip to next file", value: "next" },
197+
{ name: "Abort processing", value: "abort" },
198+
],
199+
});
200200

201201
if (action === "retry") {
202202
if (spinner) spinner.start(`Retrying: ${relativePath}`);

0 commit comments

Comments
 (0)