Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Fix the controller type, it is now optional to give a type to the controller - #314

Merged
w3nl merged 1 commit into
v1.xfrom
feature/fix-types
Mar 6, 2025
Merged

Fix the controller type, it is now optional to give a type to the controller#314
w3nl merged 1 commit into
v1.xfrom
feature/fix-types

Conversation

@w3nl

@w3nlw3nl commented Mar 6, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Updated the application package version to 1.7.5.
  • Refactor

    • Implemented internal enhancements to improve overall maintainability.

@w3nl
w3nl requested a review from CopilotMarch 6, 2025 08:37
@w3nlw3nl self-assigned this Mar 6, 2025
@coderabbitai

coderabbitaiBot commented Mar 6, 2025

Copy link
Copy Markdown

Walkthrough

This pull request updates two files. The package.json file now shows a version increment from 1.7.4 to 1.7.5. Additionally, in src/server.js, the JSDoc typedef for Controller has been modified, updating the template declaration from @template T to @template [T=unknown], making the generic parameter optional with a default of unknown.

Changes

FilesChange Summary
package.jsonUpdated version number from 1.7.4 to 1.7.5
src/server.jsModified JSDoc typedef for Controller by changing @template T to @template [T=unknown]

Possibly related PRs

  • Fix the Controller type #272: Involves modifications to the Controller typedef in src/server.js, with contrasting adjustments to the default type behavior.

Suggested reviewers

  • nickspaargaren
  • pieterwigboldus-visma

Poem

Hoppity hops in the code glen,
A version bump and typedef mend,
In package.json, numbers align,
While server.js refines design,
I nibble on bugs with carrot zeal,
Celebrating changes with a joyful squeal!
🥕🐇 Happy coding from a rabbit's wheel!


📜 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 5fff8b0 and f679441.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • package.json (1 hunks)
  • src/server.js (1 hunks)

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

@w3nl
w3nl changed the base branch from main to v1.xMarch 6, 2025 08:37
@w3nl

w3nl commented Mar 6, 2025

Copy link
Copy Markdown
ContributorAuthor

@coderabbitai summary

@coderabbitai

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

PR Overview

This PR updates API configuration and error handling by making the controller type optional along with miscellaneous improvements such as updated Node.js versions in CI workflows. Key changes include:

  • Addition of a new ESLint configuration file.
  • Removal of the hardcoded "secret" and addition of an "unauthorizedHandler" within the API configuration.
  • Adjustments in the express callback and corresponding tests, as well as updates to Node.js versions in several GitHub workflows.

Reviewed Changes

FileDescription
eslint.config.jsNew ESLint configuration with recommended plugin settings
README.mdRemoval of secret and addition of unauthorizedHandler
.github/workflows/npm-publish.ymlUpdated Node.js version from 20 to 22 in NPM publish workflow
src/express-callback.jsUpdated callback to include the new “mock” parameter in parseParams call
.github/workflows/vulnerabilities.ymlUpdated Node.js version documentation
src/express-callback.test.jsTest file changes; potential change in arrow function return behavior
.github/workflows/cpd.ymlUpdated Node.js version
.github/workflows/test.ymlTest matrix updated with newer Node.js versions
src/api.jsAPI constructor updated with unauthorizedHandler and customizeAjv
src/error-status.jsMinor formatting changes in error status configuration
src/error-status.test.jsTest adjustments matching the error status logic
.github/workflows/sonarcloud.ymlUpdated Node.js version and SonarCloud action version

Copilot reviewed 32 out of 32 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/express-callback.test.js:73

  • The arrow function for 'controller' in the test no longer returns an object literal because it uses a block body without an explicit return. Please update it to return the object, for example by wrapping the object literal in parentheses.
const controller = () => { test: 'ok' }

const parameters = parseParams({
query: allParameters,
spec: context.operation.parameters,
mock

CopilotAIMar 6, 2025

Copy link

Choose a reason for hiding this comment

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

The diff introduces a standalone 'mock' on its own line in the parseParams call, which may break the object literal syntax. Please ensure that 'mock' is included as a property in the object literal (e.g. using shorthand notation) and that the object is correctly terminated with a comma if needed.

Suggested change
mock
mock,

Copilot uses AI. Check for mistakes.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (1)
README.md (1)

108-109: Enhance API Configuration with Security Handlers.
Including securityHandlers and unauthorizedHandler in the Api instantiation improves error handling. Additionally, as per the PR objective ("Fix the controller type, it is now optional to give a type to the controller"), please verify that your documentation and examples clearly reflect that controller type is now optional.

🛑 Comments failed to post (3)
.vscode/launch.json (1)

2-21: ⚠️ Potential issue

Formatting changes look good but there's a trailing comma issue.

The indentation changes improve readability, however there's a syntax error at line 19 - a trailing comma before the closing brace which is invalid in JSON.

 "stopOnEntry": false,
"console": "integratedTerminal",
- }+ }

Remove the trailing comma after "integratedTerminal" to make this valid JSON.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: Expected a property but instead found '}'.

Expected a property here.

(parse)

src/api.js (1)

108-110: ⚠️ Potential issue

Fix duplicate request parameter in handleRequest.

The request parameter is passed twice to the api.handleRequest method, which likely indicates a bug.

router.use((request, response) =>
- api.handleRequest(request, request, response)+ api.handleRequest(request, response)
)
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

 router.use((request, response) =>
api.handleRequest(request, response)
)
src/server.test.js (1)

84-96: ⚠️ Potential issue

Remove deprecated 'secret' parameter from Api constructor.

The secret parameter (line 88) is still being passed to the Api constructor, but it has been removed from the constructor definition in src/api.js.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
- secret: envExample.SECRET,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})
📝 Committable suggestion

‼️IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

const api = new Api({
version: 'v1',
specification: openAPISpecification,
controllers,
securityHandlers,
unauthorizedHandler,
ajvOptions: { allErrors: true },
customizeAjv: (originalAjv) => {
originalAjv.addFormat('date', () => true)
return originalAjv
}
})

@w3nl
w3nl merged commit b058e4d into v1.xMar 6, 2025
Sign up for freeto 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

@w3nl