Skip to content

update#28

Merged
joshunrau merged 21 commits intomainfrom
dev
Mar 29, 2025
Merged

update#28
joshunrau merged 21 commits intomainfrom
dev

Conversation

@joshunrau
Copy link
Collaborator

@joshunrau joshunrau commented Mar 29, 2025

  • fixes/improvements for e2e test helper when used in monorepo
  • improve error logging format
  • add new libnest plugin for vitest

Summary by CodeRabbit

  • New Features

    • Introduced a new command-line flag to disable watch mode, offering greater flexibility when running commands.
    • Added an enhanced plugin for improved testing integration.
    • Added a new TypeScript schema for MongoDB statistics validation.
  • Refactor

    • Improved error logging with structured and detailed output for better clarity.
    • Enhanced type safety and error handling across several functionalities for greater reliability.
    • Updated method signatures to specify return types, improving clarity and type safety.
  • Chores

    • Updated dependencies and refined configuration settings to ensure a more robust and stable system.

@joshunrau joshunrau merged commit 17e8fb5 into main Mar 29, 2025
1 check failed
@coderabbitai
Copy link

coderabbitai bot commented Mar 29, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This pull request introduces multiple improvements across configuration, type safety, testing, and error handling. It adds explicit return types in TypeScript, refines CLI watch options with a new --no-watch flag, and updates dependency versions and module exports. Test suites receive enhanced assertions along with new schemas for MongoDB statistics validation and a Vitest plugin for code transformation. Changes are applied across ESLint, CLI scripts, logging modules, Prisma components, documentation, and testing helpers.

Changes

File(s) Change Summary
eslint.config.js Added explicitReturnTypes: true in the TypeScript settings.
package.json, typedoc.config.js, vitest.config.js Added new module export (./testing/plugin), updated dependency (@douglasneuroinformatics/libjs version, added unplugin-swc), modified TypeDoc exclusions, and replaced SWC config with libnest() and dynamic root.
src/cli/bin/libnest-dev, src/cli/libnest-dev.js Enhanced CLI scripts to conditionally apply watch flags and added a --no-watch option for flexible command-line argument handling.
example/app.ts, src/app/app.container.ts, src/docs/docs.factory.ts, src/meta/plugins/docs.ts, src/meta/plugins/prisma.ts, src/meta/plugins/swc.ts, src/modules/prisma/prisma.decorators.ts, src/modules/prisma/prisma.factory.ts, src/modules/prisma/prisma.service.ts Updated multiple function/method signatures to include explicit return types (e.g., void, Promise<void>, ExtendedPrismaClient) to enhance type clarity and safety.
src/modules/logging/__tests__/json.logger.test.ts, src/modules/prisma/__tests__/prisma.service.test.ts, src/testing/__tests__/plugin.test.ts Revised tests with stricter assertions and added cases for new error-handling scenarios and plugin functionality validation.
src/modules/logging/json.logger.ts Introduced a new parseErrorLike method to parse and structure error information within logs.
src/schemas/mongo-stats.schema.ts, src/testing/plugin.ts Created a Zod schema for MongoStats and a new Vitest plugin that supports SWC transformations with configuration resolution.
src/testing/helpers/e2e.ts Replaced MongoMemoryServer with MongoMemoryReplSet, updated function parameter naming, and introduced new testing interfaces for improved E2E testing structure.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI
    participant NodeApp

    User->>CLI: Execute libnest-dev with arguments
    CLI->>CLI: Check for '--no-watch' flag in arguments
    alt Flag present
        CLI->>NodeApp: Run command without watch flags
    else
        CLI->>NodeApp: Run command with watch flags (--watch, --watch-preserve-output)
    end
Loading
sequenceDiagram
    participant Vitest
    participant Plugin
    participant Env

    Vitest->>Plugin: Initialize plugin with optional parameters
    Plugin->>Plugin: Validate provided config parameter
    Plugin->>Env: Check for LIBNEST_CONFIG_FILEPATH environment variable
    alt Config found
        Plugin-->>Vitest: Return configuration with resolved LIBNEST_CONFIG_FILEPATH
    else
        Plugin-->>Vitest: Throw error (configuration file not found)
    end
Loading

Suggested labels

released

Poem

I’m a rabbit in a code field, hopping with glee,
Changes bloom like wildflowers in our repository.
Explicit types shine bright as carrots in the sun,
CLI flags and plugins—oh, what fun!
With tests and logs all in perfect array,
I celebrate each commit in my own rabbit way! 🐰🌟


📜 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 7af812c and 97c6766.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (22)
  • eslint.config.js (1 hunks)
  • example/app.ts (3 hunks)
  • package.json (3 hunks)
  • src/app/app.container.ts (1 hunks)
  • src/cli/bin/libnest-dev (1 hunks)
  • src/cli/libnest-dev.js (1 hunks)
  • src/docs/docs.factory.ts (1 hunks)
  • src/meta/plugins/docs.ts (1 hunks)
  • src/meta/plugins/prisma.ts (1 hunks)
  • src/meta/plugins/swc.ts (1 hunks)
  • src/modules/logging/__tests__/json.logger.test.ts (4 hunks)
  • src/modules/logging/json.logger.ts (3 hunks)
  • src/modules/prisma/__tests__/prisma.service.test.ts (1 hunks)
  • src/modules/prisma/prisma.decorators.ts (1 hunks)
  • src/modules/prisma/prisma.factory.ts (1 hunks)
  • src/modules/prisma/prisma.service.ts (2 hunks)
  • src/schemas/mongo-stats.schema.ts (1 hunks)
  • src/testing/__tests__/plugin.test.ts (1 hunks)
  • src/testing/helpers/e2e.ts (1 hunks)
  • src/testing/plugin.ts (1 hunks)
  • typedoc.config.js (1 hunks)
  • vitest.config.js (1 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

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

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

CodeRabbit Commands (Invoked using PR comments)

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

Other keywords and placeholders

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

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.

@github-actions
Copy link

🎉 This PR is included in version 4.1.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@coderabbitai coderabbitai bot mentioned this pull request Apr 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant