Package Exports
- oas-normalize
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (oas-normalize) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Swagger 2 or OAS 3? YAML or JSON? URL, path, string or object? Who cares! It just works.
This module uses a bunch of other great modules to do the heavy lifting, and normalizes everything!
Install
npm install oas-normalize --saveUsage
It's pretty simple:
const OAS = require('oas-normalize');
const oas = new OAS('https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml'); // Or a string, pathname, JSON blob, whatever
oas.validate((err, spec) => {
if (err) {
console.log(err.errors);
return;
}
console.log(spec); // spec will always be JSON, and valid
});Errors
For validation errors, when available, you'll get back an object:
{
"errors": [
{
"message": "User-friendly message",
"path": [...array of the path to the error...]
}
],
"full": ...raw errors...
}message is almost always there, but path is less dependable.
Helper functions
If you want some more functionality, you can do anything here:
| Function | What it does |
|---|---|
| oas.load(cb) | Just load the file, valid or not, as JSON |
| oas.bundle(cb) | Bring together all files into one JSON blob (but keep $refs) |
| oas.deref(cb) | Resolve $refs |
| oas.validate(cb, [convertToLatest?])) | Validate the whole thing! |
Other little features
Always return OAS 3
If you want .validate to always return a OAS 3 document, include a true as the second param: oas.validate(action, true);
Enable local paths
For security reasons, you need to enable it. Use new OAS('./whatever.json', { enablePaths: true }) to load local files.
