@nrfcloud/ts-json-schema-transformer
Version:
A TypeScript transformer that generates JSON schemas and validators from TypeScript interfaces
82 lines (81 loc) • 4 kB
TypeScript
import Ajv from "ajv";
import { BuildOptions } from "esbuild";
import { JSONSchema7 } from "json-schema";
import ts from "typescript";
import { IProject } from "../project.js";
export declare function hasTransformMarker(node: ts.Node): boolean;
export declare function getGenericArg(project: IProject, expression: ts.CallExpression, idx?: number): [ts.Type, ts.Node, boolean];
export declare function getTmpDir(): string;
export declare function wrapCall(call: ts.CallExpression): ts.CallExpression;
export declare function bundleSource(source: string, options: BuildOptions): string;
export declare function fixAjvImportCode(code: string): string;
export declare function addFormatsAjv(ajv: Ajv): void;
export declare function addFormatsJsf(): void;
/**
* takes a json object and recursively converts it to an object literal expression
*/
export declare function convertObjectToLiteralExpression(object: Record<string, unknown>): ts.Expression;
export declare function convertValueToExpression(value: unknown): ts.Expression;
/**
* Inlines the root $ref in a json schema
*/
export declare function derefJSONSchemaRoot(schema: JSONSchema7): {
$id?: string | undefined;
$ref?: string | undefined;
$schema?: import("json-schema").JSONSchema7Version | undefined;
$comment?: string | undefined;
$defs?: {
[key: string]: import("json-schema").JSONSchema7Definition;
} | undefined;
type?: import("json-schema").JSONSchema7TypeName | import("json-schema").JSONSchema7TypeName[] | undefined;
enum?: import("json-schema").JSONSchema7Type[] | undefined;
const?: import("json-schema").JSONSchema7Type | undefined;
multipleOf?: number | undefined;
maximum?: number | undefined;
exclusiveMaximum?: number | undefined;
minimum?: number | undefined;
exclusiveMinimum?: number | undefined;
maxLength?: number | undefined;
minLength?: number | undefined;
pattern?: string | undefined;
items?: import("json-schema").JSONSchema7Definition | import("json-schema").JSONSchema7Definition[] | undefined;
additionalItems?: import("json-schema").JSONSchema7Definition | undefined;
maxItems?: number | undefined;
minItems?: number | undefined;
uniqueItems?: boolean | undefined;
contains?: import("json-schema").JSONSchema7Definition | undefined;
maxProperties?: number | undefined;
minProperties?: number | undefined;
required?: string[] | undefined;
properties?: {
[key: string]: import("json-schema").JSONSchema7Definition;
} | undefined;
patternProperties?: {
[key: string]: import("json-schema").JSONSchema7Definition;
} | undefined;
additionalProperties?: import("json-schema").JSONSchema7Definition | undefined;
dependencies?: {
[key: string]: import("json-schema").JSONSchema7Definition | string[];
} | undefined;
propertyNames?: import("json-schema").JSONSchema7Definition | undefined;
if?: import("json-schema").JSONSchema7Definition | undefined;
then?: import("json-schema").JSONSchema7Definition | undefined;
else?: import("json-schema").JSONSchema7Definition | undefined;
allOf?: import("json-schema").JSONSchema7Definition[] | undefined;
anyOf?: import("json-schema").JSONSchema7Definition[] | undefined;
oneOf?: import("json-schema").JSONSchema7Definition[] | undefined;
not?: import("json-schema").JSONSchema7Definition | undefined;
format?: string | undefined;
contentMediaType?: string | undefined;
contentEncoding?: string | undefined;
definitions?: {
[key: string]: import("json-schema").JSONSchema7Definition;
} | undefined;
title?: string | undefined;
description?: string | undefined;
default?: import("json-schema").JSONSchema7Type | undefined;
readOnly?: boolean | undefined;
writeOnly?: boolean | undefined;
examples?: import("json-schema").JSONSchema7Type | undefined;
};
export declare const dereference: (schema: JSONSchema7) => JSONSchema7;