expressCart/lib/schema.js

23 lines
538 B
JavaScript
Raw Normal View History

const path = require('path');
const fs = require('fs');
2019-07-11 15:35:03 +10:00
const glob = require('glob');
2019-11-16 09:01:57 +10:00
const Ajv = require('ajv');
const ajv = new Ajv();
const addSchemas = () => {
2019-07-11 15:35:03 +10:00
const schemaFiles = glob.sync('./lib/**/*.json');
2019-11-16 09:01:57 +10:00
schemaFiles.forEach((file) => {
const fileData = JSON.parse(fs.readFileSync(file, 'utf-8'));
2019-11-16 09:01:57 +10:00
ajv.addSchema(fileData, path.basename(file, '.json'));
});
};
const validateJson = (schema, json) => {
2019-11-16 09:01:57 +10:00
return ajv.validate(schema, json);
};
module.exports = {
addSchemas,
validateJson
};