Skip to content

build(build-tools): modernize test tsconfig to node16/es2022#27378

Draft
tylerbutler wants to merge 4 commits into
microsoft:mainfrom
tylerbutler:build-tools-test-tsconfig-modernize
Draft

build(build-tools): modernize test tsconfig to node16/es2022#27378
tylerbutler wants to merge 4 commits into
microsoft:mainfrom
tylerbutler:build-tools-test-tsconfig-modernize

Conversation

@tylerbutler
Copy link
Copy Markdown
Member

@tylerbutler tylerbutler commented May 21, 2026

Description

Replaces the long-stale build-tools/packages/build-tools/src/test/tsconfig.json (~70 lines of commented-out /* Basic Options */ boilerplate, targeting es2018/commonjs) with a clean modern config aligned with the package's main tsconfig.json:

  • target: es2022
  • module: node16 / moduleResolution: node16
  • types: ["node", "mocha"]
  • incremental: true

Incidental dynamic-import fix

src/test/biome2Config.test.ts had a handful of await import("../common/biome2Config") calls without the .js extension. Under node16/ESM dynamic imports those must include the extension, so each is updated to await import("../common/biome2Config.js"). (Same convention as the regular static imports already touched in #27375.)

Validation

From build-tools/packages/build-tools:

  • pnpm run build:test — clean compile.
  • pnpm test:mocha — 137/137 passing.

Reviewer Guidance

The review process is outlined on this wiki page.

Mechanical cleanup. The new tsconfig matches conventions used by every modern test project in this repo. The deleted commented-out options are TypeScript defaults / unused.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 21, 2026

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (78 lines, 2 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

@tylerbutler tylerbutler marked this pull request as ready for review May 21, 2026 16:59
Copilot AI review requested due to automatic review settings May 21, 2026 16:59
@tylerbutler tylerbutler marked this pull request as draft May 21, 2026 17:00
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Modernizes the @fluidframework/build-tools test TypeScript configuration to match the package’s Node16/ES2022 compilation model and updates internal/test import specifiers to be Node16-friendly (including dynamic import() requiring explicit .js extensions).

Changes:

  • Replace the stale test tsconfig.json with a minimal es2022 + module/moduleResolution: node16 configuration.
  • Add explicit .js extensions to relative imports/exports across build-tools sources and tests (including dynamic imports in biome2Config tests).
  • Align build-tools internal module specifiers with Node16 resolution expectations.

Reviewed changes

Copilot reviewed 51 out of 51 changed files in this pull request and generated no comments.

Show a summary per file
File Description
build-tools/packages/build-tools/src/test/tsconfig.json Modernize test TS config to es2022 + node16 module settings.
build-tools/packages/build-tools/src/test/taskDefinitions.test.ts Add .js extensions to relative imports used by tests.
build-tools/packages/build-tools/src/test/repoRootToken.test.ts Add .js extension to config import.
build-tools/packages/build-tools/src/test/npmPackage.test.ts Add .js extensions to relative imports.
build-tools/packages/build-tools/src/test/globPatterns.test.ts Add .js extensions to relative imports.
build-tools/packages/build-tools/src/test/biomeVersion.test.ts Add .js extensions to relative imports.
build-tools/packages/build-tools/src/test/biomeConfig.test.ts Add .js extensions to relative imports.
build-tools/packages/build-tools/src/test/biome2Config.test.ts Fix dynamic imports to include .js extensions under Node16 resolution.
build-tools/packages/build-tools/src/index.ts Add .js extensions to re-exports to match emitted JS layout.
build-tools/packages/build-tools/src/fluidBuild/tscUtils.ts Add .js extension for local import.
build-tools/packages/build-tools/src/fluidBuild/tasks/workers/workerPool.ts Add .js extension for worker type import.
build-tools/packages/build-tools/src/fluidBuild/tasks/workers/worker.ts Add .js extensions for worker module imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/workers/eslintWorker.ts Add .js extension for worker type import.
build-tools/packages/build-tools/src/fluidBuild/tasks/taskUtils.ts Add .js extensions for common imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/taskHandlers.ts Add .js extensions for type imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/taskFactory.ts Add .js extensions throughout task factory imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/task.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/webpackTask.ts Add .js extensions for task utils / leaf base import.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/tscTask.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/ts2EsmTask.ts Add .js extensions for task utils / leaf base import.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/prettierTask.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/miscTasks.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/lintTasks.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/leafTask.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/generateEntrypointsTask.ts Add .js extensions for task dependencies.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/flubTasks.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/declarativeTask.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/leaf/biomeTasks.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/tasks/groupTask.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/options.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/npmDepChecker.ts Add .js extension for common import.
build-tools/packages/build-tools/src/fluidBuild/fluidUtils.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/fluidTsc/fluidTsc.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/fluidTaskDefinitions.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/fluidBuild/fluidRepoBuild.ts Add .js extensions for internal/common imports.
build-tools/packages/build-tools/src/fluidBuild/fluidRepo.ts Add .js extensions for internal/common imports.
build-tools/packages/build-tools/src/fluidBuild/fluidBuildConfig.ts Add .js extension for internal import.
build-tools/packages/build-tools/src/fluidBuild/fluidBuild.ts Add .js extensions for internal/common imports.
build-tools/packages/build-tools/src/fluidBuild/fileHashCache.ts Add .js extension for hash import.
build-tools/packages/build-tools/src/fluidBuild/buildMetrics.ts Add .js extension for logging import.
build-tools/packages/build-tools/src/fluidBuild/buildGraph.ts Add .js extensions for internal/common imports.
build-tools/packages/build-tools/src/fluidBuild/buildContext.ts Add .js extensions for internal/common type imports.
build-tools/packages/build-tools/src/common/typeTests.ts Add .js extension for common type import.
build-tools/packages/build-tools/src/common/timer.ts Add .js extension for logging import.
build-tools/packages/build-tools/src/common/npmPackage.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/common/monoRepo.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/common/logging.ts Add .js extension for internal import.
build-tools/packages/build-tools/src/common/gitRepo.ts Add .js extension for utils import.
build-tools/packages/build-tools/src/common/biomeConfigUtils.ts Add .js extension for GitRepo type import (and dynamic imports already use .js).
build-tools/packages/build-tools/src/common/biomeConfig.ts Add .js extensions for internal imports.
build-tools/packages/build-tools/src/common/biome2Config.ts Add .js extensions for internal imports.

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.

2 participants