adr-cli
Version:
Architecture Decision Records (ADR) command cli
68 lines • 2.1 kB
JavaScript
import Ajv from "ajv";
import chalk from 'chalk';
const ajv = new Ajv();
//Schema generate with https://extendsclass.com/json-schema-validator.html
function schema() {
return {
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://example.com/object1675292430.json",
"title": "Root",
"type": "object",
"properties": {
"adr-path": {
"$id": "#root/adrPath",
"title": "Adr-path",
"type": "string",
"default": "",
"examples": [
"doc\\adr"
],
"pattern": "^.*$"
},
"locale": {
"$id": "#root/locale",
"title": "Locale",
"type": "string",
"enum": ["en", "es"],
"default": "en",
"examples": [
"en"
],
"pattern": "^.*$"
},
"markdownEngine": {
"$id": "#root/markdownEngine",
"title": "Markdownengine",
"type": "string",
"enum": ["github", "gitlab"],
"default": "github",
"examples": [
"github"
],
"pattern": "^.*$"
}
}
};
}
export class Schemas {
static validateConfigSchema(data) {
let validate = ajv.compile(schema());
let valid = validate(data);
if (!valid) {
let errors = validate.errors;
errors.forEach((item) => {
console.error(`
Error propertie definition:
keyword: ${chalk.red.bold(item.keyword)}
missingProperty: ${chalk.red.bold(item.params.missingProperty)}
menssage: ${chalk.red.bold(item.message)}
`);
});
return false;
}
return true;
}
}
export default Schemas;
//# sourceMappingURL=schemas.js.map