@victorylabs/cli
v0.9.1
Published
Code-generation engine for the @victorylabs/* framework. Scaffolds projects, plugins, routes, and pages. Resolves opinionated scaffolds from @victorylabs/kit when present; falls back to bundled raw scaffolds otherwise.
Maintainers
Readme
@victorylabs/cli
Code-generation engine for the @victorylabs/* framework. Scaffolds projects, plugins, routes, and pages. Resolves opinionated scaffolds from @victorylabs/kit when present; falls back to bundled raw scaffolds otherwise.
Install
# as a tool (add commands like `core create …`)
pnpm add -D @victorylabs/cli
# as a programmatic dependency (custom tooling)
pnpm add @victorylabs/cliCLI usage
# scaffold a new app
pnpm core create my-app
# add a plugin to an existing app
pnpm core add plugin auth
# generate a route
pnpm core generate route /dashboardThe CLI reads @victorylabs/kit's scaffolds when the kit is installed; otherwise it uses bundled raw defaults.
Programmatic API
import {
applyScaffold,
resolveScaffold,
renderFile,
readPackageJson,
writePackageJson,
addDeps,
addScripts,
} from '@victorylabs/cli'
const scaffold = await resolveScaffold({ name: 'plugin', forceRaw: false })
const result = await applyScaffold({
scaffold,
projectPaths: { root: process.cwd(), src: 'src' },
vars: { name: 'my-plugin' },
})Key exports
applyScaffold(options)— renders everyScaffoldFilein aScaffoldto disk. Returns{ created, skipped }.resolveScaffold(options)— loads a scaffold by name. Prefers app-local (./.core/scaffolds/<name>), then@victorylabs/kit, then bundled raw.renderFile(options)— renders a single file. RespectsskipIfExistsandforce.readPackageJson()/writePackageJson()— typed reads/writes of the nearestpackage.json.addDeps(pkg, deps)/addScripts(pkg, scripts)— merge dependencies or scripts into an existing package.json.Scaffold/ScaffoldFile/RenderContext/ApplyContext— contract consumed by scaffold authors (re-exported from@victorylabs/kit).
See also
@victorylabs/kit— defines the scaffolds this CLI consumes@victorylabs/core— plugin primitives
