summaryrefslogtreecommitdiff
path: root/node_modules/har-validator/lib/promise.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/har-validator/lib/promise.js')
-rw-r--r--node_modules/har-validator/lib/promise.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/node_modules/har-validator/lib/promise.js b/node_modules/har-validator/lib/promise.js
new file mode 100644
index 0000000..46f4647
--- /dev/null
+++ b/node_modules/har-validator/lib/promise.js
@@ -0,0 +1,102 @@
+var Ajv = require('ajv')
+var HARError = require('./error')
+var schemas = require('har-schema')
+
+var ajv
+
+function createAjvInstance () {
+ var ajv = new Ajv({
+ allErrors: true
+ })
+ ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'))
+ ajv.addSchema(schemas)
+
+ return ajv
+}
+
+function validate (name, data) {
+ data = data || {}
+
+ // validator config
+ ajv = ajv || createAjvInstance()
+
+ var validate = ajv.getSchema(name + '.json')
+
+ return new Promise(function (resolve, reject) {
+ var valid = validate(data)
+
+ !valid ? reject(new HARError(validate.errors)) : resolve(data)
+ })
+}
+
+exports.afterRequest = function (data) {
+ return validate('afterRequest', data)
+}
+
+exports.beforeRequest = function (data) {
+ return validate('beforeRequest', data)
+}
+
+exports.browser = function (data) {
+ return validate('browser', data)
+}
+
+exports.cache = function (data) {
+ return validate('cache', data)
+}
+
+exports.content = function (data) {
+ return validate('content', data)
+}
+
+exports.cookie = function (data) {
+ return validate('cookie', data)
+}
+
+exports.creator = function (data) {
+ return validate('creator', data)
+}
+
+exports.entry = function (data) {
+ return validate('entry', data)
+}
+
+exports.har = function (data) {
+ return validate('har', data)
+}
+
+exports.header = function (data) {
+ return validate('header', data)
+}
+
+exports.log = function (data) {
+ return validate('log', data)
+}
+
+exports.page = function (data) {
+ return validate('page', data)
+}
+
+exports.pageTimings = function (data) {
+ return validate('pageTimings', data)
+}
+
+exports.postData = function (data) {
+ return validate('postData', data)
+}
+
+exports.query = function (data) {
+ return validate('query', data)
+}
+
+exports.request = function (data) {
+ return validate('request', data)
+}
+
+exports.response = function (data) {
+ return validate('response', data)
+}
+
+exports.timings = function (data) {
+ return validate('timings', data)
+}