Custom Generators
Ensure you have likec4
in your dependencies:
npm i likec4
pnpm add likec4
yarn add likec4
bun add likec4
You can define custom generators in your project config:
import { defineConfig } from 'likec4/config'
export default defineConfig({ name: 'my-project', title: 'My Project', generators: { 'hello': async ({ likec4model, ctx }) => { await ctx.write({ path: 'hello.txt', // relative to the project root content: `Project: ${likec4model.project.id}`, }) }, },})
Now you can run your generator with CLI:
likec4 gen hello
In multi-project workspace use:
likec4 gen hello --project my-project# Other optionslikec4 gen hello --project my-project --use-dot
Reusable Generators
Section titled “Reusable Generators”There is also helper function defineGenerators
to define reusable generators:
import { defineGenerators } from 'likec4/config'
export default defineGenerators({ 'hello': async ({ likec4model, ctx }) => { await ctx.write({ path: 'hello.txt', // relative to the project root content: `Project: ${likec4model.project.id}`, }) },})
Now you can use it in your configs:
import { defineConfig } from 'likec4/config'import generators from './shared_generators'
export default defineConfig({ name: 'my-project', title: 'My Project', generators,})