@openaddresses/batch-schema 10.3.0 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,14 @@
10
10
 
11
11
  ## Version History
12
12
 
13
+ ### v10.5.0
14
+
15
+ - :bug: Switch to AJV for ability to cast
16
+
17
+ ### v10.4.0
18
+
19
+ - :bug: Fix router verbs
20
+
13
21
  ### v10.3.0
14
22
 
15
23
  - :rocket: Add Response Body Type
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <h1 align=center>Batch-Schema</h1>
2
2
 
3
- <p align=center>Express Plugin for [TypeBox](https://github.com/sinclairzx81/typebox) Request and Response Validation</p>
3
+ <p align=center>Express Plugin for <a href='https://github.com/sinclairzx81/typebox'>TypeBox</a> Request and Response Validation</p>
4
4
 
5
5
  ## Installation
6
6
 
@@ -4,9 +4,17 @@ import morgan from 'morgan';
4
4
  import bodyparser from 'body-parser';
5
5
  import Err from '@openaddresses/batch-error';
6
6
  import { OpenAPIV3 as Doc } from 'openapi-types';
7
- import { TypeCompiler } from '@sinclair/typebox/compiler';
7
+ import Ajv from 'ajv';
8
+ import addFormats from 'ajv-formats';
8
9
  import SchemaAPI from './api.js';
9
10
  import Docs from './openapi.js';
11
+ const ajv = addFormats(new Ajv({
12
+ strict: false,
13
+ allErrors: true,
14
+ useDefaults: true,
15
+ removeAdditional: true,
16
+ coerceTypes: true
17
+ }));
10
18
  /**
11
19
  * @class
12
20
  *
@@ -80,16 +88,16 @@ export default class Schemas {
80
88
  try {
81
89
  this.docs.push({ method: Doc.HttpMethods.GET, path: path }, opts);
82
90
  this.schemas.set(`GET ${path}`, opts);
83
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
84
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
91
+ const paramsValidation = opts.params && ajv.compile(opts.params);
92
+ const queryValidation = opts.query && ajv.compile(opts.query);
85
93
  if (opts.body)
86
94
  throw new Error(`Body not allowed`);
87
95
  const _handler = (req, res, next) => {
88
96
  const errors = [];
89
- if (paramsValidation && !paramsValidation.Check(req.params))
90
- errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
91
- if (queryValidation && !queryValidation.Check(req.query))
92
- errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
97
+ if (paramsValidation && !paramsValidation(req.params))
98
+ errors.push({ type: 'Params', errors: paramsValidation.errors });
99
+ if (queryValidation && !queryValidation(req.query))
100
+ errors.push({ type: 'Query', errors: queryValidation.errors });
93
101
  if (errors.length)
94
102
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
95
103
  return handler(req, res, next);
@@ -104,21 +112,21 @@ export default class Schemas {
104
112
  try {
105
113
  this.docs.push({ method: Doc.HttpMethods.DELETE, path: path }, opts);
106
114
  this.schemas.set(`DELETE ${path}`, opts);
107
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
108
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
115
+ const paramsValidation = opts.params && ajv.compile(opts.params);
116
+ const queryValidation = opts.query && ajv.compile(opts.query);
109
117
  if (opts.body)
110
118
  throw new Error(`Body not allowed`);
111
119
  const _handler = (req, res, next) => {
112
120
  const errors = [];
113
- if (paramsValidation && !paramsValidation.Check(req.params))
114
- errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
115
- if (queryValidation && !queryValidation.Check(req.query))
116
- errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
121
+ if (paramsValidation && !paramsValidation(req.params))
122
+ errors.push({ type: 'Params', errors: paramsValidation.errors });
123
+ if (queryValidation && !queryValidation(req.query))
124
+ errors.push({ type: 'Query', errors: queryValidation.errors });
117
125
  if (errors.length)
118
126
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
119
127
  return handler(req, res, next);
120
128
  };
121
- this.router.get(path, _handler);
129
+ this.router.delete(path, _handler);
122
130
  }
123
131
  catch (err) {
124
132
  throw new Error(`Delete: ${path}: ` + String(err));
@@ -128,22 +136,22 @@ export default class Schemas {
128
136
  try {
129
137
  this.docs.push({ method: Doc.HttpMethods.POST, path: path }, opts);
130
138
  this.schemas.set(`POST ${path}`, opts);
131
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
132
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
133
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
139
+ const paramsValidation = opts.params && ajv.compile(opts.params);
140
+ const queryValidation = opts.query && ajv.compile(opts.query);
141
+ const bodyValidation = opts.body && ajv.compile(opts.body);
134
142
  const _handler = (req, res, next) => {
135
143
  const errors = [];
136
- if (paramsValidation && !paramsValidation.Check(req.params))
137
- errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
138
- if (queryValidation && !queryValidation.Check(req.query))
139
- errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
140
- if (bodyValidation && !bodyValidation.Check(req.body))
141
- errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
144
+ if (paramsValidation && !paramsValidation(req.params))
145
+ errors.push({ type: 'Params', errors: paramsValidation.errors });
146
+ if (queryValidation && !queryValidation(req.query))
147
+ errors.push({ type: 'Query', errors: queryValidation.errors });
148
+ if (bodyValidation && !bodyValidation(req.body))
149
+ errors.push({ type: 'Body', errors: bodyValidation.errors });
142
150
  if (errors.length)
143
151
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
144
152
  return handler(req, res, next);
145
153
  };
146
- this.router.get(path, _handler);
154
+ this.router.post(path, _handler);
147
155
  }
148
156
  catch (err) {
149
157
  throw new Error(`Post: ${path}: ` + String(err));
@@ -153,22 +161,22 @@ export default class Schemas {
153
161
  try {
154
162
  this.docs.push({ method: Doc.HttpMethods.PATCH, path: path }, opts);
155
163
  this.schemas.set(`PATCH ${path}`, opts);
156
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
157
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
158
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
164
+ const paramsValidation = opts.params && ajv.compile(opts.params);
165
+ const queryValidation = opts.query && ajv.compile(opts.query);
166
+ const bodyValidation = opts.body && ajv.compile(opts.body);
159
167
  const _handler = (req, res, next) => {
160
168
  const errors = [];
161
- if (paramsValidation && !paramsValidation.Check(req.params))
162
- errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
163
- if (queryValidation && !queryValidation.Check(req.query))
164
- errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
165
- if (bodyValidation && !bodyValidation.Check(req.body))
166
- errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
169
+ if (paramsValidation && !paramsValidation(req.params))
170
+ errors.push({ type: 'Params', errors: paramsValidation.errors });
171
+ if (queryValidation && !queryValidation(req.query))
172
+ errors.push({ type: 'Query', errors: queryValidation.errors });
173
+ if (bodyValidation && !bodyValidation(req.body))
174
+ errors.push({ type: 'Body', errors: bodyValidation.errors });
167
175
  if (errors.length)
168
176
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
169
177
  return handler(req, res, next);
170
178
  };
171
- this.router.get(path, _handler);
179
+ this.router.patch(path, _handler);
172
180
  }
173
181
  catch (err) {
174
182
  throw new Error(`Patch: ${path}: ` + String(err));
@@ -178,22 +186,22 @@ export default class Schemas {
178
186
  try {
179
187
  this.docs.push({ method: Doc.HttpMethods.PUT, path: path }, opts);
180
188
  this.schemas.set(`PUT ${path}`, opts);
181
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
182
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
183
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
189
+ const paramsValidation = opts.params && ajv.compile(opts.params);
190
+ const queryValidation = opts.query && ajv.compile(opts.query);
191
+ const bodyValidation = opts.body && ajv.compile(opts.body);
184
192
  const _handler = (req, res, next) => {
185
193
  const errors = [];
186
- if (paramsValidation && !paramsValidation.Check(req.params))
187
- errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
188
- if (queryValidation && !queryValidation.Check(req.query))
189
- errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
190
- if (bodyValidation && !bodyValidation.Check(req.body))
191
- errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
194
+ if (paramsValidation && !paramsValidation(req.params))
195
+ errors.push({ type: 'Params', errors: paramsValidation.errors });
196
+ if (queryValidation && !queryValidation(req.query))
197
+ errors.push({ type: 'Query', errors: queryValidation.errors });
198
+ if (bodyValidation && !bodyValidation(req.body))
199
+ errors.push({ type: 'Body', errors: bodyValidation.errors });
192
200
  if (errors.length)
193
201
  return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
194
202
  return handler(req, res, next);
195
203
  };
196
- this.router.get(path, _handler);
204
+ this.router.put(path, _handler);
197
205
  }
198
206
  catch (err) {
199
207
  throw new Error(`Put: ${path}: ` + String(err));
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../lib/schema.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ test('GET: api/schema?method=FAKE', async (t) => {
41
41
  status: 400,
42
42
  message: 'Validation Error',
43
43
  messages: [
44
- { "type": "Query", "errors": [{ "type": 62, "schema": { "anyOf": [{ "const": "GET", "type": "string" }, { "const": "PUT", "type": "string" }, { "const": "POST", "type": "string" }, { "const": "DELETE", "type": "string" }, { "const": "OPTIONS", "type": "string" }, { "const": "HEAD", "type": "string" }, { "const": "PATCH", "type": "string" }, { "const": "TRACE", "type": "string" }] }, "path": "/method", "value": "fake", "message": "Expected union value" }] }
44
+ { "type": "Query", "errors": [{ "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/0/const", "keyword": "const", "params": { "allowedValue": "GET" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/1/const", "keyword": "const", "params": { "allowedValue": "PUT" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/2/const", "keyword": "const", "params": { "allowedValue": "POST" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/3/const", "keyword": "const", "params": { "allowedValue": "DELETE" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/4/const", "keyword": "const", "params": { "allowedValue": "OPTIONS" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/5/const", "keyword": "const", "params": { "allowedValue": "HEAD" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/6/const", "keyword": "const", "params": { "allowedValue": "PATCH" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf/7/const", "keyword": "const", "params": { "allowedValue": "TRACE" }, "message": "must be equal to constant" }, { "instancePath": "/method", "schemaPath": "#/properties/method/anyOf", "keyword": "anyOf", "params": {}, "message": "must match a schema in anyOf" }] }
45
45
  ]
46
46
  });
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.srv.test.js","sourceRoot":"","sources":["../../test/schema.srv.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.srv.test.js","sourceRoot":"","sources":["../../test/schema.srv.test.ts"],"names":[],"mappings":"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"}
package/lib/schema.ts CHANGED
@@ -6,14 +6,22 @@ import Err from '@openaddresses/batch-error';
6
6
  import { Static, TSchema } from '@sinclair/typebox';
7
7
  import { OpenAPIV3 as Doc } from 'openapi-types'
8
8
  import { Router, RequestHandler } from 'express'
9
- import { TypeCompiler } from '@sinclair/typebox/compiler';
10
- import type { ValueError } from '@sinclair/typebox/errors';
9
+ import Ajv, { ErrorObject } from 'ajv'
10
+ import addFormats from 'ajv-formats'
11
11
  import { RequestValidation } from './types.js';
12
12
 
13
13
  import SchemaAPI from './api.js';
14
14
  import Docs from './openapi.js';
15
15
 
16
- export type ErrorListItem = { type: 'Body' | 'Query' | 'Params'; errors: ValueError[] };
16
+ const ajv = addFormats(new Ajv({
17
+ strict: false,
18
+ allErrors: true,
19
+ useDefaults: true,
20
+ removeAdditional: true,
21
+ coerceTypes: true
22
+ }));
23
+
24
+ export type ErrorListItem = { type: 'Body' | 'Query' | 'Params'; errors: ErrorObject[] };
17
25
 
18
26
  /**
19
27
  * @class
@@ -105,14 +113,14 @@ export default class Schemas {
105
113
  this.docs.push({ method: Doc.HttpMethods.GET, path: path }, opts);
106
114
  this.schemas.set(`GET ${path}`, opts);
107
115
 
108
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
109
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
116
+ const paramsValidation = opts.params && ajv.compile(opts.params);
117
+ const queryValidation = opts.query && ajv.compile(opts.query);
110
118
  if (opts.body) throw new Error(`Body not allowed`);
111
119
 
112
120
  const _handler: RequestHandler = (req, res, next) => {
113
121
  const errors: Array<ErrorListItem> = [];
114
- if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
115
- if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
122
+ if (paramsValidation && !paramsValidation(req.params)) errors.push({ type: 'Params', errors: paramsValidation.errors as ErrorObject[] });
123
+ if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
116
124
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
117
125
 
118
126
  return handler(req, res, next);
@@ -133,20 +141,20 @@ export default class Schemas {
133
141
  this.docs.push({ method: Doc.HttpMethods.DELETE, path: path }, opts);
134
142
  this.schemas.set(`DELETE ${path}`, opts);
135
143
 
136
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
137
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
144
+ const paramsValidation = opts.params && ajv.compile(opts.params);
145
+ const queryValidation = opts.query && ajv.compile(opts.query);
138
146
  if (opts.body) throw new Error(`Body not allowed`);
139
147
 
140
148
  const _handler: RequestHandler = (req, res, next) => {
141
149
  const errors: Array<ErrorListItem> = [];
142
- if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
143
- if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
150
+ if (paramsValidation && !paramsValidation(req.params)) errors.push({ type: 'Params', errors: paramsValidation.errors as ErrorObject[] });
151
+ if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
144
152
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
145
153
 
146
154
  return handler(req, res, next);
147
155
  };
148
156
 
149
- this.router.get(path, _handler);
157
+ this.router.delete(path, _handler);
150
158
  } catch (err) {
151
159
  throw new Error(`Delete: ${path}: ` + String(err))
152
160
  }
@@ -161,21 +169,21 @@ export default class Schemas {
161
169
  this.docs.push({ method: Doc.HttpMethods.POST, path: path }, opts);
162
170
  this.schemas.set(`POST ${path}`, opts);
163
171
 
164
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
165
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
166
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
172
+ const paramsValidation = opts.params && ajv.compile(opts.params);
173
+ const queryValidation = opts.query && ajv.compile(opts.query);
174
+ const bodyValidation = opts.body && ajv.compile(opts.body);
167
175
 
168
176
  const _handler: RequestHandler = (req, res, next) => {
169
177
  const errors: Array<ErrorListItem> = [];
170
- if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
171
- if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
172
- if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
178
+ if (paramsValidation && !paramsValidation(req.params)) errors.push({ type: 'Params', errors: paramsValidation.errors as ErrorObject[] });
179
+ if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
180
+ if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
173
181
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
174
182
 
175
183
  return handler(req, res, next);
176
184
  };
177
185
 
178
- this.router.get(path, _handler);
186
+ this.router.post(path, _handler);
179
187
  } catch (err) {
180
188
  throw new Error(`Post: ${path}: ` + String(err))
181
189
  }
@@ -190,21 +198,21 @@ export default class Schemas {
190
198
  this.docs.push({ method: Doc.HttpMethods.PATCH, path: path }, opts);
191
199
  this.schemas.set(`PATCH ${path}`, opts);
192
200
 
193
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
194
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
195
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
201
+ const paramsValidation = opts.params && ajv.compile(opts.params);
202
+ const queryValidation = opts.query && ajv.compile(opts.query);
203
+ const bodyValidation = opts.body && ajv.compile(opts.body);
196
204
 
197
205
  const _handler: RequestHandler = (req, res, next) => {
198
206
  const errors: Array<ErrorListItem> = [];
199
- if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
200
- if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
201
- if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
207
+ if (paramsValidation && !paramsValidation(req.params)) errors.push({ type: 'Params', errors: paramsValidation.errors as ErrorObject[] });
208
+ if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
209
+ if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
202
210
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
203
211
 
204
212
  return handler(req, res, next);
205
213
  };
206
214
 
207
- this.router.get(path, _handler);
215
+ this.router.patch(path, _handler);
208
216
  } catch (err) {
209
217
  throw new Error(`Patch: ${path}: ` + String(err))
210
218
  }
@@ -219,21 +227,21 @@ export default class Schemas {
219
227
  this.docs.push({ method: Doc.HttpMethods.PUT, path: path }, opts);
220
228
  this.schemas.set(`PUT ${path}`, opts);
221
229
 
222
- const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
223
- const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
224
- const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
230
+ const paramsValidation = opts.params && ajv.compile(opts.params);
231
+ const queryValidation = opts.query && ajv.compile(opts.query);
232
+ const bodyValidation = opts.body && ajv.compile(opts.body);
225
233
 
226
234
  const _handler: RequestHandler = (req, res, next) => {
227
235
  const errors: Array<ErrorListItem> = [];
228
- if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
229
- if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
230
- if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
236
+ if (paramsValidation && !paramsValidation(req.params)) errors.push({ type: 'Params', errors: paramsValidation.errors as ErrorObject[] });
237
+ if (queryValidation && !queryValidation(req.query)) errors.push({ type: 'Query', errors: queryValidation.errors as ErrorObject[] });
238
+ if (bodyValidation && !bodyValidation(req.body)) errors.push({ type: 'Body', errors: bodyValidation.errors as ErrorObject[] });
231
239
  if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
232
240
 
233
241
  return handler(req, res, next);
234
242
  };
235
243
 
236
- this.router.get(path, _handler);
244
+ this.router.put(path, _handler);
237
245
  } catch (err) {
238
246
  throw new Error(`Put: ${path}: ` + String(err))
239
247
  }
package/lib/types.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { Static, TSchema } from '@sinclair/typebox';
2
- import type { Request } from 'express';
3
- import type { ParamsDictionary } from 'express-serve-static-core';
1
+ import { TSchema } from '@sinclair/typebox';
4
2
 
5
3
  export type RequestValidation<
6
4
  TParams extends TSchema,
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "root": true,
5
5
  "main": "dist/index.js",
6
6
  "types": "index.ts",
7
- "version": "10.3.0",
7
+ "version": "10.5.0",
8
8
  "description": "Strongly Validated JSON Schema support for address",
9
9
  "repository": "git@github.com:openaddresses/batch-schema",
10
10
  "author": "ingalls <nick@ingalls.ca>",
@@ -23,6 +23,8 @@
23
23
  "@openaddresses/batch-error": "^2.1.2",
24
24
  "@sinclair/typebox": "^0.32.14",
25
25
  "@types/body-parser": "^1.19.5",
26
+ "ajv": "^8.12.0",
27
+ "ajv-formats": "^2.1.1",
26
28
  "body-parser": "^1.20.0",
27
29
  "express": "^4.17.1",
28
30
  "glob": "^10.0.0",
@@ -50,7 +50,7 @@ test('GET: api/schema?method=FAKE', async (t) => {
50
50
  status: 400,
51
51
  message: 'Validation Error',
52
52
  messages: [
53
- {"type":"Query","errors":[{"type":62,"schema":{"anyOf":[{"const":"GET","type":"string"},{"const":"PUT","type":"string"},{"const":"POST","type":"string"},{"const":"DELETE","type":"string"},{"const":"OPTIONS","type":"string"},{"const":"HEAD","type":"string"},{"const":"PATCH","type":"string"},{"const":"TRACE","type":"string"}]},"path":"/method","value":"fake","message":"Expected union value"}]}
53
+ {"type":"Query","errors":[{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/0/const","keyword":"const","params":{"allowedValue":"GET"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/1/const","keyword":"const","params":{"allowedValue":"PUT"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/2/const","keyword":"const","params":{"allowedValue":"POST"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/3/const","keyword":"const","params":{"allowedValue":"DELETE"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/4/const","keyword":"const","params":{"allowedValue":"OPTIONS"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/5/const","keyword":"const","params":{"allowedValue":"HEAD"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/6/const","keyword":"const","params":{"allowedValue":"PATCH"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf/7/const","keyword":"const","params":{"allowedValue":"TRACE"},"message":"must be equal to constant"},{"instancePath":"/method","schemaPath":"#/properties/method/anyOf","keyword":"anyOf","params":{},"message":"must match a schema in anyOf"}]}
54
54
  ]
55
55
  });
56
56
  } catch (err) {