Skip to content

feat: expose Plugin type - #159

Merged
kazupon merged 1 commit into
kazupon:mainfrom
43081j:knip-ignores
Jun 5, 2025
Merged

kazupon merged 1 commit into
kazupon:mainfrom
43081j:knip-ignores

Conversation

@43081j

@43081j 43081j commented Jun 5, 2025

Copy link
Copy Markdown
Contributor

This exposes Plugin and uses it internally. This also means we can remove the TODO in the knip config since the types are now used.

Summary by CodeRabbit

  • Refactor
    • Simplified configuration by updating the list of ignored paths.
    • Improved type safety by explicitly typing the exported plugins array.
    • Made the Plugin type available for import directly from the main entry point.

This exposes `Plugin` and uses it internally. This also means we can
remove the `TODO` in the knip config since the types are now used.
@coderabbitai

coderabbitai Bot commented Jun 5, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

The changes update type exports and typings within the Gunshi plugin system. The Knip configuration was simplified by removing several ignore paths. The main Gunshi entry point now explicitly exports the Plugin type, and the plugins array is now statically typed as Plugin[]. No runtime logic or control flow was modified.

Changes

File(s) Change Summary
knip.config.ts Simplified the ignore array by removing several specific file paths and a related TODO comment.
packages/gunshi/src/index.ts Added an explicit type export: export type { Plugin } from ./plugin.ts.
packages/gunshi/src/plugins/index.ts Added a type annotation to the exported plugins array: Plugin[].

Possibly related PRs

  • feat: builtin options with plugin system #155: The main PR refines type exports and typings for the Gunshi plugin system components, directly building on the plugin types and exports introduced in the retrieved PR that established the plugin architecture and core plugin types.

Suggested labels

feature

Poem

In the warren where code does hop,
Types now leap right to the top!
Plugins typed and exports clear,
The Gunshi code is full of cheer.
With every hop, the code grows neat—
This rabbit’s work just can’t be beat!
🐇✨


📜 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 5f9996e and 1a1d75b.

📒 Files selected for processing (3)
  • knip.config.ts (1 hunks)
  • packages/gunshi/src/index.ts (1 hunks)
  • packages/gunshi/src/plugins/index.ts (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/gunshi/src/plugins/index.ts (4)
packages/gunshi/src/plugin.ts (1)
  • Plugin (24-24)
packages/gunshi/src/plugins/globals.ts (1)
  • globals (13-17)
packages/gunshi/src/plugins/completion.ts (1)
  • completion (11-13)
packages/gunshi/src/plugins/dryrun.ts (1)
  • dryRun (11-13)
🔇 Additional comments (4)
packages/gunshi/src/index.ts (1)

23-23: LGTM! Correctly exposes the Plugin type.

The type-only export makes the Plugin type available to consumers while maintaining clean separation between runtime and type exports.

packages/gunshi/src/plugins/index.ts (2)

9-9: Good addition of type import.

Importing the Plugin type enables proper typing of the plugins array below.


11-11: Excellent type annotation for the plugins array.

The Plugin[] type annotation ensures type safety and makes it clear that all exported plugins conform to the Plugin interface. All functions in the array (globals, completion, dryRun) correctly match the Plugin type signature.

knip.config.ts (1)

24-24: Correct removal of plugin file ignores.

Since the Plugin type is now actively exported and used to type the plugins array, these files are no longer considered unused by knip. The cleanup aligns perfectly with the PR objective.

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 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.

@kazupon kazupon added the improvement Includes backwards-compatible fixes label Jun 5, 2025
@pkg-pr-new

pkg-pr-new Bot commented Jun 5, 2025

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/gunshi@159

commit: 1a1d75b

@kazupon

kazupon commented Jun 5, 2025

Copy link
Copy Markdown
Owner

Thank you for your first contribution! :)
Your contribution will be helpful for the plugin system development!

@kazupon
kazupon merged commit ac34b4c into kazupon:main Jun 5, 2025
@43081j
43081j deleted the knip-ignores branch June 7, 2025 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Includes backwards-compatible fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants