Fork do projeto original: bpmn-io/bpmn-auto-layout
Este fork adiciona suporte para execução via linha de comando, permitindo aplicar auto layout em arquivos BPMN diretamente do terminal com o comando bpmnautolayout.
- Node.js versão 14 ou superior
- npm (incluído com Node.js)
- Clone este repositório:
git clone https://github.com/dan4ndrade/bpmn-auto-layout.git
cd bpmn-auto-layout- Instale as dependências:
npm install- Execute o build:
npm run build- Instale globalmente:
npm linkApós a instalação, use o comando bpmnautolayout em qualquer terminal:
# Aplica auto layout e salva como arquivo.layout.bpmn
bpmnautolayout arquivo.bpmn
# Especifica arquivo de saída personalizado
bpmnautolayout arquivo.bpmn saida.bpmnExemplos práticos:
# Processa um diagrama simples
bpmnautolayout meu-processo.bpmn
# Salva com nome específico
bpmnautolayout processo-complexo.bpmn processo-formatado.bpmnSe o comando bpmnautolayout não for reconhecido:
- Verifique se o
npm linkfoi executado com sucesso - Verifique se o diretório global do npm está no PATH:
npm config get prefix
- No macOS/Linux, adicione ao seu
.zshrcou.bashrc:export PATH="$(npm config get prefix)/bin:$PATH"
Se houver erro de permissões no npm link:
sudo npm link- Certifique-se de que o arquivo BPMN está bem formado (XML válido)
- O arquivo deve ter extensão
.bpmn - Verifique se você tem permissão de leitura no arquivo de entrada e escrita no diretório de saída
Para remover o comando global, execute dentro do diretório do projeto:
npm unlink -g bpmn-auto-layoutOu alternativamente:
npm uninstall -g bpmn-auto-layoutCreate and layout the graphical representation of a BPMN diagram.
Try it out in the example project.
This library works with Node.js and in the browser.
import { layoutProcess } from 'bpmn-auto-layout';
import diagramXML from './diagram.bpmn';
const diagramWithLayoutXML = await layoutProcess(diagramXML);
console.log(diagramWithLayoutXML);- Given a collaboration only the first participant's process will be laid out
- Sub-processes will be laid out as collapsed sub-processes
- The following elements are not laid out:
- Groups
- Text annotations
- Associations
- Message flows
# install dependencies
npm install
# build and run tests
npm run all
# run example
npm startWe use snapshot testing to verify old and new layout attempts. A mismatch is indicated as a test failure.
# run tests
npm test
# inspect the results
npm run test:inspect
# run update snapshots
npm run test:update-snapshotsAdd new test cases to test/fixtures and they will be picked up automatically.
MIT