Skip to content

feat!: jiti support#1460

Merged
Shinigami92 merged 47 commits into
salsita:mainfrom
brenoepics:feat-jiti
Jul 15, 2025
Merged

feat!: jiti support#1460
Shinigami92 merged 47 commits into
salsita:mainfrom
brenoepics:feat-jiti

Conversation

@brenoepics

@brenoepics brenoepics commented Jul 12, 2025

Copy link
Copy Markdown
Collaborator

Added jiti support along with a few tests to ensure we can load all supported .js, .ts, etc.

Also, should we add .mjs and .mts to the create migration command? it works fine with jiti.

Leaving this as a draft for now I still need to remove the ts-node, babel, and other related flags, and update the docs.

EDIT: finally it worked, for some reason I couldn't make a new branch so I created a fork and made the PR

@github-actions

github-actions Bot commented Jul 12, 2025

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 92.5% (🎯 90%)
⬇️ -0.18%
3260 / 3524
🟢 Statements 92.5% (🎯 90%)
⬇️ -0.18%
3260 / 3524
🟢 Functions 96.7% (🎯 90%)
🟰 ±0%
264 / 273
🟢 Branches 91.1% (🎯 85%)
⬆️ +0.01%
860 / 944
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/runner.ts 80.33%
⬇️ -1.80%
67.79%
🟰 ±0%
100%
🟰 ±0%
80.33%
⬇️ -1.80%
189, 208-217, 229-230, 282-283, 325-328, 337-341, 354, 366-369, 392, 403, 433-446, 449-452, 472-474, 483, 485-494
Unchanged Files
src/db.ts 83.18% 88.88% 87.5% 83.18% 90-92, 122, 125-137, 177-179
src/index.ts 100% 100% 100% 100%
src/logger.ts 100% 100% 100% 100%
src/migration.ts 76.07% 86.76% 68.75% 76.07% 149-152, 173-189, 231-237, 296-337, 402-403, 429-431, 439-440, 457-460, 489-490
src/migrationBuilder.ts 96.19% 93.33% 100% 96.19% 833-837, 976-981
src/migrationOptions.ts 100% 100% 100% 100%
src/pgType.ts 100% 100% 100% 100%
src/sqlMigration.ts 85.36% 100% 80% 85.36% 54-60
src/operations/sql.ts 100% 100% 100% 100%
src/operations/casts/createCast.ts 100% 100% 100% 100%
src/operations/casts/dropCast.ts 100% 100% 100% 100%
src/operations/casts/index.ts 100% 100% 100% 100%
src/operations/domains/alterDomain.ts 100% 100% 100% 100%
src/operations/domains/createDomain.ts 100% 100% 100% 100%
src/operations/domains/dropDomain.ts 100% 100% 100% 100%
src/operations/domains/index.ts 100% 100% 100% 100%
src/operations/domains/renameDomain.ts 100% 100% 100% 100%
src/operations/domains/shared.ts 100% 100% 100% 100%
src/operations/extensions/createExtension.ts 100% 100% 100% 100%
src/operations/extensions/dropExtension.ts 100% 100% 100% 100%
src/operations/extensions/index.ts 100% 100% 100% 100%
src/operations/extensions/shared.ts 100% 100% 100% 100%
src/operations/functions/createFunction.ts 95.52% 94.44% 100% 95.52% 71-73
src/operations/functions/dropFunction.ts 100% 100% 100% 100%
src/operations/functions/index.ts 100% 100% 100% 100%
src/operations/functions/renameFunction.ts 100% 100% 100% 100%
src/operations/functions/shared.ts 100% 100% 100% 100%
src/operations/grants/grantOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/grantOnTables.ts 100% 100% 100% 100%
src/operations/grants/grantRoles.ts 100% 100% 100% 100%
src/operations/grants/index.ts 100% 100% 100% 100%
src/operations/grants/revokeOnSchemas.ts 100% 100% 100% 100%
src/operations/grants/revokeOnTables.ts 100% 100% 100% 100%
src/operations/grants/revokeRoles.ts 100% 100% 100% 100%
src/operations/grants/shared.ts 95.45% 85.71% 100% 95.45% 71
src/operations/indexes/createIndex.ts 100% 100% 100% 100%
src/operations/indexes/dropIndex.ts 100% 100% 100% 100%
src/operations/indexes/index.ts 100% 100% 100% 100%
src/operations/indexes/shared.ts 88% 86.95% 100% 88% 23, 33-36, 48
src/operations/materializedViews/alterMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/createMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/dropMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/index.ts 100% 100% 100% 100%
src/operations/materializedViews/refreshMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedView.ts 100% 100% 100% 100%
src/operations/materializedViews/renameMaterializedViewColumn.ts 100% 100% 100% 100%
src/operations/materializedViews/shared.ts 100% 87.5% 100% 100%
src/operations/operators/addToOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/createOperator.ts 100% 100% 100% 100%
src/operations/operators/createOperatorClass.ts 100% 83.33% 100% 100%
src/operations/operators/createOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/dropOperator.ts 100% 100% 100% 100%
src/operations/operators/dropOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/dropOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/index.ts 100% 100% 100% 100%
src/operations/operators/removeFromOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorClass.ts 100% 100% 100% 100%
src/operations/operators/renameOperatorFamily.ts 100% 100% 100% 100%
src/operations/operators/shared.ts 85% 75% 100% 85% 24-25, 38
src/operations/policies/alterPolicy.ts 100% 100% 100% 100%
src/operations/policies/createPolicy.ts 100% 100% 100% 100%
src/operations/policies/dropPolicy.ts 100% 100% 100% 100%
src/operations/policies/index.ts 100% 100% 100% 100%
src/operations/policies/renamePolicy.ts 100% 100% 100% 100%
src/operations/policies/shared.ts 100% 100% 100% 100%
src/operations/roles/alterRole.ts 100% 100% 100% 100%
src/operations/roles/createRole.ts 100% 75% 100% 100%
src/operations/roles/dropRole.ts 100% 100% 100% 100%
src/operations/roles/index.ts 100% 100% 100% 100%
src/operations/roles/renameRole.ts 100% 100% 100% 100%
src/operations/roles/shared.ts 98.07% 76.92% 100% 98.07% 78
src/operations/schemas/createSchema.ts 100% 100% 100% 100%
src/operations/schemas/dropSchema.ts 100% 100% 100% 100%
src/operations/schemas/index.ts 100% 100% 100% 100%
src/operations/schemas/renameSchema.ts 100% 100% 100% 100%
src/operations/sequences/alterSequence.ts 93.75% 75% 100% 93.75% 23
src/operations/sequences/createSequence.ts 100% 100% 100% 100%
src/operations/sequences/dropSequence.ts 100% 100% 100% 100%
src/operations/sequences/index.ts 100% 100% 100% 100%
src/operations/sequences/renameSequence.ts 100% 100% 100% 100%
src/operations/sequences/shared.ts 78.57% 68.75% 100% 78.57% 41, 43-44, 49-50, 63-64, 69-70
src/operations/tables/addColumns.ts 100% 80% 100% 100%
src/operations/tables/addConstraint.ts 100% 100% 100% 100%
src/operations/tables/alterColumn.ts 89.33% 76.47% 100% 89.33% 69, 76-83
src/operations/tables/alterTable.ts 100% 100% 100% 100%
src/operations/tables/createTable.ts 89.39% 77.27% 100% 89.39% 51-55, 92-93
src/operations/tables/dropColumns.ts 100% 100% 100% 100%
src/operations/tables/dropConstraint.ts 100% 100% 100% 100%
src/operations/tables/dropTable.ts 100% 100% 100% 100%
src/operations/tables/index.ts 100% 100% 100% 100%
src/operations/tables/renameColumn.ts 100% 100% 100% 100%
src/operations/tables/renameConstraint.ts 100% 100% 100% 100%
src/operations/tables/renameTable.ts 100% 100% 100% 100%
src/operations/tables/shared.ts 83.15% 81.81% 80% 83.15% 157-158, 211-215, 241-242, 261-262, 287-288, 291-298, 301-302, 439-464
src/operations/triggers/createTrigger.ts 86.25% 68.18% 100% 86.25% 53-54, 66-67, 70-71, 74-77, 113
src/operations/triggers/dropTrigger.ts 100% 100% 100% 100%
src/operations/triggers/index.ts 100% 100% 100% 100%
src/operations/triggers/renameTrigger.ts 100% 100% 100% 100%
src/operations/triggers/shared.ts 100% 100% 100% 100%
src/operations/types/addTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/addTypeValue.ts 100% 100% 100% 100%
src/operations/types/createType.ts 100% 100% 100% 100%
src/operations/types/dropType.ts 100% 100% 100% 100%
src/operations/types/dropTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/index.ts 100% 100% 100% 100%
src/operations/types/renameType.ts 100% 100% 100% 100%
src/operations/types/renameTypeAttribute.ts 100% 100% 100% 100%
src/operations/types/renameTypeValue.ts 100% 100% 100% 100%
src/operations/types/setTypeAttribute.ts 100% 100% 100% 100%
src/operations/views/alterView.ts 100% 100% 100% 100%
src/operations/views/alterViewColumn.ts 100% 100% 100% 100%
src/operations/views/createView.ts 100% 100% 100% 100%
src/operations/views/dropView.ts 100% 100% 100% 100%
src/operations/views/index.ts 100% 100% 100% 100%
src/operations/views/renameView.ts 100% 100% 100% 100%
src/operations/views/shared.ts 100% 66.66% 100% 100%
src/utils/PgLiteral.ts 90.47% 100% 80% 90.47% 44-45
src/utils/StringIdGenerator.ts 100% 100% 100% 100%
src/utils/createSchemalize.ts 100% 100% 100% 100%
src/utils/createTransformer.ts 100% 100% 100% 100%
src/utils/decamelize.ts 100% 100% 100% 100%
src/utils/escapeValue.ts 100% 100% 100% 100%
src/utils/formatLines.ts 100% 100% 100% 100%
src/utils/formatParams.ts 100% 100% 100% 100%
src/utils/formatPartitionColumns.ts 100% 100% 100% 100%
src/utils/getMigrationTableSchema.ts 100% 100% 100% 100%
src/utils/getSchemas.ts 100% 100% 100% 100%
src/utils/identity.ts 100% 100% 100% 100%
src/utils/index.ts 100% 100% 100% 100%
src/utils/intersection.ts 100% 100% 100% 100%
src/utils/makeComment.ts 100% 100% 100% 100%
src/utils/quote.ts 100% 100% 100% 100%
src/utils/toArray.ts 100% 100% 100% 100%
src/utils/types.ts 100% 100% 100% 100%
Generated in workflow #2254 for commit 4fd489c by the Vitest Coverage Report Action

Comment thread src/utils/jiti.ts Outdated
Comment thread .github/workflows/postgres-test.yml
@brenoepics brenoepics marked this pull request as ready for review July 13, 2025 01:41
@brenoepics brenoepics requested a review from Shinigami92 as a code owner July 13, 2025 01:41
@Shinigami92

Copy link
Copy Markdown
Collaborator

Added jiti support along with a few tests to ensure we can load all supported .js, .ts, etc.

Thanks for all the PRs 🚀
I'm not sure if I get reviewed all today in detail

Also, should we add .mjs and .mts to the create migration command? it works fine with jiti.

There might be an open issue, but I'm not so sure about it. Either the consumers are having a modern type:module project and then it is not required, or they have a type:commonjs project and then they should either switch to module/esm or ask for .cjs/.cts support.
Either way, this is nothing for this active PR right now.

EDIT: finally it worked, for some reason I couldn't make a new branch so I created a fork and made the PR

I updated some protection rules in other repos, but not in this one 🤔 also checked it again and nothing changed that would block creation of branch that are not named main

@Shinigami92 Shinigami92 changed the title feat: jiti support feat!: jiti support Jul 13, 2025
Comment thread docs/.vitepress/config.mts Outdated
Comment thread package.json Outdated
Comment thread src/utils/jiti.ts Outdated
@Shinigami92 Shinigami92 added breaking change Cannot be merged when next version is not a major release c: feature Request for new feature labels Jul 13, 2025
@brenoepics

Copy link
Copy Markdown
Collaborator Author

Added jiti support along with a few tests to ensure we can load all supported .js, .ts, etc.

Thanks for all the PRs 🚀 I'm not sure if I get reviewed all today in detail

Also, should we add .mjs and .mts to the create migration command? it works fine with jiti.

There might be an open issue, but I'm not so sure about it. Either the consumers are having a modern type:module project and then it is not required, or they have a type:commonjs project and then they should either switch to module/esm or ask for .cjs/.cts support. Either way, this is nothing for this active PR right now.

EDIT: finally it worked, for some reason I couldn't make a new branch so I created a fork and made the PR

I updated some protection rules in other repos, but not in this one 🤔 also checked it again and nothing changed that would block creation of branch that are not named main

Might be something in the org since I can't assign, add tags or close issues too.

Now I'll take a look on the typescript related issues to check what is fixed or if I'm missing something.

so far I can spot:
#916
#1199

#1397 docs not needed, jiti will detect bun and use its runtime.
Image

Image

#907 I think that this one is already fixed since I can't reproduce, same to docker #1184 (both are working on the latest node-pg-migrate)
programmatically docker one:
image

Comment thread docs/.vitepress/config.mts Outdated
@Shinigami92

Copy link
Copy Markdown
Collaborator

@brenoepics would it be okay for you to extract the doc/vitepress changes into a separate PR?
Cause we use squash-merge PR-title as commits, and so it gets its own git-history entry.

Co-authored-by: Shinigami <chrissi92@hotmail.de>
brenoepics and others added 24 commits July 15, 2025 14:08
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Shinigami <chrissi92@hotmail.de>
Co-authored-by: Shinigami <chrissi92@hotmail.de>
@Shinigami92 Shinigami92 self-requested a review July 15, 2025 17:30
@Shinigami92 Shinigami92 added this pull request to the merge queue Jul 15, 2025
Merged via the queue into salsita:main with commit 59b1edc Jul 15, 2025
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Cannot be merged when next version is not a major release c: feature Request for new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants