OAS Kit Common Utilities

1.0.8 · active · verified Sun Apr 19

oas-kit-common is a foundational utility library within the larger `Mermade/oas-kit` mono-repository, providing a collection of reusable helper functions essential for working with OpenAPI (formerly Swagger) specifications. It serves as a dependency for other `oas-kit` packages such as `swagger2openapi`, `oas-validator`, and `oas-resolver`, offering core utilities for tasks like data sanitization, object manipulation, and type checking pertinent to OpenAPI document processing. The current stable version is `1.0.8`. As part of an actively maintained ecosystem, its release cadence is tied to the broader `oas-kit` project, which sees continuous development and updates across its components, ensuring compatibility with evolving OpenAPI standards and practices. Key differentiators include its tight integration with other `oas-kit` tools and its focus on robust, tested utilities for spec transformation and validation workflows.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates importing and using key utility functions like `sanitise` for cleaning strings for OpenAPI component names and `mergeDeep` for combining OpenAPI-like JavaScript objects, showing how `oas-kit-common` facilitates common manipulation tasks.

import { sanitise, mergeDeep } from 'oas-kit-common';

const originalObject = {
  paths: {
    '/users': { get: { operationId: 'getUsers' } },
  },
  components: {
    schemas: {
      'Foo Bar': { type: 'object' }
    }
  }
};

const updates = {
  paths: {
    '/users': { post: { operationId: 'createUser' } }
  }
};

// Example 1: Sanitizing a string for use as an OpenAPI component name
const dirtyName = 'My Awesome Component Name';
const cleanName = sanitise(dirtyName);
console.log(`Original: "${dirtyName}", Sanitized: "${cleanName}"`);

// Example 2: Deeply merging two OpenAPI-like objects
const mergedObject = mergeDeep({}, originalObject, updates);
console.log('Merged Object:', JSON.stringify(mergedObject, null, 2));

// Example 3: Demonstrate sanitization in context of object modification
const schemaName = 'Foo Bar';
const sanitizedSchemaName = sanitise(schemaName);
const modifiedObject = {
  ...originalObject,
  components: {
    schemas: {
      [sanitizedSchemaName]: originalObject.components.schemas[schemaName]
    }
  }
};
console.log('Modified Object with Sanitized Schema Name:', JSON.stringify(modifiedObject, null, 2));

view raw JSON →