UNPKG

@jsonjoy.com/json-type

Version:

High-performance JSON Pointer implementation

37 lines (36 loc) 2.13 kB
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 { AbsType } from './AbsType'; import type { SchemaOf, Type } from '../types'; import type { TypeSystem } from '../../system/TypeSystem'; import type { json_string } from '@jsonjoy.com/util/lib/json-brand'; export declare class OrType<T extends Type[]> extends AbsType<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]>; }>; 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; 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; toJson(value: unknown, system?: TypeSystem | undefined): json_string<unknown>; toString(tab?: string): string; }