Referência de API
API JavaScript/TypeScript do Schematex — chamadas strict de render/parse, APIs de resultado seguras para preview, opções de configuração e imports tree-shakable.
render(text, config?)
Renderiza uma string DSL em uma string SVG. Faz dispatch pela primeira palavra-chave e lança exceção quando a detecção, parsing, layout ou renderização falha.
import { render } from 'schematex';
const svg: string = render(text, { theme: 'monochrome' });Use a API strict quando um DSL inválido deve parar o fluxo de trabalho, por exemplo durante um teste, job de exportação ou gate de validação no servidor.
parse(text, config?)
Faz parse de uma string DSL no AST tipado sem renderizar. Esta API também é strict e lança exceção em DSL inválido.
import { parse } from 'schematex';
const ast = parse(text);Renderização segura para preview
Editores ao vivo, previews de IA e canvas de chat não devem transformar uma falha de parser
em uma superfície vazia. Use renderPreview() quando você só precisar de uma string SVG:
import { renderPreview } from 'schematex';
const svg = renderPreview(text, { type: 'circuit' });renderPreview() sempre retorna SVG. Se a renderização strict falhar, esse SVG é um
fallback de diagnóstico visível. render(text, { mode: 'preview' }) é o mesmo
limite de preview para integrações que já chamam render().
APIs de resultado
Use as APIs de resultado quando o chamador precisa tanto de uma saída visível quanto do estado de validade:
import { parseResult, renderResult } from 'schematex';
const renderState = renderResult(text);
container.innerHTML = renderState.svg;
if (!renderState.ok) {
console.error(renderState.diagnostics);
}
const parseState = parseResult(text);renderResult() retorna svg, diagnostics, type, e um status de
valid, partial ou invalid. Resultados de renderização inválidos ainda carregam um
SVG de diagnóstico para que o preview permaneça visível.
parseResult() retorna um AST ou diagnósticos estruturados sem
lançar exceção. O status partial é reservado para parsers que conseguem recuperar um
AST parcial ou diagrama renderizado parcial.
Não trate "uma string SVG existe" como prova de que o DSL é válido. Superfícies
de preview devem mostrar o SVG e usar ok, status e diagnostics para
decisões de retry, reparo, telemetria ou cobrança.
Browser e React
O subpath do browser expõe helpers DOM strict e helpers DOM seguros para preview:
import {
renderToContainer,
renderPreviewToContainer,
} from 'schematex/browser';
renderToContainer(text, exportContainer); // strict
renderPreviewToContainer(text, previewContainer); // fallback visívelO componente React já usa o limite de resultado seguro para preview:
import { SchematexDiagram } from 'schematex/react';
<SchematexDiagram
dsl={text}
type="circuit"
onError={(error) => console.error(error)}
/>;onError dispara em falha strict de parser/layout/render antes do componente
mostrar o SVG de fallback de diagnóstico.
Imports tree-shakable
import { render } from 'schematex/genogram';
import { render } from 'schematex/ecomap';
import { render } from 'schematex/pedigree';
import { render } from 'schematex/phylo';
import { render } from 'schematex/sociogram';SchematexConfig
interface SchematexConfig {
type?: string; // override opcional do tipo de diagrama
width?: number;
height?: number;
padding?: number;
theme?: string; // ex: 'default' | 'monochrome' | 'dark'
fontFamily?: string;
mode?: 'strict' | 'preview';
}Veja src/core/types.ts
e src/core/api.ts
para as definições de tipo completas.
Found this useful?
Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.