@comuns-rpgmaker/plugin-metadata
Version:
Automated tool for plugin metadata schema validation and generation
31 lines (23 loc) • 732 B
JavaScript
const fs = require('fs');
const path = require('path')
const YAML = require('yaml');
const Ajv = require('ajv');
const schema = require('../schema/plugin-metadata.json');
const ajv = new Ajv({ allErrors: true });
const validateSchema = ajv.compile(schema);
function isYAML(file)
{
return ['.yaml', '.yml'].includes(path.extname(file));
}
async function loadMetadata(file)
{
const content = fs.readFileSync(file).toString();
if (isYAML(file)) return YAML.parse(content);
else return JSON.parse(content);
}
module.exports = async function validate(file)
{
const metadata = await loadMetadata(file);
if (validateSchema(metadata)) return metadata;
else throw ajv.errorsText(validateSchema.errors);
};