UNPKG

932 BJavaScriptView Raw
1const BpmnModdle = require('bpmn-moddle');
2
3const readFileSync = require('fs').readFileSync;
4
5
6/**
7 * Create moddle instance.
8 *
9 * @param {String} xml the XML string
10 *
11 * @return {Promise<Object>}
12 */
13function createModdle(xml, elementType = 'bpmn:Definitions') {
14 const moddle = new BpmnModdle();
15
16 return new Promise((resolve, reject) => {
17 moddle.fromXML(xml, elementType, { lax: true }, function(err, root, context) {
18 if (err) {
19 return reject(err);
20 } else {
21 return resolve({
22 root,
23 context,
24 moddle
25 });
26 }
27 });
28 });
29}
30
31module.exports.createModdle = createModdle;
32
33
34/**
35 * Return moddle instance, read from the given file.
36 *
37 * @param {String} filePath
38 *
39 * @return {Promise<Object>}
40 */
41function readModdle(filePath) {
42 const contents = readFileSync(filePath, 'utf8');
43
44 return createModdle(contents);
45}
46
47module.exports.readModdle = readModdle;
\No newline at end of file