Comparing version 5.3.0 to 6.0.0-beta.0
@@ -9,2 +9,8 @@ # Changelog | ||
## 6.0.0 | ||
* `FEAT`: resolve plug-in provided rules/configuration local to working directory | ||
* `CHORE`: improve errors on rule/plugin resolution failures | ||
* `CHORE`: require `>= node@10.12` | ||
## 5.3.0 | ||
@@ -11,0 +17,0 @@ |
@@ -0,1 +1,4 @@ | ||
const Module = require('module'); | ||
const path = require('path'); | ||
/** | ||
@@ -6,3 +9,5 @@ * A resolver that locates rules and configurations | ||
function NodeResolver(options) { | ||
this.require = options && options.require || require; | ||
this.require = options && options.require || createScopedRequire(process.cwd()); | ||
this.requireLocal = options && options.requireLocal || require; | ||
} | ||
@@ -16,10 +21,9 @@ | ||
try { | ||
return this.require(`${pkg}/rules/${ruleName}`); | ||
} catch (err) { | ||
if (pkg === 'bpmnlint') { | ||
// attempt local require | ||
return this.require(`../../rules/${ruleName}`); | ||
return this.requireLocal(`../../rules/${ruleName}`); | ||
} else { | ||
return this.require(`${pkg}/rules/${ruleName}`); | ||
} | ||
throw err; | ||
} catch (err) { | ||
throw new Error('Cannot resolve rule <' + ruleName + '> from <' + pkg + '>'); | ||
} | ||
@@ -30,27 +34,34 @@ }; | ||
// resolve config via $PKG/config/$NAME` | ||
// resolve config via $PKG/config/$NAME | ||
try { | ||
return this.require(`${pkg}/config/${configName}`); | ||
if (pkg === 'bpmnlint') { | ||
return this.requireLocal(`../../config/${configName}`); | ||
} else { | ||
return this.require(`${pkg}/config/${configName}`); | ||
} | ||
} catch (err) { /* ignore */ } | ||
// resolve built-in as local config via ../../config/$NAME` | ||
if (pkg === 'bpmnlint') { | ||
try { | ||
// attempt local require | ||
return this.require(`../../config/${configName}`); | ||
} catch (err) { /* ignore */ } | ||
} | ||
// resolve config via $PKG.configs[$NAME] | ||
const instance = this.require(pkg); | ||
try { | ||
const instance = this.require(pkg); | ||
if ('configs' in instance) { | ||
if (configName in instance.configs) { | ||
return instance.configs[configName]; | ||
const configs = instance.configs || {}; | ||
if (configName in configs) { | ||
return configs[configName]; | ||
} | ||
} catch (err) { | ||
/* ignore */ | ||
} | ||
throw new Error( | ||
'cannot resolve config <' + configName + '> in <' + pkg +'>' | ||
'Cannot resolve config <' + configName + '> from <' + pkg + '>' | ||
); | ||
}; | ||
}; | ||
// helpers //////////////////// | ||
function createScopedRequire(cwd) { | ||
return Module.createRequireFromPath(path.join(cwd, '__placeholder__.js')); | ||
} |
{ | ||
"name": "bpmnlint", | ||
"description": "Validate your BPMN diagrams based on configurable lint rules", | ||
"version": "5.3.0", | ||
"version": "6.0.0-beta.0", | ||
"main": "lib/index.js", | ||
@@ -25,2 +25,5 @@ "keywords": [ | ||
], | ||
"engines": { | ||
"node": ">= 10.12" | ||
}, | ||
"license": "MIT", | ||
@@ -27,0 +30,0 @@ "scripts": { |
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
Debug access
Supply chain riskUses debug, reflection and dynamic code execution features.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
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
42187
1280
2
4