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.
Other conversion packages:
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
.
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.
import { convertJsonSchemaToCoreTypes } from 'core-types-json-schema'
let jsonSchema; // This JSON Schema comes from somewhere
const { data: doc } = convertJsonSchemaToCoreTypes( jsonSchema );
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
.
import { convertOpenApiTpCoreTypes } from 'core-types-json-schema'
let openApiSchema; // This Open API schema comes from somewhere
const { data: doc } = convertOpenApiTpCoreTypes( openApiSchema );