bpmnlint 11.11.0 → 11.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,17 +77,20 @@ const config = {
77
77
  rules: rules
78
78
  };
79
79
 
80
+ const moddleExtensions = {};
81
+
80
82
  const bundle = {
81
83
  resolver: resolver,
82
- config: config
84
+ config: config,
85
+ moddleExtensions: moddleExtensions
83
86
  };
84
87
 
85
- export { resolver, config };
88
+ export { resolver, config, moddleExtensions };
86
89
 
87
90
  export default bundle;
88
91
  `;
89
92
 
90
- const importCode = Object.entries(rules).map(([ key, value ], idx) => {
93
+ const ruleImportCode = Object.entries(rules).map(([ key, value ], idx) => {
91
94
 
92
95
  if (!value) {
93
96
  return null;
@@ -97,10 +100,19 @@ export default bundle;
97
100
  pkg, ruleName
98
101
  } = linter.parseRuleName(key);
99
102
 
100
- return createImportStatement(pkg, ruleName, idx, resolver);
103
+ return createRuleImportStatement(pkg, ruleName, idx, resolver);
104
+ }).filter(e => e).join('\n');
105
+
106
+ const moddleExtensionsImportCode = Object.entries(config.moddleExtensions || {}).map(([ key, importPath ], idx) => {
107
+
108
+ if (typeof importPath !== 'string') {
109
+ throw new Error(`illegal value for moddle-extension ${key}: expected <string>`);
110
+ }
111
+
112
+ return createModdleExtensionStatement(key, importPath, idx);
101
113
  }).filter(e => e).join('\n');
102
114
 
103
- return `${preambleCode}${importCode}`;
115
+ return `${preambleCode}${ruleImportCode}\n${moddleExtensionsImportCode}`;
104
116
  }
105
117
 
106
118
  module.exports = compileConfig;
@@ -113,7 +125,7 @@ function requirePkg(resolver, pkg) {
113
125
  }
114
126
  }
115
127
 
116
- function createImportStatement(pkg, ruleName, idx, resolver) {
128
+ function createRuleImportStatement(pkg, ruleName, idx, resolver) {
117
129
  const originalPkg = pkg;
118
130
 
119
131
  pkg = resolver.normalizePkg(pkg);
@@ -150,6 +162,23 @@ import rule_${ idx } from '${ pkg }/rules/${ ruleName }';
150
162
  cache['${ originalPkg }/${ ruleName }'] = rule_${ idx };`;
151
163
  }
152
164
 
165
+
166
+ /**
167
+ * @param {string} key
168
+ * @param {string} importPath
169
+ * @param {number} idx
170
+ *
171
+ * @return {string}
172
+ */
173
+ function createModdleExtensionStatement(key, importPath, idx) {
174
+
175
+ // (2) resolve rule via $PKG/rules/$NAME
176
+ return `
177
+ import moddle_extension_${ idx } from '${ importPath }';
178
+
179
+ moddleExtensions['${key}'] = moddle_extension_${ idx };`;
180
+ }
181
+
153
182
  function computeRuleImport(resolver, pkg, originalPkg, rule) {
154
183
 
155
184
  // local reference, resolved relative to pkg location
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bpmnlint",
3
3
  "description": "Validate your BPMN diagrams based on configurable lint rules",
4
- "version": "11.11.0",
4
+ "version": "11.12.0",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [
7
7
  "bpmnlint",