@craftycodesmith/node-structure
v1.0.4
Published
Feature-based architecture generator
Readme
Feature-Based CLI Generator
A zero-dependency CLI tool to scaffold Node.js projects with a Feature-Based (Modular) Architecture using TypeScript.
🚀 Quick Start
You can run this tool directly using npx without installation:
# Initialize a new project
npx @craftycodesmith/node-structure init [folder-name]
# Generate a feature module
npx @craftycodesmith/node-structure res [resource-name]📦 Commands
init [folder-name]
Creates a new project with the feature-based architecture structure.
Usage:
npx @craftycodesmith/node-structure init my-projectIf no folder name is provided, it initializes in the current directory.
What it does:
- Creates the directory structure
- Runs
npm init -y - Installs TypeScript and
@types/node - Generates a
tsconfig.json - Sets up base folders (
features,common,config,middleware)
res [resource-name]
Generates a new feature module with Controller, Service, and Model files.
Usage:
npx @craftycodesmith/node-structure res UserThis creates:
src/features/user/
├── user.controller.ts
├── user.service.ts
└── user.model.tsEach file includes boilerplate code to get you started quickly.
🏗 Generated Architecture
The tool enforces a modular structure where each functional area of your application lives in its own "feature" folder.
project-root/
├── src/
│ ├── features/
│ │ └── [feature-name]/
│ │ ├── [name].controller.ts
│ │ ├── [name].service.ts
│ │ └── [name].model.ts
│ ├── common/ # Shared utilities and helpers
│ ├── config/ # Environment and DB configurations
│ └── middleware/ # Global Express/Koa middlewares
├── tsconfig.json
└── package.json🛠 Features
- Zero Dependencies: Lightweight and fast
- TypeScript Ready: Automatically generates
tsconfig.jsonand installs@types/nodeandtypescript - Automated Setup: Runs
npm init -yand dependency installation automatically - Clean Code: Generates boilerplate classes and interfaces for rapid development
- Modular Architecture: Each feature is self-contained for better maintainability
📝 Example Workflow
# 1. Create a new project
npx @craftycodesmith/node-structure init my-app
# 2. Navigate to the project
cd my-app
# 3. Generate features
npx @craftycodesmith/node-structure res User
npx @craftycodesmith/node-structure res Product
npx @craftycodesmith/node-structure res Order
# 4. Start building!