Error when I use a customized rule
Closed this issue · 7 comments
Hi there
I use a customized rule but I faced an error:
npm install -g ibm-openapi-validator
npm install @ibm-cloud/openapi-ruleset
My customized ruleset "dfo-rules.js":
const ibmCloudValidationRules = require('@ibm-cloud/openapi-ruleset');
const { enumCaseConvention } = require('@ibm-cloud/openapi-ruleset/src/functions');
const { schemas } = require('@ibm-cloud/openapi-ruleset-utilities/src/collections');
module.exports = {
extends: ibmCloudValidationRules,
rules: {
'enum-case-convention': {
description: 'Enum values must follow kebab case convention',
message: '{{error}}',
given: schemas,
severity: 'error',
then: {
function: enumCaseConvention,
functionOptions: {
type: 'kebab'
}
}
}
}
};
user@yearbook1:~/myproject # lint-openapi -c ./dfo-openapi-validator-config.yaml ../target/control-plane-api-openapi.yaml
IBM OpenAPI Validator (validator: 1.0.1; ruleset: 1.0.0), @Copyright IBM Corporation 2017, 2023.
Validation Results for ../target/control-plane-api-openapi.yaml:
[ERROR] Problem reading Spectral ruleset file 'dfo-rules.js': Cannot find module 'chalk'
Require stack:
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/utils/logger-factory.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/utils/index.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/functions/array-attributes.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/functions/index.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/rules/accept-header.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/rules/index.js
- myproject/node_modules/@ibm-cloud/openapi-ruleset/src/ibm-oas.js
- myproject/dfo-rules.js
[ERROR] Using the default IBM Cloud OpenAPI Ruleset instead.
@ityuhui thanks for this issue - I will look into it
What version is your @ibm-cloud/openapi-ruleset dependency within the package.json
file?
Hi @dpopp07
Here is my environment:
# npm list
~/myproject@ ~/myproject
└── @ibm-cloud/openapi-ruleset@1.0.0
# cat package.json
{
"dependencies": {
"@ibm-cloud/openapi-ruleset": "^1.0.0"
}
}
# npm list -g
/opt/node-v18.12.0-linux-x64/lib
├── corepack@0.14.2
├── ibm-openapi-validator@1.0.1
└── npm@8.19.2
Okay, I was able to reproduce and track down the issue. It will be solved in #585.
Note that even once the bug is fixed, you'll need to change your ruleset as you have the function name wrong - it should be enumCasingConvention
, not enumCaseConvention
.
Thank you !
🎉 This issue has been resolved in version 1.0.1 🎉
The release is available on npm package (@latest dist-tag)
Your semantic-release bot 📦🚀
🎉 This issue has been resolved in version 1.0.4 🎉
The release is available on npm package (@latest dist-tag)
Your semantic-release bot 📦🚀
🎉 This issue has been resolved in version 1.0.1 🎉
The release is available on npm package (@latest dist-tag)
Your semantic-release bot 📦🚀