CLI to compile an OpenAPI specification as JavaScript validation file, optimized for performances.
npm install openapi-static-validator -g
openapi-static-validator spec.json > validate.js
Then the validation can be imported in your code:
import { validateRequest, RequestError } from './validate'; const result = validateRequest({ path: 'say/hello', method: 'post', headers: {}, query: {}, body: { message: 'Hello world', }, }); if (result instanceof RequestError) { // Do something with the error } else { console.log(result); }
When using format
for data of type: string
, you need to define validators for them:
import { validateRequest, ValidationError } from './validate'; const result = validateRequest( { path: 'say/hello', method: 'post', headers: {}, query: {}, body: { message: 'Hello world', }, }, { stringFormats: { uri: (value, path) => value.startsWith('https://') ? null : new ValidationError(path, 'Invalid url'), }, }, );
-
in: header
andin: cookie
parameters - validation of
type: integer
, not just asnumber
- validation of response using a
validateResponse
function
To publish the package:
- Change version in
package.json
- Commit the change and tag it
- Run
npm run build
andnpm publish