npm

Need private packages and team management tools?Check out npm Orgs. »

oas-normalize

0.0.6 • Public • Published

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 --save

Usage

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.

Keywords

none

install

npm i oas-normalize

Downloadsweekly downloads

1,801

version

0.0.6

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
Report a vulnerability