Skip to content

API Reference

normalize(document, options?)

Normalizes a Postman-exported OpenAPI document.

Parameters

ParameterTypeDescription
documentOpenAPIDocumentThe OpenAPI document to normalize
optionsNormalizeOptions?Optional configuration

NormalizeOptions

PropertyTypeDefaultDescription
preserveHeadersstring[][]Header names to keep (bypass noisy-header stripping)
additionalNoisyHeadersstring[][]Extra header names to treat as noisy and remove
stripXExtensionsbooleanfalseRemove all x-* vendor extension keys
keepExamplesbooleanfalsePreserve named examples instead of collapsing
inferSchemasbooleantrueInfer schemas from example values when schema is empty

Returns

OpenAPIDocument — A new normalized document (input is not mutated).

Example

ts
import { normalize } from 'openapi-normalizer';
import type { OpenAPIDocument } from 'openapi-normalizer';

const doc: OpenAPIDocument = JSON.parse(rawJson);
const result: OpenAPIDocument = normalize(doc);

// With options
const result2 = normalize(doc, {
  preserveHeaders: ['X-Request-Id'],
  stripXExtensions: true,
  keepExamples: true,
});

Transforms applied

  • Strips noisy HTTP transport response headers
  • Collapses named examples → single example
  • Infers schemas from example values when missing
  • Strips per-property inline example values
  • Removes security: [{}] (empty security)
  • Removes description duplicating summary
  • Deduplicates tags
  • Annotates Postman server URLs
  • Removes empty contact, components.securitySchemes, etc.

Released under the MIT License.