Presets

Built-in Presets

FS Guard includes presets for common project types. Use them directly via CLI or extend them in your config:

Backend Presets

PresetDescriptionValidates
nestjsNestJS frameworksrc/, modules, controllers, services, DTOs
node-tsNode.js TypeScriptsrc/, dist/, tests/, types/
node-jsNode.js JavaScriptsrc/, lib/, tests/

Frontend Presets

PresetDescriptionValidates
react-tsReact TypeScriptsrc/, components, hooks, pages, public/
react-jsReact JavaScriptsrc/, components, pages, public/
nextjsNext.jsapp/, pages/, components/, public/
vite-reactVite + Reactsrc/, public/, index.html

Mobile Presets

PresetDescriptionValidates
react-native-tsReact Native TSsrc/, components, screens, navigation/
react-native-jsReact Native JSsrc/, components, screens/
expoExpoapp/, components/, assets/

Using Presets via CLI

bash
# NestJS project
npx fs-guard --preset nestjs
# React TypeScript
npx fs-guard --preset react-ts
# Next.js
npx fs-guard --preset nextjs

Extending Presets

Extend a preset in your config file and add custom rules:

typescript
// fs-guard.config.ts
import type { FsGuardConfig } from "@promise-inc/fs-guard";
export const config: FsGuardConfig = {
preset: "react-ts",
rules: {
// Add custom rules on top of react-ts preset
"src/features": {
required: true,
pattern: "*.tsx",
maxDepth: 3,
},
"src/lib": {
required: true,
pattern: "*.ts",
},
},
};

List Available Presets

View all available presets:

bash
npx fs-guard --list
Presets are designed as starting points. Feel free to extend them with custom rules specific to your team's conventions.