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)