UNPKG

@nrfcloud/ts-json-schema-transformer

Version:

A TypeScript transformer that generates JSON schemas and validators from TypeScript interfaces

82 lines (81 loc) 4 kB
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;