Initial commit
[yaffs-website] / node_modules / har-validator / lib / browser / async.js
1 import * as schemas from 'har-schema';
2 import Ajv from 'ajv';
3 import HARError from './error';
4
5 let ajv;
6
7 export function validate(name, data = {}, next) {
8   // validator config
9   ajv = ajv || new Ajv({
10     allErrors: true,
11     schemas: schemas
12   });
13
14   let validate = ajv.getSchema(name + '.json');
15
16   let valid = validate(data);
17
18   // callback?
19   if (typeof next === 'function') {
20     return next(!valid ? new HARError(validate.errors) : null, valid);
21   }
22
23   return valid;
24 }
25
26 export function afterRequest(data, next) {
27   return validate('afterRequest', data, next);
28 }
29
30 export function beforeRequest(data, next) {
31   return validate('beforeRequest', data, next);
32 }
33
34 export function browser(data, next) {
35   return validate('browser', data, next);
36 }
37
38 export function cache(data, next) {
39   return validate('cache', data, next);
40 }
41
42 export function content(data, next) {
43   return validate('content', data, next);
44 }
45
46 export function cookie(data, next) {
47   return validate('cookie', data, next);
48 }
49
50 export function creator(data, next) {
51   return validate('creator', data, next);
52 }
53
54 export function entry(data, next) {
55   return validate('entry', data, next);
56 }
57
58 export function har(data, next) {
59   return validate('har', data, next);
60 }
61
62 export function header(data, next) {
63   return validate('header', data, next);
64 }
65
66 export function log(data, next) {
67   return validate('log', data, next);
68 }
69
70 export function page(data, next) {
71   return validate('page', data, next);
72 }
73
74 export function pageTimings(data, next) {
75   return validate('pageTimings', data, next);
76 }
77
78 export function postData(data, next) {
79   return validate('postData', data, next);
80 }
81
82 export function query(data, next) {
83   return validate('query', data, next);
84 }
85
86 export function request(data, next) {
87   return validate('request', data, next);
88 }
89
90 export function response(data, next) {
91   return validate('response', data, next);
92 }
93
94 export function timings(data, next) {
95   return validate('timings', data, next);
96 }