Skip to content

Conversation

@Siddhant-Pragyan-Sinha
Copy link
Contributor

@Siddhant-Pragyan-Sinha Siddhant-Pragyan-Sinha commented Mar 20, 2025

Fixes issue #3905

Describe the Bug

There were many title cards with empty 'LANGUAGE' and/or empty 'TECHNOLOGY' fields in the title cards. Additionally, many title-cards were not having the required github/documentation/website links in their buttons.

BEFORE

screen-recording.2.mp4

AFTER

screen-recording.3.mp4

Changes Done

  1. As instructed to not change tools.json file, a new processToolsData.ts file is made in the utils folder which handles the import of data from tools-automated, tools-manual and all-tags files and creates an object array just like in the original code.

  2. Added links to title cards with missing links.

  • Added links to github, website and documentation links to title cards as I could find (changes can be done as instructed).

  • Reordered the templates in tools-automated and tools-manual files to look as similar as possible to the current website.

  1. Maintained existing interfaces and types:-
  • Kept ToolsListData interface in ToolDataType.ts for type consistency across the application .
  1. Preserved existing component logic:
  • No changes made to filter logic, search functionality, or UI rendering in ToolsDashboard.tsx and CategoryDropdown.tsx
  1. Improved data processing:
  • Added caching mechanism in processToolsData.ts to avoid unnecessary reprocessing.

  • Implemented color mapping for languages and technologies based on all-tags.json.

How to test:-
Run the project locally
Navigate to the Tools section

Checklist:-

  1. No error was encountered when executing tsc --noEmit .

  2. No error was encountered when executing npm run build .

  3. No error was encountered when executing npm run lint .

Feedback from maintainers and reviewers is requested, to review and do the needful changes, if any.

Summary by CodeRabbit

  • New Features

    • Expanded the tools directory with several new curated listings, offering additional asynchronous API resources and documentation generators.
  • Refactor

    • Enhanced data handling in tool displays by shifting from static data imports to dynamic processing for improved consistency.
    • Improved type safety in the application by specifying types for certain variables.
  • Chores

    • Standardized naming, ordering, and capitalization in configuration settings to ensure a more uniform presentation.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 20, 2025

Walkthrough

This pull request modifies how tools data is sourced and processed. In the UI components (CategoryDropdown and ToolsDashboard), the static JSON import is replaced with a dynamic function call to processToolsData, with added type annotations for improved type safety. Additionally, configuration files are updated: one reorders tag entries, another standardizes the casing for languages and technologies, and a manual tools file is reorganized and expanded with new entries. A new utility file providing the processToolsData function has been introduced to centralize data processing and caching.

Changes

File(s) Change Summary
components/tools/CategoryDropdown.tsx
components/tools/ToolsDashboard.tsx
Replaced static JSON import (ToolsDataList) with a call to processToolsData(). In the dashboard, added explicit useMemo type annotation for enhanced type safety.
config/all-tags.json Reordered the "languages" array by moving "Kubernetes-native" to the beginning while preserving overall JSON structure.
config/tools-automated.json Standardized casing for programming languages and technologies (e.g., "Typescript" → "TypeScript", "golang" → "Go/Golang", "javascript" → "JavaScript", etc.).
config/tools-manual.json Reorganized sections and updated multiple entries with new tool additions, descriptions, links, and filter adjustments.
utils/processToolsData.ts Introduced a new file that defines and caches the processToolsData function to process and transform tools data dynamically from multiple sources.

Possibly related PRs

  • chore: update tools.json #3906: The changes in the main PR and the retrieved PR are related as both modify the way ToolsData is sourced by replacing static JSON imports with a call to the processToolsData function, affecting the same variable in different files.
  • chore: update tools.json #3292: The changes in the main PR and the retrieved PR are related as both modify the initialization of the ToolsData variable by replacing the static JSON import with a call to the processToolsData function.
  • fix: normalize the logos of sponsors  #3534: The changes in the main PR and the retrieved PR are related as both modify how the ToolsData variable is populated, transitioning from static imports to using the processToolsData function, indicating a shared approach to data handling.

Suggested labels

ready-to-merge, autoupdate

Suggested reviewers

  • derberg
  • akshatnema
  • magicmatatjahu
  • anshgoyalevil
  • Mayaleeeee
  • devilkiller-ag
  • sambhavgupta0705
  • asyncapi-bot-eve

Poem

Oh, what a hop in the code today,
I munch on bugs and nibble away,
ProcessToolsData leads the clever parade,
Static files now leap and fade,
Type-safe trails and configs so neat,
A rabbit’s joy with every beat!
🐰✨


📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ccc777e and c0d4b40.

📒 Files selected for processing (1)
  • pages/casestudies/[id].tsx (1 hunks)
🔇 Additional comments (1)
pages/casestudies/[id].tsx (1)

45-45: Good addition of type annotation!

Adding the explicit HeadingTypeStyle type to the typeStyle variable improves type safety and code readability. This change aligns with TypeScript best practices by making the expected type explicit, which enhances IDE support and helps catch potential type errors at compile time.

✨ 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.
    • Generate unit testing code for this file.
    • 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 generate unit testing code for this file.
    • @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 generate unit testing code.
    • @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.

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 resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @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.

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.

@netlify
Copy link

netlify bot commented Mar 20, 2025

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 2cd19f6
🔍 Latest deploy log https://app.netlify.com/sites/asyncapi-website/deploys/67e724cc03b1dc000887d1cf
😎 Deploy Preview https://deploy-preview-3925--asyncapi-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@codecov
Copy link

codecov bot commented Mar 20, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (f42e537) to head (2cd19f6).
Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #3925   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           21        21           
  Lines          667       667           
  Branches       113       113           
=========================================
  Hits           667       667           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@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: 0

🧹 Nitpick comments (4)
utils/processToolsData.ts (4)

1-5: Fix import order and use proper type imports.

The import statements need to be sorted and type imports should use the import type syntax.

-import automatedTools from '../config/tools-automated.json';
-import manualTools from '../config/tools-manual.json';
-import allTags from '../config/all-tags.json';
-import { ToolsListData, ToolData } from '../types/components/tools/ToolDataType';
+import allTags from '../config/all-tags.json';
+import automatedTools from '../config/tools-automated.json';
+import manualTools from '../config/tools-manual.json';
+import type { ToolData, ToolsListData } from '../types/components/tools/ToolDataType';
🧰 Tools
🪛 ESLint

[error] 1-4: Run autofix to sort these imports!

(simple-import-sort/imports)


[error] 4-4: All imports in the declaration are only used as types. Use import type.

(@typescript-eslint/consistent-type-imports)


44-77: Consider adding type safety for tool processing.

The processTool helper function uses any type for the input parameter, which could lead to runtime errors if the tool object doesn't have the expected structure. Consider defining a more specific interface for the input parameter.

-  const processTool = (tool: any): ToolData => {
+  interface RawToolData {
+    title: string;
+    description: string | null;
+    links: any;
+    filters: {
+      categories?: string[];
+      hasCommercial: boolean;
+      isAsyncAPIOwner: boolean;
+      language?: string;
+      technology?: string[];
+    };
+  }
+  
+  const processTool = (tool: RawToolData): ToolData => {
🧰 Tools
🪛 ESLint

[error] 57-57: Insert ⏎··········

(prettier/prettier)


[error] 58-58: Insert ··

(prettier/prettier)


[error] 59-59: Replace ·········· with ············

(prettier/prettier)


[error] 60-60: Insert ··

(prettier/prettier)


[error] 61-61: Replace } with ··}⏎········

(prettier/prettier)


57-61: Fix code formatting issues.

The code formatting for the processedLanguage object doesn't match the project's style guidelines.

-    const processedLanguage = tool.filters?.language
-      ? [{
-          name: tool.filters.language,
-          color: tagColorMap[tool.filters.language]?.color || '#cccccc',
-          borderColor: tagColorMap[tool.filters.language]?.borderColor || '#999999'
-        }]
-      : undefined;
+    const processedLanguage = tool.filters?.language
+      ? [
+          {
+            name: tool.filters.language,
+            color: tagColorMap[tool.filters.language]?.color || '#cccccc',
+            borderColor: tagColorMap[tool.filters.language]?.borderColor || '#999999'
+          }
+        ]
+      : undefined;
🧰 Tools
🪛 ESLint

[error] 57-57: Insert ⏎··········

(prettier/prettier)


[error] 58-58: Insert ··

(prettier/prettier)


[error] 59-59: Replace ·········· with ············

(prettier/prettier)


[error] 60-60: Insert ··

(prettier/prettier)


[error] 61-61: Replace } with ··}⏎········

(prettier/prettier)


98-99: Add a blank line for better code readability.

Add a blank line before the final return statement for better code readability and to comply with the style guidelines.

  cachedToolsData = result;
+
  return result;
🧰 Tools
🪛 ESLint

[error] 99-99: Expected blank line before this statement.

(padding-line-between-statements)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 483cd82 and 7ee5fef.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (7)
  • components/navigation/MobileNavMenu.tsx (3 hunks)
  • components/tools/CategoryDropdown.tsx (1 hunks)
  • components/tools/ToolsDashboard.tsx (3 hunks)
  • config/all-tags.json (1 hunks)
  • config/tools-automated.json (34 hunks)
  • config/tools-manual.json (1 hunks)
  • utils/processToolsData.ts (1 hunks)
🧰 Additional context used
🧬 Code Definitions (2)
components/tools/CategoryDropdown.tsx (1)
utils/processToolsData.ts (1) (1)
  • processToolsData (9-100)
components/tools/ToolsDashboard.tsx (2)
utils/processToolsData.ts (1) (1)
  • processToolsData (9-100)
types/components/tools/ToolDataType.ts (1) (1)
  • ToolsListData (40-46)
🪛 ESLint
utils/processToolsData.ts

[error] 1-4: Run autofix to sort these imports!

(simple-import-sort/imports)


[error] 4-4: All imports in the declaration are only used as types. Use import type.

(@typescript-eslint/consistent-type-imports)


[error] 57-57: Insert ⏎··········

(prettier/prettier)


[error] 58-58: Insert ··

(prettier/prettier)


[error] 59-59: Replace ·········· with ············

(prettier/prettier)


[error] 60-60: Insert ··

(prettier/prettier)


[error] 61-61: Replace } with ··}⏎········

(prettier/prettier)


[error] 99-99: Expected blank line before this statement.

(padding-line-between-statements)

⏰ Context from checks skipped due to timeout of 180000ms (1)
  • GitHub Check: Lighthouse CI
🔇 Additional comments (23)
components/navigation/MobileNavMenu.tsx (1)

88-88: CSS class order has been changed for consistency.

The class order in these Link components has been modified from 'cursor-pointer flex' to 'flex cursor-pointer' for better consistency across the codebase. This change maintains the same visual presentation while improving code uniformity.

Also applies to: 98-98, 107-107

config/all-tags.json (1)

1-1: Reordered tags and fixed capitalization.

The reordering of entries in the "languages" array (moving "Kotlin" to the beginning) and renaming "Kubernetes-native" to "Kubernetes-Native" in the "technologies" array improves consistency. This change supports the new processToolsData function which uses these tags for color mapping.

components/tools/CategoryDropdown.tsx (1)

4-4: Good improvement: dynamic data processing replaces static imports.

Switching from a static JSON import to the processToolsData() function allows for dynamic data processing and caching, which can improve performance and maintainability. This approach also enables the application of color mapping to languages and technologies based on the all-tags.json file.

Also applies to: 10-10

utils/processToolsData.ts (3)

7-12: Well-implemented caching mechanism.

The use of a module-level cache variable is an excellent approach to avoid unnecessary reprocessing of the data, which can improve performance, especially if this function is called frequently.


13-40: Good tag color mapping implementation with proper error handling.

The code effectively builds a color mapping from the tags data, handling both flat arrays and nested structures with separate arrays for languages and technologies. This robust approach ensures that the function works correctly regardless of the structure of the tags data.


79-95: Efficient processing of tools from multiple sources.

The approach of iterating over both automated and manual tools sources is efficient and maintainable. The code correctly handles the case where a category might already exist in the result object, ensuring that tools are properly aggregated.

components/tools/ToolsDashboard.tsx (3)

5-5: LGTM! Added import for the new data processing utility.

The addition of the processToolsData import supports the new dynamic data processing approach for tools data.


16-16: Correctly replaced static data with dynamic processing function.

This change shifts from using a static JSON data source to a dynamically processed one, allowing for better handling of tool data from both automated and manual sources.


63-63: Good addition of explicit type annotation.

Adding the explicit <ToolsListData> type annotation to the useMemo hook improves type safety by ensuring the memoized value conforms to the expected data structure.

config/tools-automated.json (6)

14-14: Added missing language field to AsyncAPI Server API.

Adding the TypeScript language field to the AsyncAPI Server API entry appropriately categorizes this tool, fulfilling the PR objective to add missing language fields.

Also applies to: 35-35


47-90: Added SIO-AsyncAPI entries with complete metadata.

The addition of SIO-AsyncAPI entries with proper language (Python), technology (Socket.IO, Flask), and links fulfills the PR objective of adding missing fields and links.


97-136: Added AsyncAPI.Net entries with complete metadata.

Added complete information for AsyncAPI.Net including C# language, .NET and ASP.NET technologies, and appropriate categorization. This supports the PR goal of adding missing fields.


270-309: Enhanced AsyncAPI Modelina entries with missing fields.

Updated the AsyncAPI Modelina entries with TypeScript language and added technology fields (React JS, Docker) to provide more complete metadata.


935-968: Renamed and updated AsyncAPI Validation entries.

Replaced AsyncAPI.Net entries with AsyncAPI Validation in the Validators section, adding appropriate TypeScript language and Node.js technology fields.


1-1708:

❓ Verification inconclusive

Verify for duplicate entries.

There appear to be many duplicate entries throughout the file, such as tools appearing twice with identical information. While these might be intentional, it would be good to confirm that duplicates are needed in the data structure.


🏁 Script executed:

#!/bin/bash
# Check for potential duplicate entries in tools-automated.json

echo "Counting duplicate tool titles in tools-automated.json:"
jq -r '.[][] | select(.toolsList != null) | .toolsList[].title' config/tools-automated.json | sort | uniq -c | sort -nr | grep -v '^\s*1\s'

Length of output: 355


Duplicate Entries Verification in config/tools-automated.json

It appears that duplicate tool entries (e.g., "AsyncAPI Server API", "SIO-AsyncAPI", etc.) exist. To verify these duplicates correctly, please run the following revised jq command:

#!/bin/bash
echo "Counting duplicate tool titles in tools-automated.json (new query):"
jq -r 'to_entries[] | select(.value.toolsList != null) | .value.toolsList[] | .title' config/tools-automated.json | sort | uniq -c | sort -nr | grep -v '^\s*1\s'

Once you confirm whether these duplicates are intentional or not, please adjust the file if necessary.

config/tools-manual.json (8)

2-32: Reorganized API section with complete metadata.

The API section has been properly restructured to include tools with complete information including languages, technologies, and all necessary links.


33-179: Enhanced Code-first tools section with comprehensive details.

Added several new code-first tools with complete metadata including languages (C#, Python, Go/Golang, Java, Kotlin), technologies, and appropriate links.


182-223: Added MultiAPI Generator and updated Node-RED plugin.

The Code Generators section now includes a new MultiAPI Generator entry and updates to the Node-RED AsyncAPI plugin with proper HTML language attribution.


225-263: Added comprehensive Converters section.

Enhanced the Converters section with AsyncAPI-format, Converter, and Converter-Go tools, all with appropriate language and technology fields.


297-396: Expanded Documentation Generators section with new tools.

Added the new Bump.sh tool and updated technology information for asyncapi-asciidoc-template from Maven to React JS, providing more accurate categorization.


512-552: Enriched Mocking and Testing section.

Added comprehensive information for testing tools including Microcks, MultiAPI Converter, and Virtualan with proper language and technology metadata.


643-675: Added Compare tools section with detailed metadata.

The Compare tools section now includes Api-Smart-Diff and jasyncapicmp tools with proper language and technology attribution.


722-722: Consistent data structure across all categories.

The file maintains a consistent structure throughout all categories, even for those with empty toolsList arrays, which ensures proper parsing by the application.

Copy link
Contributor

@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: 0

🧹 Nitpick comments (3)
utils/processToolsData.ts (3)

9-10: Fix space after comment slashes

There should be a space after // in the comment.

-//Interface for tool object data
+// Interface for tool object data
🧰 Tools
🪛 ESLint

[error] 9-9: Expected space or tab after '//' in comment.

(spaced-comment)


69-79: Fix indentation in the array definition.

The indentation in the array definition for processedLanguage needs to be consistent.

  const processedLanguage = tool.filters?.language
    ? [
-        {
-          name: tool.filters.language,
-          color: tagColorMap[tool.filters.language]?.color || '#cccccc',
-          borderColor: tagColorMap[tool.filters.language]?.borderColor || '#999999'
-        }
+      {
+        name: tool.filters.language,
+        color: tagColorMap[tool.filters.language]?.color || '#cccccc',
+        borderColor: tagColorMap[tool.filters.language]?.borderColor || '#999999'
+      }
      ]
    : undefined;
🧰 Tools
🪛 ESLint

[error] 72-72: Insert ··

(prettier/prettier)


[error] 73-73: Insert ··

(prettier/prettier)


[error] 74-74: Insert ··

(prettier/prettier)


[error] 75-75: Insert ··

(prettier/prettier)


[error] 76-76: Insert ··

(prettier/prettier)


[error] 77-77: Insert ··

(prettier/prettier)


13-14: Consider stronger typing for the links property.

The any type for the links property could be replaced with a more specific interface to improve type safety.

-  links: any;
+  links: {
+    github?: string;
+    documentation?: string;
+    website?: string;
+    [key: string]: string | undefined;
+  };
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7ee5fef and 27dd0cd.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • pages/casestudies/[id].tsx (1 hunks)
  • utils/processToolsData.ts (1 hunks)
🧰 Additional context used
🪛 ESLint
utils/processToolsData.ts

[error] 9-9: Expected space or tab after '//' in comment.

(spaced-comment)


[error] 72-72: Insert ··

(prettier/prettier)


[error] 73-73: Insert ··

(prettier/prettier)


[error] 74-74: Insert ··

(prettier/prettier)


[error] 75-75: Insert ··

(prettier/prettier)


[error] 76-76: Insert ··

(prettier/prettier)


[error] 77-77: Insert ··

(prettier/prettier)

⏰ Context from checks skipped due to timeout of 180000ms (1)
  • GitHub Check: Lighthouse CI
🔇 Additional comments (8)
utils/processToolsData.ts (7)

1-8: Good implementation of caching mechanism.

The caching implementation using a module-level variable is an effective approach to avoid unnecessary reprocessing of data, improving performance for repeated calls.


10-21: Well-structured interface definition.

The RawToolData interface provides a clear contract for the incoming tool data structure with appropriate types for each property.


27-53: Robust tag color mapping implementation.

The code handles multiple data structures (flat array or separate arrays for languages/technologies) gracefully. This defensive coding approach ensures compatibility with different formats of the allTags data.


59-68: Good processing of technology filters.

The implementation properly maps technology tags and adds color information from the tag color map. The fallback colors (#cccccc and #999999) provide a safety net when tags don't have defined colors.


81-93: Clean transformation of tool data.

The transformation of null descriptions to undefined values ensures consistent data handling. The code properly structures the tool object with the processed language and technology information.


95-111: Efficient processing of multiple data sources.

The approach of iterating over both automated and manual tools sources is systematic and handles category initialization and tool processing properly.


113-117: Effective caching strategy.

Caching the processed data before returning it ensures that subsequent calls to this function will be efficient, which is important for UI performance.

pages/casestudies/[id].tsx (1)

45-45: Improved type safety with explicit type annotation.

Adding the HeadingTypeStyle type annotation to the typeStyle variable enhances type safety and code readability. This is a good TypeScript practice that helps catch potential type errors at compile time.

@Siddhant-Pragyan-Sinha
Copy link
Contributor Author

Siddhant-Pragyan-Sinha commented Mar 21, 2025

Hi @derberg , @akshatnema, @anshgoyalevil, @Mayaleeeee, and @asyncapi-bot-eve,

I have updated the code to fix the Netlify deployment issues but I am receiving 1 failing check ([Lighthouse CI / Lighthouse CI (pull_request_target)). Could you please review and share the changes to be done.

Looking forward to your valuable feedback! 😊

Thanks! 🚀

Copy link
Contributor

@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: 0

🧹 Nitpick comments (10)
markdown/docs/tools/generator/generator-template.md (1)

17-27: New "Prerequisites" Section Added

The addition of the "Prerequisites" section helps set clear expectations for users before they start following the tutorial. The list is concise and provides direct links to the necessary tools and documentation. Please double-check that the relative link for the Template Development Guide is correct and works as expected in your repository context.

dashboard.json (1)

184-200: New Hot Discussion Entry – Proposal for Versioning
A new hot discussion entry for adding a version field to support more granular versioning has been added. The entry includes all required keys (id, isPR, isAssigned, title, author, resourcePath, repo, labels, and score). Please verify that the label structure and score value conform with the other discussion entries and that this new discussion is properly sorted within your dashboard logic.

config/tools-automated.json (8)

5-24: Duplicate API Entry Detected
Within the “APIs” section, two entries for “AsyncAPI Server API” (lines 5–24 and 25–44) are nearly identical. If these duplicates are not desired, please remove one to avoid redundancy. If they are meant to serve different purposes, consider adding a distinguishing factor (for example, extra link fields or filter differences).


95-137: AsyncAPI.Net Tool Repeated in Code‑first Tools
Two entries for “AsyncAPI.Net” are present with identical descriptions and nearly identical link information (lines 95–115 and 117–137). Please confirm that both entries are required. If not, consolidating these duplicates would improve maintainability and reduce potential confusion.


378-429: ZenWave SDK Updates in Code Generators
Two “ZenWave SDK” entries appear in the “Code Generators” section (lines 378–404 and 405–429). According to the PR objectives and the high‑level summary, some tools were meant to be removed or replaced. Verify that these ZenWave SDK entries are updated as intended. In addition, consider whether two nearly identical entries are necessary.


1099-1227: Multiple AsyncAPI CLI Entries in CLIs Section
Within the “CLIs” section, several AsyncAPI CLI entries are listed (lines 1099–1227). In particular, there are duplicate entries with the same description and nearly identical links. One pair uses the official repo URL (https://github.com/asyncapi/cli), and another pair uses an alternative fork (https://github.com/hkirat/asyncapi-fork). Please confirm that both sets are purposeful. If the intent is to offer an alternative CLI, consider adding additional descriptive details to differentiate them.


1274-1314: Duplicate IDE Extension – jAsyncAPI Plugin
Two jAsyncAPI - IDEA plugin entries (lines 1274–1293 and 1295–1301) appear with identical details. Consolidating them would simplify the list unless separate entries are needed for different contexts.


1316-1349: Duplicate asyncapi‑preview Entries in IDE Extensions
There are two nearly identical “asyncapi-preview” entries (lines 1316–1332 and 1334–1349). Verify whether these duplicates are intentional. If not, please remove one copy to avoid redundancy in the extension listing.


1393-1627: Duplication Across Generator Templates
Within the “AsyncAPI Generator Templates” section, multiple templates appear more than once––for example, duplicate entries for:
• Node.js Multiprotocol Template (lines 1393–1409 and again at 1433–1449)
• Java Spring Template (lines 1411–1431 and lines 1451–1471)
• Node.js Websockets Template (lines 1473–1489 and lines 1491–1507)
• Java Spring Cloud Stream Template (lines 1509–1528 and again at 1529–1549)
• Java Template (lines 1551–1569 and lines 1571–1589)
• HTML Template (lines 1591–1607 and lines 1609–1625)
Such duplication can be error‑prone. Please review and confirm that duplicates are intentional (perhaps to support different filtering or categorization scenarios). If not, consolidating them should be considered.


1709-1710: Trailing JSON Formatting
The closing brace at the end of the file (line 1709) is now marked with a “~”. Please ensure that the JSON file ends with a proper newline and that any trailing commas are in line with your project’s JSON style guidelines.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 27dd0cd and e29fb73.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (5)
  • CODEOWNERS (1 hunks)
  • config/MAINTAINERS.json (1 hunks)
  • config/tools-automated.json (21 hunks)
  • dashboard.json (1 hunks)
  • markdown/docs/tools/generator/generator-template.md (1 hunks)
🔇 Additional comments (4)
CODEOWNERS (1)

18-18: LGTM: Triager addition is properly formatted.

The addition of "vishvamsinh28" as a code triager is consistent with the maintainer addition in the MAINTAINERS.json file. This change appropriately expands the code triaging responsibilities.

config/MAINTAINERS.json (1)

1005-1014: LGTM: New maintainer entry is properly structured.

The addition of Vishvamsinh Vaghela as a maintainer for the website repository follows the consistent format of other maintainer entries. All required fields are present and properly formatted.

dashboard.json (1)

203-217: New Good-First-Issue Entry Added
A new item regarding “Misaligned cards in ambassadorList” has been inserted in the goodFirstIssues section. Note that no “score” field is provided here, which appears consistent with other good first issue entries. Please confirm that the omission of score is intentional.

config/tools-automated.json (1)

681-701: Updated Zod Sockets Entry in Frameworks
An updated “Zod Sockets” entry (lines 681–701) now appears in the “Frameworks” section. The language and technology fields seem correctly set (“TypeScript” with “Node.js” and “TypeScript” as the technology). Please confirm that this revised entry aligns with the intended categorization and that no fields were inadvertently changed.

@Siddhant-Pragyan-Sinha Siddhant-Pragyan-Sinha marked this pull request as ready for review March 24, 2025 09:58
@Siddhant-Pragyan-Sinha Siddhant-Pragyan-Sinha marked this pull request as draft March 24, 2025 10:36
@Siddhant-Pragyan-Sinha Siddhant-Pragyan-Sinha marked this pull request as ready for review March 26, 2025 10:09
Copy link
Contributor

@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

🧹 Nitpick comments (2)
config/tools-manual.json (2)

18-30: Consistent Data Type for 'language' Field
The "AsyncAPI-Directory by APIs.guru" entry uses a string for the "language" field, while the preceding entry uses an array. Please verify the intended data type in the underlying schema and update either one for consistency (e.g., change "language": "JavaScript", to "language": ["JavaScript"], if an array is expected).


438-468: Frameworks Section and Duplicate Entry Concern
The "Frameworks" section now lists both "Asynction" and "FastStream." Note that "FastStream" was already added in the "Code-first tools" section. If this duplication is intentional to indicate multi-category classification, consider referencing a single source to avoid redundancy.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 557a7a9 and ccc777e.

📒 Files selected for processing (3)
  • config/all-tags.json (1 hunks)
  • config/tools-automated.json (23 hunks)
  • config/tools-manual.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • config/all-tags.json
  • config/tools-automated.json
🔇 Additional comments (17)
config/tools-manual.json (17)

6-16: API Tracker Entry Added
The new "API Tracker - AsyncAPI specs" entry correctly includes the required fields (title, description, links, filters) and meets the PR objectives.


33-179: Code-first Tools Section Review
All new entries in the "Code-first tools" section – including AsyncApi.Net.Generator, EventBridge Atlas, FastStream, Go AsyncAPI, Java AsyncAPI, and KnstEventBus – now include the missing language, technology, and link fields. The ordering appears to have been updated according to the current website layout.


182-224: Code Generators Section Updated
The "Code Generators" section has been reordered and enriched with new entries like "MultiAPI Generator." All entries now provide proper links and filter details in line with the PR objectives.


225-264: Converters Section Enhancements
Entries in the "Converters" section (including "AsyncAPI-format", "Converter", and "Converter-Go") have been updated with improved descriptions, additional link information, and complete filter details. Please double-check that each tool’s repository URL correctly maps to its intended tool to prevent conflicts with entries in other sections.


265-296: Directories Section Consistency
The "Directories" section now mirrors the updated API entries with consistent fields. The duplication of these entries appears to be intentional for categorization purposes, so no further action is needed.


297-397: Documentation Generators Section Review
This section now includes several updated entries—such as "Bump.sh," "Cupid," "KnstEventBus," "Springwolf," and "Widdershins"—with the newly added links, missing fields, and filter enhancements. The updates comprehensively address the omissions noted in the issue.


398-401: Editors Section Empty
The "Editors" section is intentionally left empty. This is acceptable when there are no editor tools available.


402-419: UI Components Section Update
The "UI components" section now includes the "Api-Diff-Viewer" entry with complete metadata, which aligns with the new requirements.


420-437: DSL Section Review
The DSL section, featuring the "BOATS" tool, is correctly updated with the required links and filter fields.


469-511: GitHub Actions Section Updated
The "GitHub Actions" section now includes updated entries complete with correct links and metadata. The entries meet the intended design and technical requirements.


512-553: Mocking and Testing Section Review
Entries in the "Mocking and Testing" section (e.g., "Microcks," "MultiAPI Converter," and "Virtualan") have been updated with improved descriptions, links, and filter information. These changes align well with the overall improvements.


554-642: Validators Section Comprehensive Update
The "Validators" section now contains multiple updated entries with consistent language and technology filters. This robust update should enhance the overall tool validation capabilities.


643-676: Compare Tools Section Review
The "Compare tools" section, including "Api-Smart-Diff" and "jasyncapicmp," is updated with the necessary fields and link information. The reordering reflects a logical grouping per the updated website layout.


694-710: Bundlers Section Check
The "Bundlers" section now includes the "Api-ref-bundler" entry with appropriate link and filter information. The modifications meet the expected changes.


711-714: IDE Extensions Section Status
The "IDE Extensions" section is currently empty. This is acceptable if there are no IDE extension tools available at the moment.


715-718: AsyncAPI Generator Templates Section Empty
The "AsyncAPI Generator Templates" section remains empty, which is fine if there are no templates to list at this time.


719-722: Others Section Empty
The "Others" section is empty, which is acceptable when no additional tools fall under this category.

@sambhavgupta0705
Copy link
Member

closing

@Siddhant-Pragyan-Sinha Siddhant-Pragyan-Sinha deleted the title-cards-3881-2 branch April 6, 2025 11:57
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.

2 participants