xref: /plugin/bpmnio/vendor/bpmn-js-bpmnlint/README.md (revision c88bd154bd573c8ceefeb9b009eba97536aec54c)
1*c88bd154Salibama# bpmn-js-bpmnlint
2*c88bd154Salibama
3*c88bd154Salibama[![CI](https://github.com/bpmn-io/bpmn-js-bpmnlint/workflows/CI/badge.svg)](https://github.com/bpmn-io/bpmn-js-bpmnlint/actions?query=workflow%3ACI)
4*c88bd154Salibama
5*c88bd154SalibamaIntegrates [bpmnlint](https://github.com/bpmn-io/bpmnlint) into [bpmn-js](https://github.com/bpmn-io/bpmn-js).
6*c88bd154Salibama
7*c88bd154Salibama![Screenshot](docs/screenshot.png)
8*c88bd154Salibama
9*c88bd154SalibamaSee this extension in action as part of the [bpmnlint playground](https://github.com/bpmn-io/bpmnlint-playground).
10*c88bd154Salibama
11*c88bd154Salibama
12*c88bd154Salibama## Usage
13*c88bd154Salibama
14*c88bd154SalibamaIntegrate the linter into [bpmn-js](https://github.com/bpmn-io/bpmn-js):
15*c88bd154Salibama
16*c88bd154Salibama```javascript
17*c88bd154Salibamaimport lintModule from 'bpmn-js-bpmnlint';
18*c88bd154Salibama
19*c88bd154Salibamaimport 'bpmn-js-bpmnlint/dist/assets/css/bpmn-js-bpmnlint.css';
20*c88bd154Salibama
21*c88bd154Salibamaimport BpmnModeler from 'bpmn-js/lib/Modeler';
22*c88bd154Salibama
23*c88bd154Salibamaimport bpmnlintConfig from './.bpmnlintrc';
24*c88bd154Salibama
25*c88bd154Salibamaconst modeler = new BpmnModeler({
26*c88bd154Salibama  linting: {
27*c88bd154Salibama    bpmnlint: bpmnlintConfig
28*c88bd154Salibama  },
29*c88bd154Salibama  additionalModules: [
30*c88bd154Salibama    lintModule
31*c88bd154Salibama  ]
32*c88bd154Salibama});
33*c88bd154Salibama```
34*c88bd154Salibama
35*c88bd154Salibama
36*c88bd154Salibama## Bundle Lint Rules
37*c88bd154Salibama
38*c88bd154SalibamaUse an appropriate plugin/loader for your module bundler (cf. [rollup-plugin-bpmnlint](https://github.com/nikku/rollup-plugin-bpmnlint), [bpmnlint-loader](https://github.com/nikku/bpmnlint-loader)) to bundle the bpmnlint configuration directly with your application as [shown above](#usage).
39*c88bd154Salibama
40*c88bd154SalibamaAlternatively, pack your local `.bpmnlintrc` file using the [bpmnlint-pack-config](https://github.com/nikku/bpmnlint-pack-config) utility:
41*c88bd154Salibama
42*c88bd154Salibama```shell
43*c88bd154Salibamabpmnlint-pack-config -c .bpmnlintrc -o bundled-config.js
44*c88bd154Salibama```
45*c88bd154Salibama
46*c88bd154Salibama
47*c88bd154Salibama## Plug-in Lint Rules
48*c88bd154Salibama
49*c88bd154SalibamaProvide the [packed lint rules](#bundle-lint-rules) via the `linting.bpmnlint` option. You may set it dynamically, too:
50*c88bd154Salibama
51*c88bd154Salibama```javascript
52*c88bd154Salibamaconst linting = modeler.get('linting');
53*c88bd154Salibama
54*c88bd154Salibamalinting.setLinterConfig(bpmnlintConfig);
55*c88bd154Salibama```
56*c88bd154Salibama
57*c88bd154Salibama
58*c88bd154Salibama## Resources
59*c88bd154Salibama
60*c88bd154Salibama* [Issues](https://github.com/bpmn-io/bpmn-js-bpmnlint/issues)
61*c88bd154Salibama* [Playground Project](https://github.com/bpmn-io/bpmnlint-playground)
62*c88bd154Salibama
63*c88bd154Salibama
64*c88bd154Salibama## Development Setup
65*c88bd154Salibama
66*c88bd154Salibama```
67*c88bd154Salibamanpm install
68*c88bd154Salibamanpm run dev
69*c88bd154Salibama```
70*c88bd154Salibama
71*c88bd154Salibama
72*c88bd154Salibama## License
73*c88bd154Salibama
74*c88bd154SalibamaMIT
75