core-types-json-schema v2.2.0
core-types-json-schema
This package provides conversion functions between core-types and JSON Schema (and Open API through the openapi-json-schema package).
You probably don't want to use this package directly, but rather typeconv which uses this package to convert between TypeScript, JSON Schema, GraphQL and Open API.
See
Other conversion packages:
Usage
There are four main conversion functions, convertCoreTypesToJsonSchema, convertJsonSchemaToCoreTypes, convertCoreTypesToOpenApi and convertOpenApiTpCoreTypes, all returning a wrapped value, of the type ConversionResult.
This package also re-exports jsonSchemaTypeToOpenApi and openApiToJsonSchemaType from openapi-json-schema.
core-types to JSON Schema
import { convertCoreTypesToJsonSchema } from 'core-types-json-schema'
let doc; // This core-types document comes from somewhere
const { data: jsonSchema } = convertCoreTypesToJsonSchema( doc );You can provide options as a second argument on the type:
interface ConvertCoreTypesToJsonSchemaOptions
{
sourceFilename?: string;
filename?: string;
userPackage?: string;
userPackageUrl?: string;
}These fields will be used when constructing a comment ($comment) at the root of the JSON Schema, describing the context of where the schema comes from.
JSON Schema to core-types
import { convertJsonSchemaToCoreTypes } from 'core-types-json-schema'
let jsonSchema; // This JSON Schema comes from somewhere
const { data: doc } = convertJsonSchemaToCoreTypes( jsonSchema );core-types to Open API
import { convertCoreTypesToOpenApi } from 'core-types-json-schema'
let doc; // This core-types document comes from somewhere
const { data: jsonSchema } = convertCoreTypesToOpenApi( doc );You can provide options as a second argument on the type:
interface CoreTypesToOpenApiOptions extends ConvertCoreTypesToJsonSchemaOptions
{
title: string;
version: string;
schemaVersion?: string;
}The title and version are required for Open API. The schemaVersion defaults to 3.0.0.
Open API to core-types
import { convertOpenApiTpCoreTypes } from 'core-types-json-schema'
let openApiSchema; // This Open API schema comes from somewhere
const { data: doc } = convertOpenApiTpCoreTypes( openApiSchema );