ajv/spec/ajv_instances.js

33 lines
720 B
JavaScript

'use strict';
var Ajv = require('./ajv');
module.exports = getAjvInstances;
function getAjvInstances(options, extraOpts) {
return _getAjvInstances(options, extraOpts || {});
}
function _getAjvInstances(opts, useOpts) {
var optNames = Object.keys(opts);
if (optNames.length) {
opts = copy(opts);
var useOpts1 = copy(useOpts)
, optName = optNames[0];
useOpts1[optName] = opts[optName];
delete opts[optName];
var instances = _getAjvInstances(opts, useOpts)
, instances1 = _getAjvInstances(opts, useOpts1);
return instances.concat(instances1);
}
return [ new Ajv(useOpts) ];
}
function copy(o, to) {
to = to || {};
for (var key in o) to[key] = o[key];
return to;
}