1 import * as schemas from 'har-schema';
3 import HARError from './error';
7 export function validate(name, data = {}, next) {
14 let validate = ajv.getSchema(name + '.json');
16 let valid = validate(data);
19 if (typeof next === 'function') {
20 return next(!valid ? new HARError(validate.errors) : null, valid);
26 export function afterRequest(data, next) {
27 return validate('afterRequest', data, next);
30 export function beforeRequest(data, next) {
31 return validate('beforeRequest', data, next);
34 export function browser(data, next) {
35 return validate('browser', data, next);
38 export function cache(data, next) {
39 return validate('cache', data, next);
42 export function content(data, next) {
43 return validate('content', data, next);
46 export function cookie(data, next) {
47 return validate('cookie', data, next);
50 export function creator(data, next) {
51 return validate('creator', data, next);
54 export function entry(data, next) {
55 return validate('entry', data, next);
58 export function har(data, next) {
59 return validate('har', data, next);
62 export function header(data, next) {
63 return validate('header', data, next);
66 export function log(data, next) {
67 return validate('log', data, next);
70 export function page(data, next) {
71 return validate('page', data, next);
74 export function pageTimings(data, next) {
75 return validate('pageTimings', data, next);
78 export function postData(data, next) {
79 return validate('postData', data, next);
82 export function query(data, next) {
83 return validate('query', data, next);
86 export function request(data, next) {
87 return validate('request', data, next);
90 export function response(data, next) {
91 return validate('response', data, next);
94 export function timings(data, next) {
95 return validate('timings', data, next);