Awesome
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 );