Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix esm #1148

Merged
merged 2 commits into from
May 6, 2024
Merged

fix: fix esm #1148

merged 2 commits into from
May 6, 2024

Conversation

Shinigami92
Copy link
Collaborator

closes #1147

@Shinigami92 Shinigami92 added c: bug Something isn't working p: 2-high Fix main branch labels May 2, 2024
@Shinigami92 Shinigami92 added this to the v7.x milestone May 2, 2024
@Shinigami92 Shinigami92 self-assigned this May 2, 2024
Copy link

github-actions bot commented May 2, 2024

Coverage Report

Status Category Percentage Covered / Total
🟢 Lines 95.59% (🎯 90%)
🟰 ±0%
6748 / 7059
🟢 Statements 95.59% (🎯 90%)
🟰 ±0%
6748 / 7059
🟢 Functions 95.4% (🎯 90%)
🟰 ±0%
249 / 261
🟢 Branches 89.88% (🎯 85%)
🟰 ±0%
800 / 890
File Coverage
File Stmts % Branch % Funcs % Lines Uncovered Lines
Unchanged Files
src/db.ts 88.09% 88.46% 87.5% 88.09% 68-70, 100, 103-115, 155-157
src/index.ts 100% 100% 100% 100%
src/migration.ts 75.32% 78.04% 58.33% 75.32% 63, 66-68, 70-82, 111-117, 122-158, 215-216, 241-244, 252-253, 270-273, 302-303
src/migrationBuilder.ts 97.56% 92.3% 87.5% 97.56% 354-358, 497-502, 526-527
src/runner.ts 74.22% 58.92% 80% 74.22% 41, 69-70, 79-80, 83-91, 129-130, 172-175, 184-188, 201, 205-218, 237, 239-245, 248, 261, 273-286, 289-292, 302-303, 312-314, 323, 325-334, 346-353
src/sqlMigration.ts 90.19% 100% 80% 90.19% 45-49
src/types.ts 100% 100% 100% 100%
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 100% 100% 100% 100%
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 98.63% 85.71% 100% 98.63% 71
src/operations/indexes/createIndex.ts 98.03% 95.23% 100% 98.03% 74-75
src/operations/indexes/dropIndex.ts 100% 100% 100% 100%
src/operations/indexes/index.ts 100% 100% 100% 100%
src/operations/indexes/shared.ts 91.17% 86.95% 100% 91.17% 22, 32-35, 47
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 90% 75% 100% 90% 24-25, 37-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.97% 76.92% 100% 98.97% 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 96.87% 75% 100% 96.87% 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 87.67% 68.75% 100% 87.67% 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 92.5% 76.47% 100% 92.5% 75, 82-89
src/operations/tables/alterTable.ts 100% 100% 100% 100%
src/operations/tables/createTable.ts 90.47% 66.66% 100% 90.47% 44-48, 65, 75-76
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 88.47% 78.46% 80% 88.47% 137-138, 141-142, 195-199, 224, 228-229, 248-249, 274-275, 278-285, 288-289, 426-451
src/operations/triggers/createTrigger.ts 90.83% 68.18% 100% 90.83% 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 96.49% 100% 66.66% 96.49% 37-38
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/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 #770

@Shinigami92 Shinigami92 marked this pull request as ready for review May 2, 2024 11:57
@Shinigami92 Shinigami92 requested a review from osdiab May 2, 2024 11:57
@Shinigami92
Copy link
Collaborator Author

Shinigami92 commented May 2, 2024

@remidewitte please test 7.2.3-alpha.0

  • does esm work as expected?
  • does the typescript support work as expected?

@remidewitte
Copy link
Contributor

Many thanks.

I can confirm it now works for ESM 🎉 !

As for Typescript, I confirm I manage to use it using : NODE_OPTIONS='--import tsx' node-pg-migrate up -j ts

@Shinigami92
Copy link
Collaborator Author

@remidewitte Perfect 🙏

Please stay on this alpha until next official release
I will give @osdiab a chance to review this, cause I want to hear some other voices about the "hacks" I did 😅

@osdiab
Copy link
Collaborator

osdiab commented May 2, 2024

Tomorrow morning JST I’ll take a peek!

target: ['es2020', 'node16'],
dts: false,
minify: false,
sourcemap: false,
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't know if it is relevant but I guess it would be useful to keep :

  • bundle: false
  • sourcemap: true
  • dts: true

It would ease the programmatic usage of the lib.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

dts is done in it's own step

"build:types": "tsc --project tsconfig.build.json",

bundle and sourcemaps is currently only configured in this way for esm, not for cjs
So I plan to export everything needed from dist/index and depend on tree-shaking instead
But this will only be a breaking changes for users switching to esm anyway
I will drop cjs support in a later major

Copy link
Contributor

Choose a reason for hiding this comment

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

Excellent !

@Shinigami92
Copy link
Collaborator Author

As @remidewitte told this is working together with #1150, I will merge this and potential fixes can be done in a later PR

@Shinigami92 Shinigami92 merged commit ea6adec into main May 6, 2024
33 checks passed
@Shinigami92 Shinigami92 deleted the issue-1147-fix-esm branch May 6, 2024 06:48
@Shinigami92 Shinigami92 restored the issue-1147-fix-esm branch May 6, 2024 06:48
@Shinigami92 Shinigami92 deleted the issue-1147-fix-esm branch May 6, 2024 06:48
@osdiab
Copy link
Collaborator

osdiab commented May 6, 2024

Sorry, I didn't end up looking at it—after a quick scan I don't think my input would be super helpful anyway since I don't know enough without further research into what acrobatics are necessary to satisfy ESM, as I don't actively use it in my projects myself, but I trust your manual testing!

@Shinigami92
Copy link
Collaborator Author

Sorry, I didn't end up looking at it—after a quick scan I don't think my input would be super helpful anyway since I don't know enough without further research into what acrobatics are necessary to satisfy ESM, as I don't actively use it in my projects myself, but I trust your manual testing!

@osdiab No problem there with that you don't know better about ESM
What is important to me and node-pg-migrate is to have someone beside me that builds up some knowledge about node-pg-migrate and its source code
So you can just learn for the project and yourself by doing reviews like this 😺

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: bug Something isn't working p: 2-high Fix main branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Imports in the mjs do not work out of the box with node ESM
3 participants