bpmn-js-bpmnlint
Advanced tools
Comparing version 0.8.1 to 0.9.0
@@ -9,2 +9,6 @@ # Changelog | ||
## 0.9.0 | ||
* `CHORE`: make `bpmnlint` a peer dependency | ||
## 0.8.1 | ||
@@ -11,0 +15,0 @@ |
@@ -93,3 +93,3 @@ import { assign, groupBy, reduce } from 'min-dash'; | ||
const flagMap = { | ||
const categoryMap = { | ||
0: 'off', | ||
@@ -125,15 +125,9 @@ 1: 'warn', | ||
* | ||
* @param {ModdleElement} options.moddleRoot | ||
* @param {String} options.ruleFlag | ||
* @param {Rule} options.rule | ||
* @param {Object} options.ruleConfig | ||
* @param {ModdleElement} moddleRoot | ||
* @param {Rule} rule | ||
* @param {Object} ruleConfig | ||
* | ||
* @return {Array<ValidationErrors>} lint results | ||
*/ | ||
Linter.prototype.applyRule = function applyRule({ moddleRoot, ruleFlag, rule, ruleConfig }) { | ||
if (ruleFlag === 'off') { | ||
return []; | ||
} | ||
Linter.prototype.applyRule = function applyRule(moddleRoot, rule, ruleConfig) { | ||
return testRule({ moddleRoot, rule, ruleConfig }); | ||
@@ -200,3 +194,3 @@ }; | ||
* | ||
* @param {Object} rulesConfig | ||
* @param {Object} config | ||
* | ||
@@ -208,14 +202,36 @@ * @return {Array<RuleDefinition>} | ||
return this.resolveConfiguredRules(config).then((rulesConfig) => { | ||
return Promise.all( | ||
Object.entries(rulesConfig).map(([ name, value ]) => { | ||
return this.resolveRule(name).then(function(rule) { | ||
return { | ||
value, | ||
name, | ||
rule | ||
}; | ||
}); | ||
}) | ||
); | ||
// parse rule values | ||
const parsedRules = Object.entries(rulesConfig).map(([ name, value ]) => { | ||
const { | ||
category, | ||
config | ||
} = this.parseRuleValue(value); | ||
return { | ||
name, | ||
category, | ||
config | ||
}; | ||
}); | ||
// filter only for enabled rules | ||
const enabledRules = parsedRules.filter(definition => definition.category !== 'off'); | ||
// load enabled rules | ||
const loaders = enabledRules.map((definition) => { | ||
const { | ||
name | ||
} = definition; | ||
return this.resolveRule(name).then(function(rule) { | ||
return { | ||
...definition, | ||
rule | ||
}; | ||
}); | ||
}); | ||
return Promise.all(loaders); | ||
}); | ||
@@ -276,10 +292,12 @@ }; | ||
ruleDefinitions.forEach(({ rule, name, value }) => { | ||
ruleDefinitions.forEach((ruleDefinition) => { | ||
const { | ||
ruleFlag, | ||
ruleConfig | ||
} = this.parseRuleValue(value); | ||
rule, | ||
name, | ||
config, | ||
category | ||
} = ruleDefinition; | ||
const reports = this.applyRule({ moddleRoot, ruleFlag, rule, ruleConfig }); | ||
const reports = this.applyRule(moddleRoot, rule, config); | ||
@@ -293,3 +311,3 @@ if (reports.length === 0) { | ||
...report, | ||
category: ruleFlag | ||
category | ||
}; | ||
@@ -308,11 +326,11 @@ }); | ||
let ruleFlag; | ||
let ruleConfig; | ||
let category; | ||
let config; | ||
if (Array.isArray(value)) { | ||
ruleFlag = value[0]; | ||
ruleConfig = value[1]; | ||
category = value[0]; | ||
config = value[1]; | ||
} else { | ||
ruleFlag = value; | ||
ruleConfig = {}; | ||
category = value; | ||
config = {}; | ||
} | ||
@@ -322,11 +340,11 @@ | ||
// may be upper case or a number at this point | ||
if (typeof ruleFlag === 'string') { | ||
ruleFlag = ruleFlag.toLowerCase(); | ||
if (typeof category === 'string') { | ||
category = category.toLowerCase(); | ||
} | ||
ruleFlag = flagMap[ruleFlag] || ruleFlag; | ||
category = categoryMap[category] || category; | ||
return { | ||
ruleConfig, | ||
ruleFlag | ||
config, | ||
category | ||
}; | ||
@@ -333,0 +351,0 @@ }; |
@@ -95,3 +95,3 @@ 'use strict'; | ||
const flagMap = { | ||
const categoryMap = { | ||
0: 'off', | ||
@@ -127,15 +127,9 @@ 1: 'warn', | ||
* | ||
* @param {ModdleElement} options.moddleRoot | ||
* @param {String} options.ruleFlag | ||
* @param {Rule} options.rule | ||
* @param {Object} options.ruleConfig | ||
* @param {ModdleElement} moddleRoot | ||
* @param {Rule} rule | ||
* @param {Object} ruleConfig | ||
* | ||
* @return {Array<ValidationErrors>} lint results | ||
*/ | ||
Linter.prototype.applyRule = function applyRule({ moddleRoot, ruleFlag, rule, ruleConfig }) { | ||
if (ruleFlag === 'off') { | ||
return []; | ||
} | ||
Linter.prototype.applyRule = function applyRule(moddleRoot, rule, ruleConfig) { | ||
return testRule({ moddleRoot, rule, ruleConfig }); | ||
@@ -202,3 +196,3 @@ }; | ||
* | ||
* @param {Object} rulesConfig | ||
* @param {Object} config | ||
* | ||
@@ -210,14 +204,36 @@ * @return {Array<RuleDefinition>} | ||
return this.resolveConfiguredRules(config).then((rulesConfig) => { | ||
return Promise.all( | ||
Object.entries(rulesConfig).map(([ name, value ]) => { | ||
return this.resolveRule(name).then(function(rule) { | ||
return { | ||
value, | ||
name, | ||
rule | ||
}; | ||
}); | ||
}) | ||
); | ||
// parse rule values | ||
const parsedRules = Object.entries(rulesConfig).map(([ name, value ]) => { | ||
const { | ||
category, | ||
config | ||
} = this.parseRuleValue(value); | ||
return { | ||
name, | ||
category, | ||
config | ||
}; | ||
}); | ||
// filter only for enabled rules | ||
const enabledRules = parsedRules.filter(definition => definition.category !== 'off'); | ||
// load enabled rules | ||
const loaders = enabledRules.map((definition) => { | ||
const { | ||
name | ||
} = definition; | ||
return this.resolveRule(name).then(function(rule) { | ||
return { | ||
...definition, | ||
rule | ||
}; | ||
}); | ||
}); | ||
return Promise.all(loaders); | ||
}); | ||
@@ -278,10 +294,12 @@ }; | ||
ruleDefinitions.forEach(({ rule, name, value }) => { | ||
ruleDefinitions.forEach((ruleDefinition) => { | ||
const { | ||
ruleFlag, | ||
ruleConfig | ||
} = this.parseRuleValue(value); | ||
rule, | ||
name, | ||
config, | ||
category | ||
} = ruleDefinition; | ||
const reports = this.applyRule({ moddleRoot, ruleFlag, rule, ruleConfig }); | ||
const reports = this.applyRule(moddleRoot, rule, config); | ||
@@ -295,3 +313,3 @@ if (reports.length === 0) { | ||
...report, | ||
category: ruleFlag | ||
category | ||
}; | ||
@@ -310,11 +328,11 @@ }); | ||
let ruleFlag; | ||
let ruleConfig; | ||
let category; | ||
let config; | ||
if (Array.isArray(value)) { | ||
ruleFlag = value[0]; | ||
ruleConfig = value[1]; | ||
category = value[0]; | ||
config = value[1]; | ||
} else { | ||
ruleFlag = value; | ||
ruleConfig = {}; | ||
category = value; | ||
config = {}; | ||
} | ||
@@ -324,11 +342,11 @@ | ||
// may be upper case or a number at this point | ||
if (typeof ruleFlag === 'string') { | ||
ruleFlag = ruleFlag.toLowerCase(); | ||
if (typeof category === 'string') { | ||
category = category.toLowerCase(); | ||
} | ||
ruleFlag = flagMap[ruleFlag] || ruleFlag; | ||
category = categoryMap[category] || category; | ||
return { | ||
ruleConfig, | ||
ruleFlag | ||
config, | ||
category | ||
}; | ||
@@ -335,0 +353,0 @@ }; |
{ | ||
"name": "bpmn-js-bpmnlint", | ||
"version": "0.8.1", | ||
"version": "0.9.0", | ||
"description": "bpmn-js integration for bpmnlint", | ||
@@ -26,2 +26,3 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"bpmnlint": "^4.0.0", | ||
"bpmn-font": "^0.8.0", | ||
@@ -38,6 +39,8 @@ "bpmn-js": "^2.4.1", | ||
"dependencies": { | ||
"bpmnlint": "^3.3.1", | ||
"min-dash": "^3.1.0", | ||
"min-dom": "^3.1.1" | ||
}, | ||
"peerDependencies": { | ||
"bpmnlint": "^4.0.0 || ^3.2.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
248399
1421
10
+ Addedbpmnlint@4.1.0(transitive)
+ Addedcli-table@0.3.11(transitive)
+ Addedcolors@1.0.3(transitive)
+ Addedpluralize@7.0.0(transitive)
- Removedbpmnlint@^3.3.1
- Removedbpmnlint@3.3.1(transitive)