properties-gen
Version:
CLI to generate environment properties based on config
60 lines (59 loc) • 2.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateConfigSchema = void 0;
var ajv_1 = __importDefault(require("ajv"));
var ajv = new ajv_1.default({ allErrors: true });
ajv.addFormat('fileFormat', {
type: 'string',
validate: function (data) { return /.*\.(js|json)$/.test(data); },
});
var schema = {
type: 'object',
properties: {
configurationGroups: {
type: 'array',
minItems: 1,
uniqueItems: true,
items: {
type: 'object',
properties: {
inputFolder: { type: 'string' },
outputFile: { type: 'string', format: 'fileFormat' },
extendsFromBase: { type: 'boolean' },
inputFileNamePattern: {
type: 'string',
format: 'fileFormat',
nullable: true,
},
fileBaseName: { type: 'string', nullable: true },
},
required: ['inputFolder', 'outputFile', 'extendsFromBase'],
additionalProperties: false,
},
},
envTargetKey: { type: 'string', nullable: true },
defaultEnvTargetValue: { type: 'string', nullable: true },
useEsModule: { type: 'boolean', nullable: true },
},
required: ['configurationGroups'],
additionalProperties: false,
};
var validateConfigSchema = function (data) {
try {
var validate = ajv.compile(schema);
return {
isValid: validate(data),
errors: validate.errors || [],
};
}
catch (error) {
return {
isValid: false,
errors: [{ message: error, instancePath: '' }],
};
}
};
exports.validateConfigSchema = validateConfigSchema;