2015-10-10 22:50:57 +03:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var Ajv = require(typeof window == 'object' ? 'ajv' : '../lib/ajv')
|
|
|
|
, util = require('../lib/compile/util');
|
|
|
|
|
|
|
|
module.exports = getAjvInstances;
|
|
|
|
|
|
|
|
|
2015-11-28 17:59:08 +03:00
|
|
|
function getAjvInstances(options, extraOpts) {
|
|
|
|
return _getAjvInstances(options, extraOpts || {});
|
2015-10-10 22:50:57 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function _getAjvInstances(opts, useOpts) {
|
|
|
|
var optNames = Object.keys(opts);
|
|
|
|
if (optNames.length) {
|
|
|
|
opts = util.copy(opts);
|
|
|
|
var useOpts1 = util.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);
|
|
|
|
} else return [ Ajv(useOpts) ];
|
|
|
|
}
|