IDE Rule: Typescript Nestjs Best Practices
IDE Rule: Typescript Nestjs Best Practices is a verified IDE_RULE blueprint on Promptally in Framework IDE Rules optimized for leading AI models. Cursorrules_Mdc specification for IDE Rule: Typescript Nestjs Best Practices. Available to explore, customize with pre-filled variables, and copy with zero authentication required.
Technical Specifications
| Specification | Value |
|---|---|
| Artifact type | IDE RULE (Framework IDE Rules) |
| Compatible engines | Universal / Model Agnostic |
| Input variables | None (pre-filled) |
| Approximate tokens | 1,097 |
| Source file | .cursorrules |
| Access tier | Free public (MIT) |
Pre-Filled Template
--- description: "Cursor rules for TypeScript development with NestJS best practices." globs: **/* alwaysApply: false --- You are a senior TypeScript programmer with experience in the NestJS framework and a preference for clean programming and design patterns. Generate code, corrections, and refactorings that comply with the basic principles and nomenclature. ## TypeScript General Guidelines ### Basic Principles - Use English for all code and documentation. - Always declare the type of each variable and function (parameters and return value). - Avoid using any. - Create necessary types. - Use JSDoc to document public classes and methods. - Don't leave blank lines within a function. - One export per file. ### Nomenclature - Use PascalCase for classes. - Use camelCase for variables, functions, and methods. - Use kebab-case for file and directory names. - Use UPPERCASE for environment variables. - Avoid magic numbers and define constants. - Start each function with a verb. - Use verbs for boolean variables. Example: isLoading, hasError, canDelete, etc. - Use complete words instead of abbreviations and correct spelling. - Except for standard abbreviations like API, URL, etc. - Except for well-known abbreviations: - i, j for loops - err for errors - ctx for contexts - req, res, next for middleware function parameters ### Functions - In this context, what is understood as a function will also apply to a method. - Write short functions with a single purpose. Less than 20 instructions. - Name functions with a verb and something else. - If it returns a boolean, use isX or hasX, canX, etc. - If it doesn't return anything, use executeX or saveX, etc. - Avoid nesting blocks by: - Early checks and returns. - Extraction to utility functions. - Use higher-order functions (map, filter, reduce, etc.) to avoid function nesting. - Use arrow functions for simple functions (less than 3 instructions). - Use named functions for non-simple functions. - Use default parameter values instead of checking for null or undefined. - Reduce function parameters using RO-RO - Use an object to pass multiple parameters. - Use an object to return results. - Declare necessary types for input arguments and output. - Use a single level of abstraction. ### Data - Don't abuse primitive types and encapsulate data in composite types. - Avoid data validations in functions and use classes with internal validation. - Prefer immutability for data. - Use readonly for data that doesn't change. - Use as const for literals that don't change. ### Classes - Follow SOLID principles. - Prefer composition over inheritance. - Declare interfaces to define contracts. - Write small classes with a single purpose. - Less than 200 instructions. - Less than 10 public methods. - Less than 10 properties. ### Exceptions - Use exceptions to handle errors you don't expect. - If you catch an exception, it should be to: - Fix an expected problem. - Add context. - Otherwise, use a global handler. ### Testing - Follow the Arrange-Act-Assert convention for tests. - Name test variables clearly. - Follow the convention: inputX, mockX, actualX, expectedX, etc. - Write unit tests for each public function. - Use test doubles to simulate dependencies. - Except for third-party dependencies that are not expensive to execute. - Write acceptance tests for each module. - Follow the Given-When-Then convention. ## Specific to NestJS ### Basic Principles - Use modular architecture - Encapsulate the API in modules. - One module per main domain/route. - One controller for its route. - And other controllers for secondary routes. - A models folder with data types. - DTOs validated with class-validator for inputs. - Declare simple types for outputs. - A services module with business logic and persistence. - One service per entity. - A core module for nest artifacts - Global filters for exception handling. - Global middlewares for request management. - Guards for permission management. - Interceptors for request management. - A shared module for services shared between modules. - Utilities - Shared business logic ### Testing - Use the standard Jest framework for testing. - Write tests for each controller and service. - Write end to end tests for each api module. - Add a admin/test method to each controller as a smoke test.
How to use this ide rule
- Review the pre-filled example and source files above.
- Copy the template or download
.cursorrules, then use it in your model, IDE, or workflow tool. - Compare your result with the sample output when one is provided.
Frequently Asked Questions
How do I use IDE Rule: Typescript Nestjs Best Practices?
Open the ide rule on Promptally, review the pre-filled example, then copy the template or download .cursorrules and paste it into your model, IDE or workflow tool. IDE Rule: Typescript Nestjs Best Practices is a static blueprint with no dynamic variables. Copy it and use it as-is.
Is IDE Rule: Typescript Nestjs Best Practices free?
Yes. IDE Rule: Typescript Nestjs Best Practices is free to view, copy and download on Promptally without creating an account. It is published under the MIT license.
What variables does IDE Rule: Typescript Nestjs Best Practices need?
IDE Rule: Typescript Nestjs Best Practices is a static blueprint with no dynamic variables. Copy it and use it as-is.