@jsonjoy.com/json-type
Version:
High-performance JSON Pointer implementation
46 lines (45 loc) • 2.69 kB
TypeScript
import * as schema from '../../schema';
import type { ValidatorCodegenContext } from '../../codegen/validator/ValidatorCodegenContext';
import type { ValidationPath } from '../../codegen/validator/types';
import type { JsonTextEncoderCodegenContext } from '../../codegen/json/JsonTextEncoderCodegenContext';
import { CborEncoderCodegenContext } from '../../codegen/binary/CborEncoderCodegenContext';
import { JsonEncoderCodegenContext } from '../../codegen/binary/JsonEncoderCodegenContext';
import type { JsExpression } from '@jsonjoy.com/util/lib/codegen/util/JsExpression';
import { MessagePackEncoderCodegenContext } from '../../codegen/binary/MessagePackEncoderCodegenContext';
import type { CapacityEstimatorCodegenContext } from '../../codegen/capacity/CapacityEstimatorCodegenContext';
import { AbstractType } from './AbstractType';
import type * as jsonSchema from '../../json-schema';
import type { SchemaOf, Type } from '../types';
import type { TypeSystem } from '../../system/TypeSystem';
import type { json_string } from '@jsonjoy.com/util/lib/json-brand';
import type * as ts from '../../typescript/types';
import type { TypeExportContext } from '../../system/TypeExportContext';
export declare class OrType<T extends Type[]> extends AbstractType<schema.OrSchema<{
[K in keyof T]: SchemaOf<T[K]>;
}>> {
protected types: T;
protected schema: schema.OrSchema<any>;
constructor(types: T, options?: Omit<schema.OrSchema, 'kind' | 'type'>);
getSchema(): schema.OrSchema<{
[K in keyof T]: SchemaOf<T[K]>;
}>;
toJsonSchema(ctx?: TypeExportContext): jsonSchema.JsonSchemaOr;
getOptions(): schema.Optional<schema.OrSchema<{
[K in keyof T]: SchemaOf<T[K]>;
}>>;
options(options: schema.Optional<schema.OrSchema> & Partial<Pick<schema.OrSchema, 'discriminator'>>): this;
private __discriminator;
discriminator(): (val: unknown) => number;
validateSchema(): void;
codegenValidator(ctx: ValidatorCodegenContext, path: ValidationPath, r: string): void;
codegenJsonTextEncoder(ctx: JsonTextEncoderCodegenContext, value: JsExpression): void;
private codegenBinaryEncoder;
codegenCborEncoder(ctx: CborEncoderCodegenContext, value: JsExpression): void;
codegenMessagePackEncoder(ctx: MessagePackEncoderCodegenContext, value: JsExpression): void;
codegenJsonEncoder(ctx: JsonEncoderCodegenContext, value: JsExpression): void;
codegenCapacityEstimator(ctx: CapacityEstimatorCodegenContext, value: JsExpression): void;
random(): unknown;
toTypeScriptAst(): ts.TsUnionType;
toJson(value: unknown, system?: TypeSystem | undefined): json_string<unknown>;
toString(tab?: string): string;
}