/openapi-filter

Filter internal paths, operations, parameters, schemas etc from OpenAPI/Swagger/AsyncAPI definitions

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

openapi-filter

Filter internal paths, operations, parameters, schemas etc from OpenAPI/Swagger definitions

Simply tag any object within the definition with an x-internal specification extension, and it will be removed from the output.

For example:

openapi: 3.0.0
info:
  title: API
  version: 1.0.0
paths:
  /:
    get:
      x-internal: true
      ...

Works with OpenAPI/Swagger 2.0 and 3.0.x and AsyncAPI 1.x definitions.

Usage: openapi-filter [options] {infile} [{outfile}]

Options:
  --valid           try to ensure inverse output is valid                 [boolean]
  -h, --help        Show help                                             [boolean]
  --version         Show version number                                   [boolean]
  -i, --inverse     output filtered elements only                         [boolean]
  -t, --tags        tags to filter by             [array] [default: ["x-internal"]]
  -s, --strip       strip the tags after filtering                        [boolean]
  -o, --overrides   tags that act as overrides                [array] [default: []]
  -l, --lineWidth   determines the line width of the output                [number]

use -- to separate tags from other options, i.e.:

openapi-filter --tags x-private x-hidden -- source.yaml target.yaml

or

let openapiFilter = require('openapi-filter');
let options = {}; // defaults are shown
//options.inverse = false;
//options.valid = false;
//options.tags = ['x-internal'];
let res = openapiFilter.filter(obj,options);