0.17.0 • Published 6 months ago
bpmn-middleware v0.17.0
bpmn-middleware
Express middleware for BPMN engine.
Under construction so breaking changes will occur until v1.
Usage
import { createRequire } from 'node:module';
import { fileURLToPath } from 'node:url';
import express from 'express';
import { Broker } from 'smqp';
import { LRUCache } from 'lru-cache';
import { extensions, OnifySequenceFlow, extendFn } from '@onify/flow-extensions';
import * as bpmnElements from 'bpmn-elements';
import { bpmnEngineMiddleware, HttpError, MemoryAdapter } from 'bpmn-middleware';
import { factory as ScriptsFactory } from './example/middleware-scripts.js';
const isMainModule = process.argv[1] === fileURLToPath(import.meta.url);
const nodeRequire = createRequire(import.meta.url);
const camunda = nodeRequire('camunda-bpmn-moddle/resources/camunda.json');
const elements = {
...bpmnElements,
SequenceFlow: OnifySequenceFlow,
};
const app = express();
const adapter = new MemoryAdapter();
const broker = (app.locals.broker = new Broker(app));
const engineCache = (app.locals.engineCache = new LRUCache({ max: 1000 }));
broker.assertExchange('event', 'topic', { durable: false, autoDelete: false });
const middleware = bpmnEngineMiddleware({
adapter,
broker,
engineCache,
Scripts: ScriptsFactory,
engineOptions: {
moddleOptions: { camunda },
elements,
extensions: { onify: extensions },
extendFn,
},
});
app.use('/rest', middleware);
app.use(errorHandler);
if (isMainModule) {
app.listen(3000);
}
export { app };
function errorHandler(err, req, res, next) {
if (!(err instanceof Error)) return next();
if (isMainModule) console.log({ err });
if (err instanceof HttpError) return res.status(err.statusCode).send({ message: err.message });
res.status(502).send({ message: err.message });
}
Debug
Debug by DEBUG=bpmn-middleware
, or on windows $env:DEBUG='bpmn-middleware'
. To be more verbose use DEBUG=bpmn*
, that will display the whole shebang.
0.17.0
6 months ago
0.16.0
6 months ago
0.16.1
6 months ago
0.15.2
6 months ago
0.15.0
7 months ago
0.15.1
6 months ago
0.13.0
7 months ago
0.14.0
7 months ago
0.11.0
7 months ago
0.12.0
7 months ago
0.10.0
8 months ago
0.9.0
8 months ago
0.8.0
9 months ago
0.7.0
9 months ago
0.6.0
10 months ago
0.5.1
10 months ago
0.1.0
1 year ago
0.3.0
1 year ago
0.2.0
1 year ago
0.5.0
12 months ago
0.4.1
12 months ago
0.4.0
12 months ago
0.0.8
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago