scaffzap
v2.0.0
Published
Instantly generate project boilerplate and convert data structures.
Maintainers
Readme
Scaffzap
Scaffzap is a lightning-fast, hybrid CLI tool and Node.js library designed to eliminate boilerplate fatigue. Instantly scaffold pre-configured projects, clone repositories, and convert data structures on the fly directly from your terminal or within your own code.
Features (v2.0.0)
- ** Interactive Scaffolding:** Generate ready-to-code project boilerplates with a single command.
- ** Bring Your Own Boilerplate (BYOB):** Store your own custom templates in
~/.scaffzap/templatesand the CLI will dynamically load them into the menu. - ** Remote Scaffolding:** Instantly clone any public GitHub repository and automatically strip the
.githistory for a clean slate. - ** Post-Generation Automation:** Automatically initializes Git repositories and installs dependencies (
npm,yarn,pnpm, orgo mod). - ** Universal Data Converter:** Read
.json,.csv, or.yamlfiles and instantly translate them into Markdown tables, SQL statements, TypeScript Interfaces, GraphQL Types, Prisma Schemas, or standard JSON arrays. - ** Hybrid Architecture:** Use it globally as a CLI tool or install it locally as an importable utility library.
Installation
As a Global CLI (Recommended for terminal use)
npm install -g scaffzap
As a Local Library (For importing into your code)
npm install scaffzap
CLI Usage
Once installed globally, run scaffzap from anywhere in your terminal.
1. Scaffold a New Project
Run the create command to start the interactive project generator:
scaffzap create
# OR skip the first prompt by passing a name:
scaffzap create my-awesome-app
Current Available Options:
- Custom: Any folder found in
~/.scaffzap/templates - Remote GitHub Repository (Clones directly via URL or
user/repo) - Express + TypeScript
- React + Tailwind (Vite)
- Node CLI (TypeScript + Commander)
- Next.js (App Router)
- Vue 3 (Vite)
- Go REST API (Fiber)
2. Convert Data Files
Run the convert command to translate data structures. It now auto-detects .json, .csv, and .yaml inputs!
scaffzap convert
# OR skip the first prompt by passing the file path:
scaffzap convert ./data/users.csv
Current Available Converters:
- Array ➔ Markdown Table
- Array ➔ SQL Insert Statements
- Array ➔ TypeScript Interfaces
- Array ➔ GraphQL Types
- Array ➔ Prisma Schema
- Array ➔ JSON (Standardize CSV/YAML to JSON)
Custom Templates (BYOB)
You are no longer limited to the built-in boilerplates. Scaffzap allows you to create your own!
- Create a directory at
~/.scaffzap/templates/my-custom-api. - Add your boilerplate files inside that folder.
- Use the
{{PROJECT_NAME}}placeholder inside your code orpackage.json. Scaffzap will automatically replace it with the user's input during generation. - Run
scaffzap createand select your new template from the menu!
Library Usage (API)
Scaffzap exports its core engines so you can build your own automation tools. It supports both CommonJS and ES Modules.
import {
parseInputFile,
jsonToPrisma,
jsonToTsInterface,
getNextJsTemplate
} from 'scaffzap';
// --- CONVERTER EXAMPLES ---
// The parser safely handles .json, .csv, and .yaml files
const data = parseInputFile('./data/users.csv');
// Convert parsed CSV to a Prisma Schema
console.log(jsonToPrisma(data, 'User'));
// Convert parsed CSV to TypeScript Interfaces
console.log(jsonToTsInterface(data, 'User'));
// --- TEMPLATE EXAMPLES ---
// Fetch Boilerplate File Structures programmatically
const files = getNextJsTemplate('my-frontend');
files.forEach(file => {
console.log(`Path: ${file.path}`);
// file.content contains the raw string content
});
Contributing
Contributions, issues, and feature requests are welcome! Check out our Contributing Guide and Code of Conduct if you want to help add more templates or new data converters.
Security
Please review our Security Policy for reporting vulnerabilities.
License
This project is licensed under the MIT License - see the LICENSE file for details.
