Skip to content

Conversation

DaveMBush
Copy link
Owner

@DaveMBush DaveMBush commented Jul 17, 2025

Issue Number: #196

Body

link lint rule to documentation

Summary by CodeRabbit

  • Chores
    • Updated rule documentation links to point directly to the GitHub documentation for each rule.
    • Removed redundant documentation URL fields from rule metadata.
    • Bumped the package version to 1.0.22.

@DaveMBush DaveMBush linked an issue Jul 17, 2025 that may be closed by this pull request
Copy link

coderabbitai bot commented Jul 17, 2025

Walkthrough

This update standardizes how ESLint rule documentation URLs are provided in the @smarttools/eslint-plugin-rxjs package. All rule creator functions now use fixed GitHub documentation URLs instead of local file paths, and the redundant meta.docs.url properties have been removed from rule metadata. The package version is incremented.

Changes

Files/Groups Change Summary
packages/eslint-plugin-rxjs/package.json Bumped version from 1.0.21 to 1.0.22.
packages/eslint-plugin-rxjs/src/lib/rules/*.ts Changed ESLint rule creator argument from () => __filename to a function returning a fixed GitHub documentation URL. Removed meta.docs.url property from rule metadata. No logic or signature changes.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant ESLint Rule
    participant GitHub Docs

    Developer->>ESLint Rule: Uses rule in codebase
    ESLint Rule->>GitHub Docs: Provides fixed documentation URL
    Developer->>GitHub Docs: Accesses rule documentation via URL
Loading

Possibly related PRs

  • DaveMBush/eslint-plugin-rxjs#197: Modifies the same rule documentation URL mechanism, but in the opposite direction by adding meta.docs.url fields, making it directly related to this PR.

Poem

🐇
A hop, a skip, a version new,
URLs now fixed, no more askew.
From file to GitHub, docs are found,
No more searching all around!
With every rule, a tidy link—
This bunny’s happy, don’t you think?
🌱

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.

packages/eslint-plugin-rxjs/src/lib/rules/just.ts

Oops! Something went wrong! :(

ESLint: 9.31.0

ESLint couldn't find the plugin "@typescript-eslint/eslint-plugin".

(The package "@typescript-eslint/eslint-plugin" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install @typescript-eslint/eslint-plugin@latest --save-dev

The plugin "@typescript-eslint/eslint-plugin" was referenced from the config file in " » plugin:@nx/typescript".

If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.

packages/eslint-plugin-rxjs/src/lib/rules/ban-operators.ts

Oops! Something went wrong! :(

ESLint: 9.31.0

ESLint couldn't find the plugin "@typescript-eslint/eslint-plugin".

(The package "@typescript-eslint/eslint-plugin" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install @typescript-eslint/eslint-plugin@latest --save-dev

The plugin "@typescript-eslint/eslint-plugin" was referenced from the config file in " » plugin:@nx/typescript".

If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.

packages/eslint-plugin-rxjs/src/lib/rules/no-compat.ts

Oops! Something went wrong! :(

ESLint: 9.31.0

ESLint couldn't find the plugin "@typescript-eslint/eslint-plugin".

(The package "@typescript-eslint/eslint-plugin" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install @typescript-eslint/eslint-plugin@latest --save-dev

The plugin "@typescript-eslint/eslint-plugin" was referenced from the config file in " » plugin:@nx/typescript".

If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.

  • 37 others
✨ 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.

Copy link

nx-cloud bot commented Jul 17, 2025

View your CI Pipeline Execution ↗ for commit 39234f4

Command Status Duration Result
nx affected -t lint test build ✅ Succeeded 1m 5s View ↗

☁️ Nx Cloud last updated this comment at 2025-07-17 18:59:23 UTC

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (19)
packages/eslint-plugin-rxjs/src/lib/rules/throw-error.ts (1)

9-11: Same hard-coded URL duplication as noted in no-tap.ts

Please apply the shared URL factory pattern here too.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-takewhile-value.ts (1)

12-14: Repeated constant URL – see earlier comment

Using a common helper or string template will remove this duplication.

packages/eslint-plugin-rxjs/src/lib/rules/no-sharereplay.ts (1)

11-13: Hard-coded docs link duplicate

Refactor as suggested for no-tap.ts to keep URLs centralised.

packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-switchmap.ts (1)

23-25: URL duplication

Same remark: introduce a shared URL builder to avoid copy-pasting the full path.

packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-subject-next.ts (1)

14-16: Same URL-construction duplication as noted in no-internal.ts

See previous comment for a templated solution.

packages/eslint-plugin-rxjs/src/lib/rules/just.ts (1)

6-8: Same URL-construction duplication as noted in no-internal.ts

See earlier suggestion for using the supplied ruleName.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscribe.ts (1)

7-9: Same URL-construction duplication as noted in no-internal.ts

Reuse the ruleName argument instead of a hard-coded string.

packages/eslint-plugin-rxjs/src/lib/rules/no-topromise.ts (1)

7-9: Same URL-construction duplication as noted in no-internal.ts

Applying the earlier DRY fix will future-proof this file as well.

packages/eslint-plugin-rxjs/src/lib/rules/no-redundant-notify.ts (1)

15-17: Apply shared URL helper for consistency

Same duplication comment as above. Moving to a shared url function (or helper) keeps every rule in sync and avoids future copy-paste errors.

packages/eslint-plugin-rxjs/src/lib/rules/no-subclass.ts (1)

7-9: Use template-based URL instead of literal

See earlier note—switching to ruleName => \.../${ruleName}.md`` (or shared helper) increases maintainability.

packages/eslint-plugin-rxjs/src/lib/rules/no-subject-unsubscribe.ts (1)

6-8: Consolidate documentation URL construction

Replicate the shared helper pattern here to avoid hard-coding each rule’s path.

packages/eslint-plugin-rxjs/src/lib/rules/no-index.ts (1)

5-7: Same URL-deduplication concern as noted for no-unsafe-takeuntil

Please apply the shared createRule helper here too for consistency.

packages/eslint-plugin-rxjs/src/lib/rules/no-subscribe-handlers.ts (1)

7-9: Same URL-deduplication concern as noted for no-unsafe-takeuntil

Apply the common createRule helper.

packages/eslint-plugin-rxjs/src/lib/rules/no-compat.ts (1)

6-8: Same URL-deduplication concern as noted for no-unsafe-takeuntil

Apply the common createRule helper.

packages/eslint-plugin-rxjs/src/lib/rules/no-implicit-any-catch.ts (1)

43-45: Same URL-deduplication concern as noted for no-unsafe-takeuntil

Apply the common createRule helper.

packages/eslint-plugin-rxjs/src/lib/rules/no-subject-value.ts (1)

7-9: Same DRY concern as in suffix-subjects – see earlier comment
Using the shared ruleUrl helper avoids the need to duplicate the full URL here.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-replay-buffer.ts (1)

9-11: Same DRY concern as in suffix-subjects – see earlier comment

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-notifier.ts (1)

11-13: Same DRY concern as in suffix-subjects – see earlier comment

packages/eslint-plugin-rxjs/src/lib/rules/no-exposed-subjects.ts (1)

15-17: Same DRY concern as in suffix-subjects – see earlier comment

🧹 Nitpick comments (11)
packages/eslint-plugin-rxjs/src/lib/rules/no-tap.ts (1)

5-7: Prefer a single URL factory instead of hard-coding every rule’s link

RuleCreator provides the rule name as its first argument. Returning a constant string here duplicates the rule name and will have to be touched in every file if the docs path ever moves. Consider one of:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-tap.md'
-)({
+const DOCS_URL_BASE =
+  'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules';
+
+export default ESLintUtils.RuleCreator(
+  (name) => `${DOCS_URL_BASE}/${name}.md`,
+)({

or create a shared createRule helper and reuse it across all rules to stay DRY.

packages/eslint-plugin-rxjs/src/lib/rules/no-internal.ts (1)

7-9: Prefer deriving the docs URL from the rule name to avoid duplication

Hard-coding the full GitHub URL in every rule means:

• Any repo move (mainmaster, owner rename, path change) forces a sweep of all rule files.
• Typos or copy-paste errors become more likely.

Leverage the ruleName argument that RuleCreator passes instead:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-internal.md'
-)({
+export default ESLintUtils.RuleCreator(
+  (name) =>
+    `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${name}.md`
+)({

That keeps the pattern DRY and resilient.

packages/eslint-plugin-rxjs/src/lib/rules/prefer-observer.ts (1)

17-19: Parameterise the documentation URL to eliminate duplication

Hard-coding the full URL in every rule means each file must be touched if the repo is moved, the branch name changes, or the docs folder is re-organised. Consider leveraging the ruleName parameter that RuleCreator passes in:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/prefer-observer.md'
-)({
+const url = (name: string) =>
+  `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${name}.md`;
+
+export default ESLintUtils.RuleCreator(url)({

One central helper (e.g. createRuleWithDocsUrl) could live in src/lib/utils/rule-creator.ts and be reused by all rules.

packages/eslint-plugin-rxjs/package.json (1)

3-3: Synchronise version bump with CHANGELOG

package.json jumped to 1.0.22; ensure the changelog (or release notes) reflects the new version so consumers understand what changed.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-observable.ts (1)

7-9: Use the ruleName parameter instead of hard-coding the full URL

RuleCreator passes the rule name to the callback, letting you build one generic URL builder and avoid copy-pasting the full path in every rule. That shrinks future maintenance and eliminates risk of typos.

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-ignored-observable.md'
-)({
+export const docsUrl = (rule: string) =>
+  `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${rule}.md`;
+
+export default ESLintUtils.RuleCreator(docsUrl)({

A helper such as docsUrl (ideally moved to a small util module) can then be reused by every rule file.

packages/eslint-plugin-rxjs/src/lib/rules/no-async-subscribe.ts (1)

7-9: Avoid per-file URL duplication

Same comment as above: leverage the ruleName argument so each file need only import the shared docsUrl helper.

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-async-subscribe.md'
-)({
+export default ESLintUtils.RuleCreator(docsUrl)({
packages/eslint-plugin-rxjs/src/lib/rules/no-connectable.ts (1)

6-8: Centralise docs URL generation

Copy-pasted constants make future path changes error-prone. Re-use a single callback that interpolates ruleName.

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-connectable.md'
-)({
+export default ESLintUtils.RuleCreator(docsUrl)({
packages/eslint-plugin-rxjs/src/lib/rules/no-nested-subscribe.ts (1)

7-9: Factor out repeated docs URLs

Hard-coding each rule’s link scales poorly. Prefer a shared helper that formats
https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/.../${ruleName}.md.

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-nested-subscribe.md'
-)({
+export default ESLintUtils.RuleCreator(docsUrl)({
packages/eslint-plugin-rxjs/src/lib/rules/no-finnish.ts (1)

11-13: DRY up documentation URL construction

As with the other rule files, consider injecting the rule name rather than repeating the full path.

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-finnish.md'
-)({
+export default ESLintUtils.RuleCreator(docsUrl)({

Implementing once in a tiny utility keeps every rule consistent and maintainable.

packages/eslint-plugin-rxjs/src/lib/rules/suffix-subjects.ts (1)

22-24: Prefer a single, parameterized URL factory for all rules

Each rule now hard-codes its own GitHub URL. That works, but it repeats the base path and is error-prone if a file is renamed or the docs are reorganized.
RuleCreator receives the rule name as its argument, so you can centralise the logic and remove duplication:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/suffix-subjects.md'
-)({
+const ruleUrl = (name: string) =>
+  `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${name}.md`;
+
+export default ESLintUtils.RuleCreator(ruleUrl)({

Then reuse ruleUrl in every rule file.
This keeps one authoritative source for the path and eliminates manual edits for new rules.

packages/eslint-plugin-rxjs/src/lib/rules/finnish.ts (1)

25-27: Consider parameterizing the docs URL in RuleCreator

Hard-coding the full URL makes every rule responsible for maintaining its own absolute link. Passing the ruleName parameter keeps all rules DRY and avoids copy-paste errors if the path ever changes:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/finnish.md'
-)({
+export default ESLintUtils.RuleCreator(
+  (ruleName) =>
+    `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${ruleName}.md`
+)({

This remains fully compatible with ESLintUtils.RuleCreator (it passes ruleName as the first argument) and eliminates duplication across files.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2d00c19 and 39234f4.

📒 Files selected for processing (41)
  • packages/eslint-plugin-rxjs/package.json (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/ban-observables.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/ban-operators.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/finnish.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/just.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/macro.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-async-subscribe.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-compat.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-connectable.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-create.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-cyclic-action.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-exposed-subjects.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-finnish.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-error.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-notifier.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-observable.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-replay-buffer.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscribe.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscription.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-takewhile-value.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-implicit-any-catch.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-index.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-internal.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-nested-subscribe.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-redundant-notify.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-sharereplay.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-subclass.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-subject-unsubscribe.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-subject-value.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-subscribe-handlers.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-tap.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-topromise.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unbound-methods.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-catch.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-first.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-subject-next.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-switchmap.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-takeuntil.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/prefer-observer.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/suffix-subjects.ts (1 hunks)
  • packages/eslint-plugin-rxjs/src/lib/rules/throw-error.ts (1 hunks)
🧰 Additional context used
🧠 Learnings (42)
📓 Common learnings
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-async-subscribe.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-tap.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-connectable.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-subclass.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-subject-next.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-finnish.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/ban-operators.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-subject-unsubscribe.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-sharereplay.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-observable.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/package.json (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-compat.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/throw-error.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unbound-methods.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-takewhile-value.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-create.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-switchmap.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-cyclic-action.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/just.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/ban-observables.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-first.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-takeuntil.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-index.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-catch.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/suffix-subjects.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-nested-subscribe.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscribe.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-notifier.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-exposed-subjects.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-redundant-notify.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscription.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-internal.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-implicit-any-catch.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-topromise.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-subject-value.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-subscribe-handlers.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-replay-buffer.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/finnish.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-error.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/macro.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
packages/eslint-plugin-rxjs/src/lib/rules/prefer-observer.ts (1)
Learnt from: DaveMBush
PR: DaveMBush/eslint-plugin-rxjs#69
File: packages/eslint-plugin-rxjs/package.json:4-7
Timestamp: 2025-01-25T19:46:28.512Z
Learning: In eslint-plugin-rxjs, TypeScript should not be added as a peer dependency since most rules don't require TypeScript functionality. Only specific rules like no-unsafe-switchmap, no-unsafe-first, no-unsafe-catch, and no-cyclic-action use TypeScript features.
🔇 Additional comments (10)
packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-first.ts (1)

12-14: Documentation URL Verified and Change Approved

The documentation link in packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-first.ts was checked and returned HTTP 200, confirming it’s accessible. No further changes are needed.

packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-catch.ts (1)

17-19: LGTM! Consistent URL standardization.

The change follows the same pattern as other rules, properly centralizing the documentation URL in the RuleCreator function.

packages/eslint-plugin-rxjs/src/lib/rules/no-create.ts (1)

7-9: LGTM! Consistent implementation.

The change maintains consistency with the standardized URL approach across all rules.

packages/eslint-plugin-rxjs/src/lib/rules/ban-operators.ts (1)

8-10: LGTM! Consistent pattern maintained.

The change follows the established pattern for documentation URL standardization.

packages/eslint-plugin-rxjs/src/lib/rules/no-cyclic-action.ts (1)

18-20: LGTM! Consistent implementation across all rules.

The change maintains the established pattern for documentation URL standardization. This completes the consistent implementation across all rule files in the PR.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-subscription.ts (1)

7-9: LGTM! Documentation URL standardization implemented correctly.

The change correctly updates the rule creator to use a fixed GitHub documentation URL instead of the local filename. The URL format is consistent and properly references the rule's documentation.

packages/eslint-plugin-rxjs/src/lib/rules/no-ignored-error.ts (1)

7-9: LGTM! Consistent documentation URL implementation.

The rule creator correctly uses the fixed GitHub documentation URL format, maintaining consistency with the package-wide standardization effort.

packages/eslint-plugin-rxjs/src/lib/rules/no-unbound-methods.ts (1)

12-14: LGTM! Documentation URL standardization applied correctly.

The rule creator update follows the established pattern and correctly references the rule's documentation on GitHub.

packages/eslint-plugin-rxjs/src/lib/rules/ban-observables.ts (1)

8-10: LGTM! Consistent with documentation URL standardization.

The rule creator correctly implements the fixed GitHub documentation URL pattern, maintaining consistency across the package.

packages/eslint-plugin-rxjs/src/lib/rules/macro.ts (1)

5-7: LGTM! Documentation URL standardization completed correctly.

The rule creator update follows the established pattern and correctly references the macro rule's documentation on GitHub.

Comment on lines +20 to +22
export default ESLintUtils.RuleCreator(
() => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-unsafe-takeuntil.md'
)({
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Deduplicate documentation URL generation with a shared createRule helper

All rules now hard-code their own documentation URL. This repeats the repo path string dozens of times and makes future moves/renames brittle. Define a single helper that derives the URL from the rule name and reuse it:

-export default ESLintUtils.RuleCreator(
-  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-unsafe-takeuntil.md'
-)({
+const createRule = ESLintUtils.RuleCreator(
+  (name) =>
+    `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${name}.md`,
+);
+
+export default createRule({

• Removes duplication across ~60 rule files
• One-liner change if the repo location or default branch ever changes
• Keeps each rule definition concise


🏁 Script executed:

#!/bin/bash
echo "Occurrences of ESLintUtils.RuleCreator across rule files:"
rg "ESLintUtils.RuleCreator" -g "packages/eslint-plugin-rxjs/src/lib/rules/*.ts" | wc -l

echo "Search for existing createRule helper or similar utilities:"
rg -l "createRule(" -g "packages/eslint-plugin-rxjs/src/lib"

Length of output: 479


🏁 Script executed:

#!/bin/bash
echo "Searching for any existing createRule helper in the plugin:"
rg -l "createRule" -g "packages/eslint-plugin-rxjs/src/lib"

Length of output: 335


Extract documentation URL generation into a shared createRule helper

File: packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-takeuntil.ts
Lines: 20–22

All rule files currently inline the docs URL, repeating the same repo path across ~40 files. Introduce a centralized utility:

  1. Create packages/eslint-plugin-rxjs/src/lib/utils/createRule.ts

    import { ESLintUtils } from '@typescript-eslint/experimental-utils';
    
    export const createRule = ESLintUtils.RuleCreator(
      (name) =>
        `https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/${name}.md`,
    );
  2. Update packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-takeuntil.ts

    -import { ESLintUtils } from '@typescript-eslint/experimental-utils';
    +import { createRule } from '../utils/createRule';
    
    -export default ESLintUtils.RuleCreator(
    -  () => 'https://github.com/DaveMBush/eslint-plugin-rxjs/blob/main/packages/eslint-plugin-rxjs/docs/rules/no-unsafe-takeuntil.md'
    -)({
    +export default createRule({

• Eliminates duplication across all rule files
• Single change to update docs path for every rule
• Keeps individual rule definitions concise and DRY

🤖 Prompt for AI Agents
In packages/eslint-plugin-rxjs/src/lib/rules/no-unsafe-takeuntil.ts lines 20 to
22, replace the inline ESLintUtils.RuleCreator call that hardcodes the
documentation URL with a shared createRule helper. First, create a new file
packages/eslint-plugin-rxjs/src/lib/utils/createRule.ts exporting createRule
using ESLintUtils.RuleCreator with a function that generates the docs URL based
on the rule name. Then, import and use this createRule helper in
no-unsafe-takeuntil.ts to define the rule, passing only the rule name to
generate the docs URL dynamically. This removes duplication and centralizes URL
generation.

@DaveMBush DaveMBush merged commit fdc3f08 into main Jul 17, 2025
2 checks passed
@DaveMBush DaveMBush deleted the dmb/link-in-ide-tooltip-doesnt-link-to-the-docs/196 branch July 17, 2025 19:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Link in IDE tooltip doesn't link to the docs
1 participant