2016-02-03 02:42:07 +03:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var Ajv = require('./ajv')
|
2016-12-26 23:57:14 +03:00
|
|
|
, util = require('../lib/compile/util')
|
2017-11-09 00:52:03 +03:00
|
|
|
, setupAsync = require('./ajv-async');
|
2016-02-03 02:42:07 +03:00
|
|
|
|
|
|
|
module.exports = getAjvInstances;
|
|
|
|
|
|
|
|
var firstTime = true;
|
|
|
|
|
|
|
|
|
|
|
|
function getAjvInstances(opts) {
|
|
|
|
opts = opts || {};
|
|
|
|
var instances = [];
|
|
|
|
var options = [
|
|
|
|
{},
|
2017-11-06 00:14:31 +03:00
|
|
|
{ transpile: true },
|
|
|
|
{ allErrors: true },
|
|
|
|
{ transpile: true, allErrors: true }
|
2016-02-03 02:42:07 +03:00
|
|
|
];
|
|
|
|
|
|
|
|
options.forEach(function (_opts) {
|
|
|
|
util.copy(opts, _opts);
|
|
|
|
var ajv = getAjv(_opts);
|
|
|
|
if (ajv) instances.push(ajv);
|
|
|
|
});
|
|
|
|
|
|
|
|
if (firstTime) {
|
2017-11-06 00:14:31 +03:00
|
|
|
console.log('Testing', instances.length, 'ajv instances:');
|
2016-02-03 02:42:07 +03:00
|
|
|
firstTime = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return instances;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function getAjv(opts){
|
2016-12-26 23:57:14 +03:00
|
|
|
try { return setupAsync(new Ajv(opts)); } catch(e) {}
|
2016-02-03 02:42:07 +03:00
|
|
|
}
|