Utilizing TypeScript for Edge Computing Applications

Learn how to develop and deploy TypeScript applications optimized for edge computing environments.

0 likes
11 views

Rule Content

{
  "title": "Utilizing TypeScript for Edge Computing Applications",
  "description": "Develop and deploy TypeScript applications optimized for edge computing environments.",
  "category": "TypeScript Cursor Rules",
  "rules": [
    {
      "name": "strict-type-checking",
      "description": "Enable strict type checking to ensure type safety and prevent runtime errors.",
      "applyTo": "tsconfig.json",
      "settings": {
        "compilerOptions": {
          "strict": true,
          "strictNullChecks": true,
          "noImplicitAny": true,
          "noImplicitThis": true,
          "alwaysStrict": true
        }
      }
    },
    {
      "name": "avoid-any-type",
      "description": "Prohibit the use of the 'any' type to maintain type safety.",
      "applyTo": "src/**/*.ts",
      "prohibitedPatterns": ["any"]
    },
    {
      "name": "use-interfaces",
      "description": "Define clear interfaces for data structures to enhance code readability and maintainability.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "interface [A-Za-z0-9]+ {",
          "message": "Define interfaces for data structures."
        }
      ]
    },
    {
      "name": "modular-code-structure",
      "description": "Organize code into small, reusable modules to improve maintainability and scalability.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "export (const|function|class) [A-Za-z0-9]+",
          "message": "Ensure modules export reusable components."
        }
      ]
    },
    {
      "name": "error-handling",
      "description": "Implement proper error handling using try-catch blocks to enhance application reliability.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "try {",
          "message": "Use try-catch blocks for error handling."
        }
      ]
    },
    {
      "name": "code-formatting",
      "description": "Enforce consistent code formatting using Prettier to maintain code readability.",
      "applyTo": "src/**/*.ts",
      "settings": {
        "prettier": {
          "semi": true,
          "singleQuote": true,
          "trailingComma": "all",
          "tabWidth": 2
        }
      }
    },
    {
      "name": "naming-conventions",
      "description": "Follow consistent naming conventions: camelCase for variables and functions, PascalCase for classes and interfaces.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "const [a-z][A-Za-z0-9]* =",
          "message": "Use camelCase for variable names."
        },
        {
          "pattern": "function [a-z][A-Za-z0-9]*\\(",
          "message": "Use camelCase for function names."
        },
        {
          "pattern": "class [A-Z][A-Za-z0-9]*",
          "message": "Use PascalCase for class names."
        },
        {
          "pattern": "interface [A-Z][A-Za-z0-9]*",
          "message": "Use PascalCase for interface names."
        }
      ]
    },
    {
      "name": "async-await",
      "description": "Prefer async/await syntax over Promises for asynchronous operations to improve code readability.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "async function [A-Za-z0-9]+\\(",
          "message": "Use async functions for asynchronous operations."
        },
        {
          "pattern": "await [A-Za-z0-9]+\\(",
          "message": "Use await for handling Promises."
        }
      ]
    },
    {
      "name": "logging",
      "description": "Implement structured logging to facilitate debugging and monitoring.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "console\\.(log|error|warn|info)\\(",
          "message": "Use console methods for logging."
        }
      ]
    },
    {
      "name": "documentation",
      "description": "Provide JSDoc comments for all functions and classes to enhance code maintainability.",
      "applyTo": "src/**/*.ts",
      "enforcePatterns": [
        {
          "pattern": "/\\*\\*\\s*\\n\\s*\\* [A-Za-z0-9 ]+\\n\\s*\\*/\\n\\s*(export )?(const|function|class) [A-Za-z0-9]+",
          "message": "Ensure functions and classes have JSDoc comments."
        }
      ]
    }
  ]
}