Skip to content

chore: remove "type": "module" from @dbml/core#830

Merged
huydo862003 merged 1 commit intomasterfrom
fix/remove-type-module-in-dbml-core
Feb 25, 2026
Merged

chore: remove "type": "module" from @dbml/core#830
huydo862003 merged 1 commit intomasterfrom
fix/remove-type-module-in-dbml-core

Conversation

@huydo862003
Copy link
Copy Markdown
Contributor

@huydo862003 huydo862003 commented Feb 23, 2026

Summary

  • Remove "type": "module" from @dbml/core package.json to fix CJS consumer type resolution.

  • Details:

    • Consuming CommonJS apps (with moduleResolution: "node16" or "nodenext", like Runsql) fail to import this package with the following error:

    The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'.

  • Context:

    • Our package builds to .mjs and .cjs code files, but .d.ts type declaration files.
  • Root cause:

    • TypeScript determines the module kind of .d.ts files using the nearest package.json's "type" field.
    • With "type": "module" set, our index.d.ts is treated as ESM.
      -> TypeScript refuses to let CJS consumers require the type declaration files, even though the runtime entry point (index.cjs) is perfectly valid CJS.
  • Solution: Remove "type": "module" from package.json. This makes .d.ts default to CJS, which works for both consumers:

    • CJS consumers: TypeScript sees .d.ts as CJS -> require works
    • ESM consumers: ESM allows importing CJS types -> import works

This is safe because our runtime files already use explicit extensions (.mjs / .cjs), so Node resolves them correctly regardless of the "type" field.

Issue

(issue link here)

Lasting Changes (Technical)

(please list down: code changes/things that have wide-effect; new libraries/functions added that can be used by others; examples below)

  • (Added class EmailValidator to validate email address' validity)
  • (Added Tenant#is_trial? check)

Checklist

Please check directly on the box once each of these are done

  • Documentation (if necessary)
  • Lint Checks Passed
  • Unit Tests Passed
  • Coverage Tests Passed
  • Integration Tests Passed
  • Code Review

@github-actions
Copy link
Copy Markdown

Coverage Report

Commit: a3caa29

Overall Coverage

Metric Coverage
Lines ✅ 84.42% (5418/6418)
Statements ✅ 83.73% (5780/6903)
Functions ✅ 89.57% (1262/1409)
Branches ⚠️ 75.61% (2992/3957)

Package Coverage

Package Lines Statements Functions Branches
@dbml/dbml-cli ✅ 100.00% ✅ 100.00% ✅ 100.00% ✅ 100.00%
@dbml/dbml-connector ⚠️ 64.58% ⚠️ 64.39% ⚠️ 59.53% ⚠️ 59.13%
@dbml/dbml-core N/A N/A N/A N/A
@dbml/dbml-parse ✅ 87.84% ✅ 87.04% ✅ 93.76% ⚠️ 78.16%

⚠️ Coverage Warnings

The following packages have coverage below 80%:

  • @dbml/dbml-connector: 64.58% line coverage

Files with Coverage Below 80%

@dbml/dbml-connector

9 file(s) below 80% coverage
File Lines Statements Functions Branches
src/connectors/bigquery/index.ts 0.00% 0.00% 0.00% 0.00%
src/utils/credential-loader.ts 0.00% 0.00% 0.00% 0.00%
src/utils/helpers.ts 0.00% 0.00% 0.00% 0.00%
src/connectors/snowflake/index.ts 10.56% 10.31% 0.00% 0.00%
src/utils/parseSchema.ts 46.15% 42.85% 28.57% 27.27%
src/connectors/connector.ts 66.66% 66.66% 100.00% 57.14%
src/connectors/oracle/tables.ts 71.25% 67.39% 100.00% 56.96%
src/connectors/oracle/index.ts 80.00% 80.76% 100.00% 25.00%
src/connectors/oracle/utils.ts 85.71% 85.71% 100.00% 71.42%

@dbml/dbml-parse

39 file(s) below 80% coverage
File Lines Statements Functions Branches
src/compiler/queries/container/scope.ts 0.00% 0.00% 0.00% 100.00%
src/services/diagnostics/provider.ts 0.00% 0.00% 0.00% 0.00%
src/compiler/queries/parse.ts 50.00% 50.00% 50.00% 100.00%
src/core/interpreter/elementInterpreter/project.ts 51.42% 51.42% 100.00% 45.45%
src/core/interpreter/records/utils/data/sqlTypes.ts 56.25% 58.82% 75.00% 46.55%
src/core/analyzer/symbol/utils.ts 56.52% 56.52% 100.00% 50.00%
src/core/analyzer/binder/elementBinder/note.ts 62.50% 64.70% 83.33% 50.00%
src/compiler/queries/utils.ts 62.63% 63.82% 88.88% 46.15%
src/core/interpreter/records/utils/data/values.ts 65.13% 57.14% 72.72% 50.37%
src/compiler/queries/token.ts 66.66% 66.66% 66.66% 100.00%
src/core/analyzer/binder/elementBinder/enum.ts 66.66% 68.42% 100.00% 50.00%
src/core/analyzer/validator/elementValidators/note.ts 72.54% 70.90% 76.92% 68.75%
src/core/analyzer/validator/elementValidators/indexes.ts 73.33% 74.07% 90.90% 59.61%
src/core/analyzer/analyzer.ts 75.00% 66.66% 60.00% 100.00%
src/core/analyzer/symbol/symbolIndex.ts 76.92% 77.50% 92.85% 50.00%
src/core/analyzer/utils.ts 77.77% 76.36% 88.88% 75.00%
src/core/analyzer/binder/elementBinder/project.ts 77.77% 78.94% 100.00% 50.00%
src/core/analyzer/validator/elementValidators/checks.ts 77.77% 79.31% 93.75% 71.87%
src/core/analyzer/validator/elementValidators/records.ts 78.08% 78.66% 93.75% 74.19%
src/core/analyzer/validator/elementValidators/project.ts 78.12% 78.78% 100.00% 56.25%
src/core/utils.ts 78.57% 77.41% 80.00% 60.71%
src/core/analyzer/binder/elementBinder/ref.ts 78.78% 80.00% 90.90% 75.00%
src/core/analyzer/binder/elementBinder/indexes.ts 79.06% 77.77% 90.90% 68.18%
src/core/analyzer/binder/elementBinder/tableGroup.ts 80.00% 80.64% 100.00% 50.00%
src/services/suggestions/utils.ts 80.39% 75.00% 92.85% 68.51%
src/core/interpreter/records/utils/constraints/pk.ts 82.00% 80.00% 92.30% 54.54%
src/core/analyzer/binder/elementBinder/records.ts 82.79% 83.33% 93.75% 71.42%
src/compiler/queries/container/token.ts 83.33% 85.71% 100.00% 75.00%
src/core/analyzer/validator/elementValidators/tablePartial.ts 83.43% 80.72% 87.23% 64.28%
src/core/analyzer/validator/elementValidators/enum.ts 83.72% 82.22% 84.21% 78.26%
src/core/analyzer/binder/elementBinder/tablePartial.ts 86.00% 86.53% 100.00% 69.23%
src/core/parser/parser.ts 86.85% 87.00% 100.00% 78.94%
src/services/suggestions/recordRowSnippet.ts 88.67% 84.61% 100.00% 78.00%
__tests__/utils/compiler.ts 88.88% 89.85% 100.00% 68.13%
src/compiler/queries/symbol.ts 91.30% 92.00% 100.00% 78.57%
src/core/interpreter/elementInterpreter/sticky_note.ts 95.00% 95.23% 100.00% 66.66%
src/core/interpreter/records/utils/constraints/unique.ts 96.15% 93.93% 100.00% 66.66%
src/core/analyzer/symbol/symbolTable.ts 100.00% 100.00% 100.00% 75.00%
src/services/definition/provider.ts 100.00% 100.00% 100.00% 75.00%

Copy link
Copy Markdown
Contributor

@huyleminh01 huyleminh01 left a comment

Choose a reason for hiding this comment

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

LGTM!

@huydo862003 huydo862003 merged commit 7af58fb into master Feb 25, 2026
4 checks passed
@huydo862003 huydo862003 deleted the fix/remove-type-module-in-dbml-core branch February 25, 2026 04:52
@huyleminh01 huyleminh01 added PR: Bug Fix 🐛 A type of pull request used for changelog categories pkg: core labels Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: core PR: Bug Fix 🐛 A type of pull request used for changelog categories

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants