Skip to content

Conversation

@gwythyr
Copy link
Contributor

@gwythyr gwythyr commented May 22, 2025

Description of change

This change is improving IDE hinting support for .js migrations.

Pull-Request Checklist

  • [+] Code is up-to-date with the master branch
  • [-] This pull request links relevant issues as Fixes #00000 N/A
  • [-] There are new or updated unit tests validating the change N/A
  • [-] Documentation has been updated to reflect this change N/A

Summary by CodeRabbit

  • Documentation
    • Improved generated migration templates with enhanced JSDoc comments, providing clearer parameter type annotations for better code understanding and editor support. No changes to application behavior.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 22, 2025

Walkthrough

JSDoc typedef imports and parameter annotations for the QueryRunner type were added to the JavaScript migration templates generated by both the MigrationCreateCommand and MigrationGenerateCommand classes. These updates enhance the type documentation for the up and down methods in the generated migration classes, with no changes to logic or exports.

Changes

File(s) Change Summary
src/commands/MigrationCreateCommand.ts,
src/commands/MigrationGenerateCommand.ts
Added JSDoc typedef import for QueryRunner and parameter annotations for queryRunner in migration templates. No logic or export changes.

Poem

In the land of migrations, a rabbit did write,
With JSDoc and typedefs, making docs bright.
QueryRunner now hops in, with clarity in tow,
For up and for down, the types clearly show.
No logic was changed, but the docs shine anew—
A springtime of comments, for devs old and new!
🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

npm warn config production Use --omit=dev instead.
npm error Exit handler never called!
npm error This is an error with npm itself. Please report this error at:
npm error https://github.com/npm/cli/issues
npm error A complete log of this run can be found in: /.npm/_logs/2025-05-22T12_27_45_024Z-debug-0.log

Note

⚡️ AI Code Reviews for VS Code, Cursor, Windsurf

CodeRabbit now has a plugin for VS Code, Cursor and Windsurf. This brings AI code reviews directly in the code editor. Each commit is reviewed immediately, finding bugs before the PR is raised. Seamless context handoff to your AI code agent ensures that you can easily incorporate review feedback.
Learn more here.


Note

⚡️ Faster reviews with caching

CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 30th. To opt out, configure Review - Disable Cache at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the Data Retention setting under your Organization Settings.
Enjoy the performance boost—your workflow just got faster.


📜 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 5003aaa and 716d53d.

📒 Files selected for processing (2)
  • src/commands/MigrationCreateCommand.ts (2 hunks)
  • src/commands/MigrationGenerateCommand.ts (2 hunks)
🔇 Additional comments (6)
src/commands/MigrationCreateCommand.ts (3)

112-112: Add JSDoc typedef for QueryRunner
The new @typedef import for QueryRunner strengthens IDE type inference alongside MigrationInterface.


121-123: Annotate up method parameter with JSDoc
The @param {QueryRunner} comment clarifies the type of queryRunner in the up method.


127-129: Annotate down method parameter with JSDoc
The @param {QueryRunner} comment clarifies the type of queryRunner in the down method.

src/commands/MigrationGenerateCommand.ts (3)

273-273: Add JSDoc typedef for QueryRunner
Mirroring the change in MigrationCreateCommand, adding the @typedef import for QueryRunner enhances JavaScript migration template typing.


283-285: Annotate up method parameter with JSDoc
The added @param {QueryRunner} comment ensures better editor support for the up method parameter.


291-293: Annotate down method parameter with JSDoc
The added @param {QueryRunner} comment ensures better editor support for the down method parameter.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@gwythyr
Copy link
Contributor Author

gwythyr commented May 27, 2025

@coderabbitai

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 27, 2025

Tip

For best results, initiate chat on the files or code changes.

@gwythyr Hello! I'm here and ready to help. What would you like me to assist you with regarding this PR?

I can help you with:

  • Reviewing specific aspects of the JSDoc changes
  • Explaining the implementation details
  • Generating additional documentation or tests
  • Analyzing the impact of these changes
  • Or anything else related to this TypeORM migration typing enhancement

Just let me know what you'd like me to focus on!

@alumni
Copy link
Collaborator

alumni commented Jun 4, 2025

Is this needed if @implements {MigrationInterface} is already in the class comment?

I remember when types were added in jsdoc, they were kept to a minimum on purpose and telling TS that the migration implements that interface was enough.

@gwythyr gwythyr changed the title Feat: enhance js migration typing feat: enhance js migration typing Jun 19, 2025
@gwythyr
Copy link
Contributor Author

gwythyr commented Jun 19, 2025

@alumni
Providing only MigrationInterface is not sufficient to have autocomplete support in VSCode and JetBrains IDEs.
Currently, to enable autocomplete and prevent TS from complaining, I need to add those JS docs manually to every migration.

@alumni alumni requested a review from w3nl July 4, 2025 22:33
@gwythyr
Copy link
Contributor Author

gwythyr commented Jul 21, 2025

@alumni @w3cj
Hi, I'm just checking in on this pull request. Is there anything I can do to help move this forward? I'm happy to answer any questions or make any changes needed.

@gwythyr
Copy link
Contributor Author

gwythyr commented Aug 13, 2025

@alumni @w3cj
Please, give this PR a quick look

@gwythyr
Copy link
Contributor Author

gwythyr commented Aug 21, 2025

@w3cj
Hey, don't hesitate to review this PR, appreciate it!

@gwythyr
Copy link
Contributor Author

gwythyr commented Sep 14, 2025

@alumni @w3cj @sgarner
Could you approve or reject the PR?

Copy link
Collaborator

@gioboa gioboa left a comment

Choose a reason for hiding this comment

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

Thanks for your help @gwythyr

Copy link
Collaborator

@sgarner sgarner left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution @gwythyr 💜

@sgarner sgarner changed the title feat: enhance js migration typing feat(migration): improve JSDoc types in generated migration templates Sep 16, 2025
@sgarner sgarner merged commit fa3cd43 into typeorm:master Sep 16, 2025
1 check passed
@OSA413
Copy link
Collaborator

OSA413 commented Sep 16, 2025

We forgot to adjust tests, some of them are failing now

@sgarner
Copy link
Collaborator

sgarner commented Sep 16, 2025

Oops. I'll make a fix.

ThbltLmr pushed a commit to ThbltLmr/typeorm that referenced this pull request Dec 2, 2025
…typeorm#11490)

* Feat: add JSDoc typing for queryRunner parameter

* Feat: add JSDoc typing for queryRunner parameter
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants