Skip to content

Replace redundant dependencies with Node 22 built-ins (without glob) - #4607

Merged
josefs merged 7 commits into
mainfrom
josefs/replace-dependencies-without-glob
Oct 16, 2026
Merged

josefs merged 7 commits into
mainfrom
josefs/replace-dependencies-without-glob

Conversation

@josefs

@josefs josefs commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Splits out the non-glob dependency removals from #4601, replacing several dependencies and devDependencies in extensions/ql-vscode with Node 22 built-ins or existing packages (one commit per removed package):

  1. d3 + @types/d3: Replace the single select(this).on("click", ...) call in src/view/results/Graph.tsx with this.addEventListener("click", ...) and remove "d3" from transformPackages in test/jest-config.ts.
  2. through2 + @types/readable-stream: Replace objectTransform in gulpfile.ts/textmate.ts with new Transform({ objectMode: true, transform(...) }) from Node's built-in "stream".
  3. del: Replace del(...) in gulpfile.ts/typescript.ts with rm(join(tsProject.projectDirectory, "out"), { recursive: true, force: true }) from "fs/promises".
  4. gulp-replace: Replace the single gulp-replace stream in gulpfile.ts/appInsights.ts with readFile and writeFile from "fs/promises".
  5. ansi-colors: Replace gray and red in gulpfile.ts/typescript.ts with styleText from Node's built-in "util".
  6. nanoid: Replace nanoid() with randomUUID() from "crypto" (and customAlphabet("123456789") in VariantAnalysisAnalyzedRepos.stories.tsx with faker) and remove "nanoid" from transformPackages in test/jest-config.ts.
  7. tmp: Import dirSync and fileSync in tests from "tmp-promise" (which re-exports them from tmp) and remove the direct "tmp" dependency from dependencies (@types/tmp is kept in devDependencies for tmp-promise's type definitions).

josefs and others added 7 commits October 16, 2026 14:22
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@josefs
josefs requested a review from a team as a code owner October 16, 2026 13:25
Copilot AI max review requested due to automatic review settings October 16, 2026 13:25
@josefs
josefs requested a review from kaspersv October 16, 2026 13:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Repeated graph initialization can accumulate click handlers and trigger duplicate source navigation.

2 open findings
What changed in this PR

Removes redundant CodeQL extension dependencies using Node 22 built-ins and existing packages, leaving glob unchanged.

Changes:

  • Replaces ID, stream, filesystem, logging, and graph-event helpers.
  • Updates test imports and story data generation.
  • Removes unused dependencies and Jest transformation entries.
File Description
extensions/​ql-vscode/​test/​vscode-tests/​no-workspace/​query-history/​store/​query-history-store.test.ts Uses UUIDs for query IDs.
extensions/​ql-vscode/​test/​vscode-tests/​no-workspace/​local-queries/​webview.test.ts Imports temporary files from tmp-promise.
extensions/​ql-vscode/​test/​vscode-tests/​no-workspace/​databases/​local-databases-ui.test.ts Uses tmp-promise helpers.
extensions/​ql-vscode/​test/​vscode-tests/​no-workspace/​code-tour/​code-tour.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​minimal-workspace/​queries-panel/​query-pack-discovery.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​minimal-workspace/​queries-panel/​query-discovery.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​minimal-workspace/​qlpack-generator.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​minimal-workspace/​local-queries/​local-databases.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​minimal-workspace/​common/​vscode/​file-path-discovery.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​jest.activated-extension.setup.ts Updates temporary-directory imports.
extensions/​ql-vscode/​test/​vscode-tests/​cli-integration/​query-server/​query-server-client.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​vscode-tests/​cli-integration/​model-editor/​modeled-method-fs.test.ts Uses UUID-derived directory names.
extensions/​ql-vscode/​test/​vscode-tests/​cli-integration/​local-queries/​skeleton-query-wizard.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​unit-tests/​local-queries/​query-contents.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​unit-tests/​databases/​local-databases/​db-contents-heuristics.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​unit-tests/​common/​files.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​test/​jest-config.ts Removes direct D3 and Nano ID transforms.
extensions/​ql-vscode/​test/​common/​logging/​output-channel-logger.test.ts Uses tmp-promise directories.
extensions/​ql-vscode/​src/​view/​results/​Graph.tsx Uses native click listeners.
extensions/​ql-vscode/​src/​variant-analysis/​run-remote-query.ts Uses UUIDs for temporary paths.
extensions/​ql-vscode/​src/​stories/​variant-analysis/​VariantAnalysisAnalyzedRepos.stories.tsx Uses Faker for repository identifiers.
extensions/​ql-vscode/​src/​run-queries-shared.ts Uses UUIDs for query IDs.
extensions/​ql-vscode/​src/​query-server/​query-runner.ts Uses UUIDs for run IDs.
extensions/​ql-vscode/​src/​model-editor/​extensions-workspace-folder.ts Uses UUIDs for placeholder values.
extensions/​ql-vscode/​src/​databases/​database-fetcher.ts Uses UUIDs for fallback folder names.
extensions/​ql-vscode/​src/​compare/​compare-view.ts Uses UUIDs for streaming IDs.
extensions/​ql-vscode/​package.json Removes redundant direct dependencies.
extensions/​ql-vscode/​package-lock.json Updates the dependency tree.
extensions/​ql-vscode/​gulpfile.ts/​typescript.ts Uses built-in styling and recursive removal.
extensions/​ql-vscode/​gulpfile.ts/​textmate.ts Uses Node’s object-mode transform stream.
extensions/​ql-vscode/​gulpfile.ts/​appInsights.ts Injects telemetry keys using filesystem promises.
Files not reviewed (1)
  • extensions/ql-vscode/package-lock.json: Generated file

🧠 Review effort: Max


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread extensions/ql-vscode/src/view/results/Graph.tsx
@josefs
josefs merged commit 26f3852 into main Oct 16, 2026
35 checks passed
@josefs
josefs deleted the josefs/replace-dependencies-without-glob branch October 16, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants