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
| Preset | Description | Validates |
|---|---|---|
| nestjs | NestJS framework | src/, modules, controllers, services, DTOs |
| node-ts | Node.js TypeScript | src/, dist/, tests/, types/ |
| node-js | Node.js JavaScript | src/, lib/, tests/ |
Frontend Presets
| Preset | Description | Validates |
|---|---|---|
| react-ts | React TypeScript | src/, components, hooks, pages, public/ |
| react-js | React JavaScript | src/, components, pages, public/ |
| nextjs | Next.js | app/, pages/, components/, public/ |
| vite-react | Vite + React | src/, public/, index.html |
Mobile Presets
| Preset | Description | Validates |
|---|---|---|
| react-native-ts | React Native TS | src/, components, screens, navigation/ |
| react-native-js | React Native JS | src/, components, screens/ |
| expo | Expo | app/, components/, assets/ |
Using Presets via CLI
bash
# NestJS projectnpx fs-guard --preset nestjs
# React TypeScriptnpx fs-guard --preset react-ts
# Next.jsnpx fs-guard --preset nextjsExtending Presets
Extend a preset in your config file and add custom rules:
typescript
// fs-guard.config.tsimport 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 --listPresets are designed as starting points. Feel free to extend them with custom rules specific to your team's conventions.