@demokit-ai/cli
v0.2.0
Published
CLI for DemoKit - Generate demo fixtures from API specs
Maintainers
Readme
@demokit-ai/cli
CLI for DemoKit - Generate demo fixtures from OpenAPI specs and other sources.
Installation
npm install -g @demokit-ai/cli
# Or use with npx
npx @demokit-ai/cli generateFeatures
- OpenAPI Import - Generate fixtures from OpenAPI/Swagger specs
- Fixture Generation - Create realistic demo data with relationships
- Multiple Outputs - Export to TypeScript, JSON, SQL, or CSV
- Schema Validation - Validate generated data against schemas
- Interactive Mode - Guided fixture generation
- Full TypeScript support
Usage
Generate Fixtures from OpenAPI
# From a local file
demokit generate --input ./openapi.yaml --output ./fixtures
# From a URL
demokit generate --input https://api.example.com/openapi.json --output ./fixtures
# With options
demokit generate \
--input ./openapi.yaml \
--output ./fixtures \
--format typescript \
--count 10 \
--seed 42Initialize a DemoKit Project
demokit init
# With options
demokit init --template nextjs --output ./demoValidate Fixtures
demokit validate --fixtures ./fixtures --schema ./openapi.yamlInteractive Mode
demokit generate --interactiveCommands
demokit generate
Generate demo fixtures from a schema.
Options:
-i, --input <path>- Input OpenAPI spec (file path or URL)-o, --output <dir>- Output directory for fixtures-f, --format <type>- Output format: typescript, json, sql, csv (default: typescript)-c, --count <n>- Number of records per model (default: 5)-s, --seed <n>- Random seed for reproducible output--interactive- Interactive mode with prompts--dry-run- Preview without writing files
demokit init
Initialize a new DemoKit project.
Options:
-t, --template <name>- Project template: nextjs, remix, vite, express-o, --output <dir>- Output directory--skip-install- Skip npm install
demokit validate
Validate fixtures against a schema.
Options:
-f, --fixtures <path>- Path to fixtures-s, --schema <path>- Path to schema (OpenAPI spec)--strict- Fail on warnings
demokit info
Display information about DemoKit installation.
Configuration
Create a demokit.config.js or demokit.config.ts file:
import { defineConfig } from '@demokit-ai/cli'
export default defineConfig({
input: './openapi.yaml',
output: './src/fixtures',
format: 'typescript',
count: {
User: 10,
Order: 25,
Product: 50,
},
seed: 42,
scenarios: {
default: {},
enterprise: {
User: { plan: 'enterprise' },
},
},
})Then run:
demokit generateExamples
Generate TypeScript Fixtures
demokit generate -i ./api.yaml -o ./src/demo -f typescriptOutput:
// src/demo/fixtures.ts
export const DEMO_USER = [
{ id: '1', name: 'Demo User', email: '[email protected]' },
// ...
] as const
export const DEMO_ORDER = [
{ id: '1', userId: '1', total: 99.99, status: 'pending' },
// ...
] as const
export const DEMO_DATA = {
User: DEMO_USER,
Order: DEMO_ORDER,
} as constGenerate SQL Seed Data
demokit generate -i ./api.yaml -o ./seeds -f sqlOutput:
-- seeds/demo.sql
INSERT INTO user (id, name, email) VALUES ('1', 'Demo User', '[email protected]');
INSERT INTO "order" (id, user_id, total, status) VALUES ('1', '1', 99.99, 'pending');License
MIT
