@genapi/transform
v4.1.0
Published
<!-- automd:badges -->
Readme
@genapi/transform
Spec transforms: Swagger 2 ↔ OpenAPI 3, WordPress REST API → Swagger 2, etc., so the parser works with a unified format.
Installation
pnpm add @genapi/transformAPI
Transform
swagger2ToSwagger3(source)
Normalizes OpenAPI 3.x to a Swagger 2–like shape (host, basePath, schemes, definitions from components.schemas). Mutates and returns the same object for use with Swagger 2–based tooling.
Example:
const swagger2Like = swagger2ToSwagger3(openApi3Spec)
// swagger2Like.host, basePath, definitions, schemes set from servers/componentswpapiToSwagger2(source)
Converts WordPress REST API schema to Swagger 2.0 format.
Example:
const swagger = wpapiToSwagger2({ routes: { '/wp/v2': { namespace: 'wp/v2', endpoints: [...] } } })
// Use with parser or pipeline as OpenAPI 2.0 inputbuildParam(name, method, endpoint, detail)
Builds a single OpenAPI parameter from WordPress argument definition.
Example:
buildParam('id', 'GET', '/posts/{id}', { type: 'integer' }) // { name: 'id', in: 'path', type: 'integer', ... }convertEndpoint(endpoint)
eslint-disable no-cond-assign
Converts WordPress-style path patterns to Swagger path format.
Example:
convertEndpoint('/wp/v2/posts/(?P<id>[\\d]+)') // '/wp/v2/posts/{id}'default
Transform
swagger2ToSwagger3(source)
Normalizes OpenAPI 3.x to a Swagger 2–like shape (host, basePath, schemes, definitions from components.schemas). Mutates and returns the same object for use with Swagger 2–based tooling.
Example:
const swagger2Like = swagger2ToSwagger3(openApi3Spec)
// swagger2Like.host, basePath, definitions, schemes set from servers/componentswpapiToSwagger2(source)
Converts WordPress REST API schema to Swagger 2.0 format.
Example:
const swagger = wpapiToSwagger2({ routes: { '/wp/v2': { namespace: 'wp/v2', endpoints: [...] } } })
// Use with parser or pipeline as OpenAPI 2.0 inputgetParametersFromArgs(endpoint, args, method)
Builds OpenAPI parameters from WordPress endpoint args.
Example:
getParametersFromArgs('/posts/{id}', { id: { type: 'integer' } }, 'GET')getParametersFromEndpoint(endpoint)
Extracts path parameters from a WordPress-style endpoint pattern.
Example:
getParametersFromEndpoint('/posts/(?P<id>[\\d]+)') // [{ name: 'id', in: 'path', type: 'integer', required: true }]License
🤖 auto updated with automd
