Skip to content

SfnDiagramGenerator

Defined in: src/index.ts:315

Class-based API for advanced usage with fluent interface

This class allows you to configure diagram options once and generate multiple diagrams with the same settings. Options can be updated using the fluent setOptions() method.

import { SfnDiagramGenerator } from 'sfn-diagram';
const generator = new SfnDiagramGenerator({
theme: 'dark',
layout: 'LR',
nodeWidth: 150
});
// Generate multiple diagrams with the same options
const diagram1 = generator.generateSvg({ aslDefinition: stateMachine1 });
const diagram2 = generator.generateSvg({ aslDefinition: stateMachine2 });
// Update options and generate more
generator.setOptions({ theme: 'light' });
const diagram3 = generator.generateSvg({ aslDefinition: stateMachine3 });
new SfnDiagramGenerator(options?): SfnDiagramGenerator;

Defined in: src/index.ts:328

Create a new diagram generator with default options

DiagramOptions = {}

Default diagram options for all subsequent generations

SfnDiagramGenerator

const generator = new SfnDiagramGenerator({ theme: 'dark', layout: 'LR' });
generate(params):
| SvgOutput
| HtmlOutput
| MermaidOutput;

Defined in: src/index.ts:344

Generate a diagram (auto-detects format from options)

Generation parameters

string | AslDefinition

ASL definition as an object or JSON string

| SvgOutput | HtmlOutput | MermaidOutput

SVG or Mermaid output based on format option

const result = generator.generate({ aslDefinition: myStateMachine });

generateMermaid(params): MermaidOutput;

Defined in: src/index.ts:378

Generate Mermaid diagram syntax

Generation parameters

string | AslDefinition

ASL definition as an object or JSON string

MermaidOutput

Mermaid output with code and metadata

const { code } = generator.generateMermaid({ aslDefinition: myStateMachine });

generateSvg(params): SvgOutput;

Defined in: src/index.ts:362

Generate an SVG diagram

Generation parameters

string | AslDefinition

ASL definition as an object or JSON string

SvgOutput

SVG output with diagram and metadata

const { svg } = generator.generateSvg({ aslDefinition: myStateMachine });

setOptions(options): this;

Defined in: src/index.ts:397

Update the generator’s default options (fluent interface)

Partial<DiagramOptions>

Partial options to merge with existing options

this

This generator instance for method chaining

generator
.setOptions({ theme: 'dark' })
.setOptions({ layout: 'LR' });
const result = generator.generateSvg({ aslDefinition: myAsl });