Skip to content

Rev: Import extensions#3055

Merged
RobinTail merged 8 commits intomasterfrom
rev-extensions
Nov 22, 2025
Merged

Rev: Import extensions#3055
RobinTail merged 8 commits intomasterfrom
rev-extensions

Conversation

@RobinTail
Copy link
Copy Markdown
Owner

@RobinTail RobinTail commented Nov 10, 2025

Summary by CodeRabbit

  • Refactor
    • Standardized module import paths across the codebase to improve compatibility and consistency.
    • Updated TypeScript configuration for enhanced module resolution handling.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 10, 2025

Walkthrough

This pull request systematically removes explicit .ts file extensions from import statements across the entire codebase (including test files, source files, examples, and tools) and updates tsconfig.json to change module resolution from "node20" to "preserve" with the addition of "moduleResolution": "bundler" and target from "es2023" to "esnext".

Changes

Cohort / File(s) Summary
Test files - express-zod-api
express-zod-api/tests/*
Updated all test file imports to remove explicit .ts extensions and use barrel exports (e.g., ../src/index.ts../src), enabling extensionless module resolution across the test suite.
Source files - express-zod-api
express-zod-api/src/*.ts
Removed .ts extensions from internal import paths across 40+ files; added new exported type ProprietaryBrand in proprietary-schemas.ts; expanded Component type in documentation.ts to include "negativeResponse" | "requestParameter" | "requestBody" in addition to existing "positiveResponse".
Example and test files
compat-test/quick-start.spec.ts, esm-test/quick-start.spec.ts, example/*
Updated import paths throughout example endpoints, factories, and configuration files to use extensionless module specifiers (e.g., ../factories.ts../factories).
Zod plugin files
zod-plugin/src/*.ts, zod-plugin/tests/*.ts
Removed explicit .ts extensions from import statements in source and test files, aligning with extensionless module resolution pattern.
Tools and migrations
tools/license.ts, tools/make-tests.ts, migration/index.spec.ts
Updated imports to drop .ts extensions and removed JSON module type assertion from license.ts and migration/index.spec.ts.
Configuration
tsconfig.json
Changed module from "node20" to "preserve", added "moduleResolution": "bundler", and changed target from "es2023" to "esnext" to support extensionless module resolution.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Attention areas:
    • tsconfig.json changes: Verify that "preserve" module setting and "bundler" module resolution are compatible with the project's build pipeline and intended output targets.
    • express-zod-api/src/documentation.ts: Confirm that the expanded Component type signature is intended and properly documented.
    • express-zod-api/src/proprietary-schemas.ts: Verify that the new ProprietaryBrand export is correctly defined as a union of all brand type constructors.
    • Removed JSON assertion from tools/license.ts and migration/index.spec.ts: Ensure that JSON imports continue to resolve correctly in the target environment without explicit type assertions.

Possibly related PRs

  • #3048: Adjusts TypeScript configuration settings for module resolution and noEmit behavior, aligning with the broader module strategy changes.
  • #2974: Contains opposing edits to the same import specifiers, reversing extension-removal patterns and reverting tsconfig changes.
  • #2972: Modifies tsconfig.json to enable additional module-related checks and settings.

Suggested labels

refactoring

Poem

🐰 Extensions fade like morning dew,
Bare imports shine, so fresh and new,
From .ts chains we break free,
Bundler resolution, wild and spree!
Module paths dance, clean and light,
Our code now flows, oh what a sight!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Rev: Import extensions' clearly summarizes the main change: reverting a previous PR related to import extensions, which aligns with the comprehensive modifications throughout the codebase that restore .ts file extensions in import paths.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rev-extensions

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1152dac and 002d100.

📒 Files selected for processing (107)
  • compat-test/quick-start.spec.ts (1 hunks)
  • esm-test/quick-start.spec.ts (1 hunks)
  • example/config.ts (1 hunks)
  • example/endpoints/create-user.ts (1 hunks)
  • example/endpoints/delete-user.ts (1 hunks)
  • example/endpoints/list-users.ts (1 hunks)
  • example/endpoints/retrieve-user.ts (1 hunks)
  • example/endpoints/send-avatar.ts (1 hunks)
  • example/endpoints/stream-avatar.ts (1 hunks)
  • example/endpoints/time-subscription.ts (1 hunks)
  • example/endpoints/update-user.ts (1 hunks)
  • example/factories.ts (1 hunks)
  • example/generate-client.ts (1 hunks)
  • example/generate-documentation.ts (1 hunks)
  • example/index.spec.ts (1 hunks)
  • example/index.ts (1 hunks)
  • example/routing.ts (1 hunks)
  • express-zod-api/src/builtin-logger.ts (1 hunks)
  • express-zod-api/src/common-helpers.ts (1 hunks)
  • express-zod-api/src/config-type.ts (1 hunks)
  • express-zod-api/src/deep-checks.ts (1 hunks)
  • express-zod-api/src/depends-on-method.ts (1 hunks)
  • express-zod-api/src/diagnostics.ts (1 hunks)
  • express-zod-api/src/documentation-helpers.ts (2 hunks)
  • express-zod-api/src/documentation.ts (2 hunks)
  • express-zod-api/src/endpoint.ts (1 hunks)
  • express-zod-api/src/endpoints-factory.ts (1 hunks)
  • express-zod-api/src/errors.ts (1 hunks)
  • express-zod-api/src/graceful-shutdown.ts (1 hunks)
  • express-zod-api/src/index.ts (2 hunks)
  • express-zod-api/src/integration-base.ts (2 hunks)
  • express-zod-api/src/integration.ts (2 hunks)
  • express-zod-api/src/json-schema-helpers.ts (1 hunks)
  • express-zod-api/src/last-resort.ts (1 hunks)
  • express-zod-api/src/logger-helpers.ts (1 hunks)
  • express-zod-api/src/logical-container.ts (1 hunks)
  • express-zod-api/src/middleware.ts (1 hunks)
  • express-zod-api/src/peer-helpers.ts (1 hunks)
  • express-zod-api/src/proprietary-schemas.ts (1 hunks)
  • express-zod-api/src/raw-schema.ts (1 hunks)
  • express-zod-api/src/result-handler.ts (1 hunks)
  • express-zod-api/src/result-helpers.ts (1 hunks)
  • express-zod-api/src/routable.ts (1 hunks)
  • express-zod-api/src/routing-walker.ts (1 hunks)
  • express-zod-api/src/routing.ts (1 hunks)
  • express-zod-api/src/schema-walker.ts (1 hunks)
  • express-zod-api/src/server-helpers.ts (1 hunks)
  • express-zod-api/src/server.ts (2 hunks)
  • express-zod-api/src/sse.ts (1 hunks)
  • express-zod-api/src/testing.ts (1 hunks)
  • express-zod-api/src/zts-helpers.ts (1 hunks)
  • express-zod-api/src/zts.ts (1 hunks)
  • express-zod-api/tests/api-response.spec.ts (1 hunks)
  • express-zod-api/tests/buffer-schema.spec.ts (1 hunks)
  • express-zod-api/tests/builtin-logger.spec.ts (1 hunks)
  • express-zod-api/tests/common-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/config-type.spec.ts (1 hunks)
  • express-zod-api/tests/content-type.spec.ts (1 hunks)
  • express-zod-api/tests/date-in-schema.spec.ts (1 hunks)
  • express-zod-api/tests/date-out-schema.spec.ts (1 hunks)
  • express-zod-api/tests/deep-checks.spec.ts (1 hunks)
  • express-zod-api/tests/depends-on-method.spec.ts (1 hunks)
  • express-zod-api/tests/documentation-helpers.spec.ts (2 hunks)
  • express-zod-api/tests/documentation.spec.ts (1 hunks)
  • express-zod-api/tests/endpoint.spec.ts (1 hunks)
  • express-zod-api/tests/endpoints-factory.spec.ts (1 hunks)
  • express-zod-api/tests/errors.spec.ts (1 hunks)
  • express-zod-api/tests/form-schema.spec.ts (1 hunks)
  • express-zod-api/tests/graceful-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/graceful-shutdown.spec.ts (1 hunks)
  • express-zod-api/tests/index.spec.ts (2 hunks)
  • express-zod-api/tests/integration.spec.ts (1 hunks)
  • express-zod-api/tests/io-schema.spec.ts (1 hunks)
  • express-zod-api/tests/json-schema-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/last-resort.spec.ts (1 hunks)
  • express-zod-api/tests/logger-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/logical-container.spec.ts (1 hunks)
  • express-zod-api/tests/method.spec.ts (1 hunks)
  • express-zod-api/tests/middleware.spec.ts (1 hunks)
  • express-zod-api/tests/peer-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/raw-schema.spec.ts (1 hunks)
  • express-zod-api/tests/result-handler.spec.ts (1 hunks)
  • express-zod-api/tests/result-helpers.spec.ts (1 hunks)
  • express-zod-api/tests/routable.spec.ts (1 hunks)
  • express-zod-api/tests/routing.spec.ts (2 hunks)
  • express-zod-api/tests/serve-static.spec.ts (1 hunks)
  • express-zod-api/tests/server-helpers.spec.ts (2 hunks)
  • express-zod-api/tests/server.spec.ts (2 hunks)
  • express-zod-api/tests/sse.spec.ts (1 hunks)
  • express-zod-api/tests/startup-logo.spec.ts (1 hunks)
  • express-zod-api/tests/system.spec.ts (1 hunks)
  • express-zod-api/tests/testing.spec.ts (1 hunks)
  • express-zod-api/tests/upload-schema.spec.ts (1 hunks)
  • express-zod-api/tests/zts.spec.ts (1 hunks)
  • express-zod-api/vitest.setup.ts (1 hunks)
  • migration/index.spec.ts (2 hunks)
  • tools/license.ts (1 hunks)
  • tools/make-tests.ts (2 hunks)
  • tsconfig.json (1 hunks)
  • zod-plugin/src/augmentation.ts (1 hunks)
  • zod-plugin/src/brand.ts (1 hunks)
  • zod-plugin/src/index.ts (1 hunks)
  • zod-plugin/src/runtime.ts (1 hunks)
  • zod-plugin/tests/brand.spec.ts (1 hunks)
  • zod-plugin/tests/index.spec.ts (1 hunks)
  • zod-plugin/tests/packer.spec.ts (1 hunks)
  • zod-plugin/tests/runtime.spec.ts (1 hunks)
⛔ Files not processed due to max files limit (1)
  • zod-plugin/vitest.setup.ts
🧰 Additional context used
🧠 Learnings (35)
📓 Common learnings
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-09-29T03:35:55.561Z
Learning: In the express-zod-api repository, packages are built using tsdown before publishing. Source code with .ts extensions is not published - only the built JavaScript bundles and declaration files in the dist/ directory are published to npm. This means .ts extensions in source imports don't affect consumers.
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2697
File: CHANGELOG.md:5-5
Timestamp: 2025-06-02T21:11:20.768Z
Learning: In the express-zod-api repository, RobinTail follows a release workflow where package.json version is only updated on the master branch after merging all planned release changes. Changelog entries may show future version numbers while package.json remains at the previous version during feature development, and this is intentional workflow, not a version inconsistency that needs to be flagged.
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: migration/tsconfig.json:2-2
Timestamp: 2025-09-29T06:06:58.605Z
Learning: tsconfig/node20 includes "moduleResolution": "node16" in its base configuration, along with other settings like "module": "nodenext", "target": "es2022", and "strict": true. When extending from tsconfig/node20, explicit moduleResolution configuration is not needed.
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: migration/tsconfig.json:2-2
Timestamp: 2025-09-29T06:06:58.605Z
Learning: tsconfig/node20 includes "moduleResolution": "node16" in its base configuration, along with other settings. When extending from tsconfig/node20, explicit moduleResolution configuration is not needed as it's provided by the preset.
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: express-zod-api/src/zts-helpers.ts:2-3
Timestamp: 2025-09-29T06:00:10.830Z
Learning: tsdown handles module resolution and bundling independently of TypeScript's native compilation settings like rewriteRelativeImportExtensions, making such TypeScript emit-related configuration unnecessary when using tsdown for builds.
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2428
File: express-zod-api/src/index.ts:44-44
Timestamp: 2025-05-28T18:58:10.064Z
Learning: The type-only import `import type {} from "qs";` in express-zod-api/src/index.ts is necessary to avoid TS2742 errors for exported functions like attachRouting, makeRequestMock, testEndpoint, and testMiddleware that have types depending on types/qs. This import provides the reference TypeScript needs to infer portable type names.
📚 Learning: 2025-05-28T18:58:10.064Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2428
File: express-zod-api/src/index.ts:44-44
Timestamp: 2025-05-28T18:58:10.064Z
Learning: The type-only import `import type {} from "qs";` in express-zod-api/src/index.ts is necessary to avoid TS2742 errors for exported functions like attachRouting, makeRequestMock, testEndpoint, and testMiddleware that have types depending on types/qs. This import provides the reference TypeScript needs to infer portable type names.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • example/index.spec.ts
  • express-zod-api/src/logger-helpers.ts
  • express-zod-api/src/builtin-logger.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • esm-test/quick-start.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • example/index.ts
  • express-zod-api/src/endpoints-factory.ts
  • zod-plugin/tests/packer.spec.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • compat-test/quick-start.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • example/routing.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/routable.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • tools/make-tests.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/result-handler.ts
  • example/config.ts
  • express-zod-api/src/endpoint.ts
  • migration/index.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • example/generate-documentation.ts
  • express-zod-api/tests/logical-container.spec.ts
  • example/generate-client.ts
  • express-zod-api/src/logical-container.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-09-29T03:35:55.561Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-09-29T03:35:55.561Z
Learning: In the express-zod-api repository, packages are built using tsdown before publishing. Source code with .ts extensions is not published - only the built JavaScript bundles and declaration files in the dist/ directory are published to npm. This means .ts extensions in source imports don't affect consumers.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • example/index.spec.ts
  • express-zod-api/src/logger-helpers.ts
  • express-zod-api/src/builtin-logger.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • example/endpoints/time-subscription.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • example/index.ts
  • express-zod-api/src/endpoints-factory.ts
  • zod-plugin/tests/packer.spec.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/routable.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • tools/make-tests.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • example/endpoints/stream-avatar.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/result-handler.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • tsconfig.json
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/generate-documentation.ts
  • express-zod-api/tests/logical-container.spec.ts
  • example/generate-client.ts
  • express-zod-api/src/logical-container.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-08-01T09:48:13.742Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-08-01T09:48:13.742Z
Learning: In express-zod-api, when migrating from Zod v3 to v4, the correct approach for internal type imports is to change from `import type { $ZodType } from "zod/v4/core"` to `import { z } from "zod"` and then use `z.core.$ZodType`. The zod/v4/core module is reexported as z.core by the main zod package, making this a valid and working approach.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/src/logger-helpers.ts
  • express-zod-api/src/builtin-logger.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/endpoints-factory.ts
  • zod-plugin/tests/packer.spec.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/routable.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • example/endpoints/update-user.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • example/endpoints/stream-avatar.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/result-handler.ts
  • express-zod-api/src/endpoint.ts
  • migration/index.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • example/endpoints/list-users.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • express-zod-api/tests/logical-container.spec.ts
  • express-zod-api/src/logical-container.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-06-14T16:42:52.972Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2736
File: express-zod-api/tsup.config.ts:12-26
Timestamp: 2025-06-14T16:42:52.972Z
Learning: In express-zod-api tsup configurations, the direct mutation of `options.supported` in the `esbuildOptions` callback is intentional behavior and should not be flagged as a side effect issue.

Applied to files:

  • express-zod-api/src/routing.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • example/index.spec.ts
  • express-zod-api/src/builtin-logger.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/endpoints-factory.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/routable.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/result-handler.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/tests/api-response.spec.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • tsconfig.json
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • express-zod-api/tests/logical-container.spec.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-10-02T17:42:48.840Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-10-02T17:42:48.840Z
Learning: In express-zod-api v25 (ESM-only), the `.example()` method error occurs when user code runs as CommonJS. Express Zod API patches Zod's ESM bundle with `.example()`, but CommonJS code requires a separate CJS bundle instance that lacks this patch. Users must run their code as ESM by: (1) setting `"type": "module"` in package.json, (2) using `.mts` or `.mjs` file extensions, or (3) using tools like `tsx` or `vite-node` that provide their own ESM-compatible compilation.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • example/index.spec.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • example/endpoints/time-subscription.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • esm-test/quick-start.spec.ts
  • example/index.ts
  • zod-plugin/tests/packer.spec.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • compat-test/quick-start.spec.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • example/routing.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/result-handler.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • example/endpoints/list-users.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/src/config-type.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • example/generate-documentation.ts
  • express-zod-api/tests/logical-container.spec.ts
  • example/generate-client.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/src/raw-schema.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-05-27T19:35:57.357Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/tests/buffer-schema.spec.ts:32-37
Timestamp: 2025-05-27T19:35:57.357Z
Learning: In the express-zod-api project, tests are run from the `express-zod-api` workspace directory, and the project uses an ESM-first environment without `__dirname`. Relative paths like `../logo.svg` in test files correctly resolve to the repository root due to this test execution context.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/src/logger-helpers.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • esm-test/quick-start.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/endpoints-factory.ts
  • zod-plugin/tests/packer.spec.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • compat-test/quick-start.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • example/generate-documentation.ts
  • express-zod-api/tests/logical-container.spec.ts
  • example/generate-client.ts
  • express-zod-api/src/logical-container.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-05-27T20:27:17.015Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/json-schema-helpers.ts:1-3
Timestamp: 2025-05-27T20:27:17.015Z
Learning: Ramda is correctly listed as a dependency in express-zod-api/package.json, so imports of ramda utilities are properly supported.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • example/routing.ts
  • express-zod-api/src/routable.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/tests/api-response.spec.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • express-zod-api/src/depends-on-method.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-09-29T06:00:10.830Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: express-zod-api/src/zts-helpers.ts:2-3
Timestamp: 2025-09-29T06:00:10.830Z
Learning: tsdown handles module resolution and bundling independently of TypeScript's native compilation settings like rewriteRelativeImportExtensions, making such TypeScript emit-related configuration unnecessary when using tsdown for builds.

Applied to files:

  • express-zod-api/src/routing.ts
  • example/index.spec.ts
  • example/index.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/index.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/config-type.ts
  • tsconfig.json
  • example/generate-client.ts
  • zod-plugin/src/index.ts
  • express-zod-api/src/server.ts
📚 Learning: 2025-06-02T21:08:56.475Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2697
File: CHANGELOG.md:5-5
Timestamp: 2025-06-02T21:08:56.475Z
Learning: The `cjs-test` directory in the express-zod-api repository is a test workspace and should be excluded when checking for main project version consistency with changelog entries.

Applied to files:

  • express-zod-api/src/routing.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/src/routing-walker.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/src/logger-helpers.ts
  • express-zod-api/src/builtin-logger.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/endpoints-factory.ts
  • zod-plugin/tests/packer.spec.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • compat-test/quick-start.spec.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/result-handler.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • tools/make-tests.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • express-zod-api/tests/system.spec.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/tests/endpoints-factory.spec.ts
  • express-zod-api/src/config-type.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/builtin-logger.spec.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/src/result-helpers.ts
  • express-zod-api/tests/sse.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • express-zod-api/tests/logical-container.spec.ts
  • express-zod-api/src/logical-container.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/logger-helpers.spec.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/serve-static.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-05-27T20:03:34.213Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: example/factories.ts:35-42
Timestamp: 2025-05-27T20:03:34.213Z
Learning: The `./example` directory in the express-zod-api repository contains demonstration code for educational purposes only, not intended for production use. Example code can make simplified assumptions for brevity and clarity, and should not be flagged for missing production-level error handling, security measures, or edge case handling.

Applied to files:

  • example/factories.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • example/endpoints/time-subscription.ts
  • example/index.ts
  • example/routing.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/tests/endpoint.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/diagnostics.ts
  • example/endpoints/stream-avatar.ts
  • zod-plugin/tests/runtime.spec.ts
  • example/config.ts
  • express-zod-api/src/endpoint.ts
  • tools/license.ts
  • express-zod-api/src/sse.ts
  • example/endpoints/list-users.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • express-zod-api/tests/routing.spec.ts
  • example/endpoints/retrieve-user.ts
  • example/generate-documentation.ts
  • example/generate-client.ts
  • express-zod-api/tests/documentation.spec.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/src/server.ts
  • zod-plugin/tests/index.spec.ts
📚 Learning: 2025-08-25T17:43:34.491Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2904
File: express-zod-api/src/routing.ts:74-79
Timestamp: 2025-08-25T17:43:34.491Z
Learning: In express-zod-api, OPTIONS (CORS preflight) requests intentionally go through the same middleware and parser chain as other HTTP methods. This was specifically implemented to fix Issue #514 where middlewares were not running for OPTIONS requests. The framework seeds "options" with the same [parsers, endpoint] pair as other methods to ensure consistent middleware execution for CORS preflight requests.

Applied to files:

  • example/factories.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/tests/middleware.spec.ts
  • express-zod-api/src/endpoint.ts
  • example/endpoints/retrieve-user.ts
📚 Learning: 2025-09-29T06:00:16.488Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: express-zod-api/src/documentation-helpers.ts:48-48
Timestamp: 2025-09-29T06:00:16.488Z
Learning: In the express-zod-api repository, the project uses pnpm workspaces with autoInstallPeers: false, meaning peerDependencies are not installed. The actual TypeScript version used for development comes from devDependencies which references "catalog:dev" in pnpm-workspace.yaml where it's set to a recent version (^5.9.2), not the peerDependency version which is just the minimum consumer requirement.

Applied to files:

  • example/factories.ts
  • express-zod-api/src/server-helpers.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/integration.ts
  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/depends-on-method.spec.ts
  • express-zod-api/tests/peer-helpers.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/tests/index.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • express-zod-api/tests/server-helpers.spec.ts
  • express-zod-api/src/middleware.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/form-schema.spec.ts
  • express-zod-api/src/documentation.ts
  • express-zod-api/tests/api-response.spec.ts
  • tools/license.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/sse.ts
  • express-zod-api/src/testing.ts
  • express-zod-api/src/config-type.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/integration-base.ts
  • express-zod-api/tests/testing.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/src/peer-helpers.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/src/raw-schema.ts
  • express-zod-api/src/server.ts
  • express-zod-api/tests/server.spec.ts
📚 Learning: 2025-08-08T11:59:04.814Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2878
File: zod-plugin/runtime.ts:39-42
Timestamp: 2025-08-08T11:59:04.814Z
Learning: express-zod-api/zod-plugin/runtime.ts (TypeScript): Do not memoize the ZodType.prototype.brand getter. The current design returning setBrand.bind(this) on each access is intentional/preferred; avoid redefining "brand" as a data property per instance.

Applied to files:

  • express-zod-api/src/server-helpers.ts
  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/src/errors.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/last-resort.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/diagnostics.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/result-handler.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/src/graceful-shutdown.ts
  • express-zod-api/src/config-type.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/vitest.setup.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-05-27T20:22:30.428Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/tests/zts.spec.ts:160-162
Timestamp: 2025-05-27T20:22:30.428Z
Learning: In express-zod-api/tests/zts.spec.ts, the `Fruits` enum intentionally contains both string and numeric members (Apple = "apple", Banana = "banana", Cantaloupe = "cantaloupe", A = 5) and is used with `z.enum(Fruits)` to test how the system handles mixed enum types. This is by design for testing purposes.

Applied to files:

  • express-zod-api/tests/content-type.spec.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/zts.spec.ts
📚 Learning: 2025-05-27T19:27:13.492Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/tests/form-schema.spec.ts:31-31
Timestamp: 2025-05-27T19:27:13.492Z
Learning: Zod version 3.25.0 and later expose the Zod v4 API through the special import paths "zod/v4" and "zod/v4/core", allowing v4 features like .loose() to be used even when the package.json dependency shows a 3.x version.

Applied to files:

  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/tests/zts.spec.ts
  • zod-plugin/tests/index.spec.ts
📚 Learning: 2025-05-27T20:27:17.015Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/json-schema-helpers.ts:1-3
Timestamp: 2025-05-27T20:27:17.015Z
Learning: The JSONSchema type is not exported from the main "zod" module and must be imported from "zod/v4/core" when using Zod v4. This is acceptable for type-only imports as they don't create runtime dependencies.

Applied to files:

  • express-zod-api/tests/routable.spec.ts
  • express-zod-api/tests/errors.spec.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • zod-plugin/src/augmentation.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/zts.spec.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/index.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/tests/form-schema.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • example/endpoints/list-users.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/src/documentation-helpers.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/src/raw-schema.ts
📚 Learning: 2025-05-27T19:30:51.885Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: compat-test/sample.ts:1-1
Timestamp: 2025-05-27T19:30:51.885Z
Learning: Files in compat-test/ directories, especially those named sample.ts or similar, are often test fixtures for migration scripts and may intentionally contain deprecated or "incorrect" code that the migration tooling is designed to fix. These should not be flagged as issues.

Applied to files:

  • express-zod-api/tests/errors.spec.ts
  • example/index.spec.ts
  • express-zod-api/tests/deep-checks.spec.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • esm-test/quick-start.spec.ts
  • express-zod-api/tests/graceful-shutdown.spec.ts
  • compat-test/quick-start.spec.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/zts.spec.ts
  • tools/make-tests.ts
  • express-zod-api/tests/integration.spec.ts
  • express-zod-api/tests/graceful-helpers.spec.ts
  • migration/index.spec.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/last-resort.spec.ts
  • express-zod-api/tests/startup-logo.spec.ts
  • express-zod-api/tests/result-helpers.spec.ts
  • express-zod-api/tests/logical-container.spec.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/tests/config-type.spec.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/tests/server.spec.ts
  • zod-plugin/tests/index.spec.ts
📚 Learning: 2025-05-28T05:49:36.540Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/common-helpers.ts:64-69
Timestamp: 2025-05-28T05:49:36.540Z
Learning: ZodError does not extend Error, but ZodRealError does extend Error. This is why in ensureError functions, you need to check for ZodError separately and wrap it in ZodRealError to convert it to a proper Error instance.

Applied to files:

  • express-zod-api/tests/errors.spec.ts
📚 Learning: 2025-05-27T20:40:19.548Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/json-schema-helpers.ts:75-87
Timestamp: 2025-05-27T20:40:19.548Z
Learning: In express-zod-api's `flattenIO` function in json-schema-helpers.ts, the `additionalProperties` field is used as a template to generate property schemas for literal property names extracted from `propertyNames.const` and `propertyNames.enum`. Converting boolean `additionalProperties` values to empty objects `{}` via `Object(entry.additionalProperties)` is intentional behavior, as the function only needs property schema templates, not the boolean semantics of `additionalProperties`.

Applied to files:

  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/endpoints-factory.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/src/proprietary-schemas.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/src/raw-schema.ts
📚 Learning: 2025-05-28T05:04:40.327Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/io-schema.ts:5-8
Timestamp: 2025-05-28T05:04:40.327Z
Learning: The Base type `object & { [Symbol.iterator]?: never }` in express-zod-api correctly excludes arrays and other iterables from IOSchema. Arrays are properly rejected because they have a defined Symbol.iterator method which conflicts with the never constraint, as demonstrated by TypeScript compiler errors when attempting to assign z.array() to IOSchema.

Applied to files:

  • express-zod-api/src/zts-helpers.ts
  • express-zod-api/tests/common-helpers.spec.ts
  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/json-schema-helpers.ts
  • example/endpoints/list-users.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • express-zod-api/tests/io-schema.spec.ts
📚 Learning: 2025-09-26T09:00:24.416Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2965
File: express-zod-api/src/sse.ts:0-0
Timestamp: 2025-09-26T09:00:24.416Z
Learning: In express-zod-api SSE implementation, the ensureStream function checks response.headersSent before calling response.writeHead, which prevents writing to closed responses even if setTimeout fires after client disconnect. No cleanup of the headers timeout is needed.

Applied to files:

  • example/endpoints/time-subscription.ts
📚 Learning: 2025-05-28T07:58:09.853Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/documentation-helpers.ts:508-512
Timestamp: 2025-05-28T07:58:09.853Z
Learning: In express-zod-api, when working with Zod's JSON schema override callbacks, using `delete` to mutate `ctx.jsonSchema` is the recommended approach per Zod's official documentation, even if it triggers performance linting warnings. This is preferable to creating copies with `undefined` values, especially for snapshot testing.

Applied to files:

  • express-zod-api/tests/json-schema-helpers.spec.ts
  • express-zod-api/src/json-schema-helpers.ts
  • express-zod-api/tests/documentation-helpers.spec.ts
  • example/endpoints/retrieve-user.ts
  • express-zod-api/tests/io-schema.spec.ts
  • express-zod-api/src/raw-schema.ts
📚 Learning: 2025-08-08T16:45:20.527Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-08-08T16:45:20.527Z
Learning: express-zod-api/zod-plugin: The ZodType.prototype.brand getter returns setBrand.bind(this) each time (no memoization). setBrand must always call pack() and include { brand: undefined } when unbranding so that pack → .check() runs and prior brand is overwritten; do not suggest removing the explicit undefined entry.

Applied to files:

  • zod-plugin/tests/packer.spec.ts
  • express-zod-api/src/zts.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/buffer-schema.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/vitest.setup.ts
📚 Learning: 2025-08-08T16:45:20.527Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-08-08T16:45:20.527Z
Learning: In express-zod-api zod-plugin, the brand setter must be immutable and always call `.check()` (packer’s onattach). Therefore, writing an explicit undefined entry in the bag for brand is intentional and should not be suggested for removal.

Applied to files:

  • zod-plugin/tests/packer.spec.ts
  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/vitest.setup.ts
📚 Learning: 2025-08-05T14:43:24.702Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2869
File: zod-plugin/package.json:42-44
Timestamp: 2025-08-05T14:43:24.702Z
Learning: Zod version 4 has been officially released and is stable. As of August 2025, the latest published version is 4.0.14 (published July 30, 2025). Zod v4 is available on npm and can be used in peer dependencies with version constraints like "^4.0.0".

Applied to files:

  • zod-plugin/src/augmentation.ts
📚 Learning: 2025-05-27T20:08:50.699Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2546
File: express-zod-api/src/metadata.ts:5-13
Timestamp: 2025-05-27T20:08:50.699Z
Learning: The `_zod` property in Zod v4 schemas is officially documented and recommended for library authors to differentiate between Zod 3 and Zod 4 schemas at runtime, despite the underscore prefix. This is explicitly mentioned in Zod's library authors documentation and is not a private internal property.

Applied to files:

  • zod-plugin/src/augmentation.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/raw-schema.ts
📚 Learning: 2025-08-08T16:45:20.527Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-08-08T16:45:20.527Z
Learning: express-zod-api/zod-plugin: The brand setter must be immutable and always invoke pack→.check() via the getter-bound setBrand. Including brandProperty with an explicit undefined enables unbranding and should not be optimized away.

Applied to files:

  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • express-zod-api/tests/upload-schema.spec.ts
  • zod-plugin/src/runtime.ts
  • express-zod-api/tests/form-schema.spec.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/src/deep-checks.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/vitest.setup.ts
📚 Learning: 2025-08-08T16:45:20.527Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-08-08T16:45:20.527Z
Learning: express-zod-api zod-plugin: The brand setter must stay immutable and always invoke pack→.check() (onattach). Including brandProperty with an explicit undefined enables “unbranding” (overwriting a previous brand) and should not be optimized away.

Applied to files:

  • express-zod-api/src/schema-walker.ts
  • express-zod-api/tests/date-in-schema.spec.ts
  • zod-plugin/src/runtime.ts
  • zod-plugin/tests/runtime.spec.ts
  • express-zod-api/src/proprietary-schemas.ts
  • zod-plugin/tests/brand.spec.ts
  • express-zod-api/tests/raw-schema.spec.ts
  • zod-plugin/src/brand.ts
  • express-zod-api/src/raw-schema.ts
  • zod-plugin/src/index.ts
  • express-zod-api/tests/date-out-schema.spec.ts
  • express-zod-api/vitest.setup.ts
📚 Learning: 2025-07-20T11:09:58.980Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2833
File: express-zod-api/src/method.ts:3-3
Timestamp: 2025-07-20T11:09:58.980Z
Learning: In express-zod-api, the `SomeMethod` type (defined as `Lowercase<string>`) is intentionally broad to represent raw, unvalidated HTTP methods from requests. The narrower `Method` type is used after validation with `isMethod()`. This defensive programming pattern separates raw external input types from validated types, allowing graceful handling of unknown methods.

Applied to files:

  • express-zod-api/src/common-helpers.ts
  • express-zod-api/src/endpoint.ts
  • express-zod-api/tests/method.spec.ts
📚 Learning: 2025-06-02T21:11:20.768Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2697
File: CHANGELOG.md:5-5
Timestamp: 2025-06-02T21:11:20.768Z
Learning: In the express-zod-api repository, RobinTail follows a release workflow where package.json version is only updated on the master branch after merging all planned release changes. Changelog entries may show future version numbers while package.json remains at the previous version during feature development, and this is intentional workflow, not a version inconsistency that needs to be flagged.

Applied to files:

  • tools/license.ts
📚 Learning: 2025-09-08T09:24:05.821Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2922
File: example/endpoints/list-users.ts:4-4
Timestamp: 2025-09-08T09:24:05.821Z
Learning: In Zod v4, z.literal() accepts arrays and supports multiple values in a single schema (e.g., z.literal(["manager", "operator", "admin"]) is valid), unlike previous versions where it only accepted single literal values. The .value property was replaced with .values which is a Set.

Applied to files:

  • example/endpoints/list-users.ts
📚 Learning: 2025-09-29T06:06:58.605Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: migration/tsconfig.json:2-2
Timestamp: 2025-09-29T06:06:58.605Z
Learning: tsconfig/node20 includes "moduleResolution": "node16" in its base configuration, along with other settings like "module": "nodenext", "target": "es2022", and "strict": true. When extending from tsconfig/node20, explicit moduleResolution configuration is not needed.

Applied to files:

  • tsconfig.json
📚 Learning: 2025-09-29T06:06:58.605Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 2974
File: migration/tsconfig.json:2-2
Timestamp: 2025-09-29T06:06:58.605Z
Learning: tsconfig/node20 includes "moduleResolution": "node16" in its base configuration, along with other settings. When extending from tsconfig/node20, explicit moduleResolution configuration is not needed as it's provided by the preset.

Applied to files:

  • tsconfig.json
📚 Learning: 2025-09-28T10:09:35.674Z
Learnt from: RobinTail
Repo: RobinTail/express-zod-api PR: 0
File: :0-0
Timestamp: 2025-09-28T10:09:35.674Z
Learning: In TypeScript configuration, when `strict: true` is set (including through extended configurations like tsconfig/node20), it automatically enables strictNullChecks along with other strict type-checking options, making explicit `strictNullChecks: true` redundant.

Applied to files:

  • tsconfig.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coveralls-official
Copy link
Copy Markdown

coveralls-official Bot commented Nov 10, 2025

Coverage Status

coverage: 100.0%. remained the same
when pulling 002d100 on rev-extensions
into 1152dac on master.

@RobinTail RobinTail marked this pull request as ready for review November 22, 2025 11:01
@RobinTail
Copy link
Copy Markdown
Owner Author

✅ no diff in ez bundle

This was referenced Nov 22, 2025
@RobinTail RobinTail merged commit 67da842 into master Nov 22, 2025
13 checks passed
@RobinTail RobinTail deleted the rev-extensions branch November 22, 2025 13:09
RobinTail added a commit that referenced this pull request Nov 22, 2025
RobinTail added a commit that referenced this pull request Nov 22, 2025
Copy of #3055 , because the issue in #3054 is not caused by it
RobinTail added a commit that referenced this pull request Mar 25, 2026
Using Node.js 22.18 and higher no longer requires `unrun` to execute
typescript.
Though, it requires `.ts` extensions (#3055) and `verbatimModuleSyntax`
to enforce type-only imports where implied.

---------

Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant