UNPKG

avro-typescript

Version:

TypeScript code generator for Apache Avro types

56 lines (55 loc) 1.77 kB
/**** Contains the Interfaces and Type Guards for Avro schema */ export type Schema = RecordType | EnumType; export interface ConversionOptions { logicalTypes?: { [type: string]: string; }; } export type Type = NameOrType | NameOrType[]; export type NameOrType = TypeNames | RecordType | ArrayType | NamedType | LogicalType | FixedType; export type TypeNames = "record" | "array" | "null" | "map" | "fixed" | string; export interface Field { name: string; type: Type; default?: string | number | null | boolean; } export interface BaseType { type: TypeNames; } export interface RecordType extends BaseType { type: "record"; name: string; fields: Field[]; } export interface ArrayType extends BaseType { type: "array"; items: Type; } export interface MapType extends BaseType { type: "map"; values: Type; } export interface EnumType extends BaseType { type: "enum"; name: string; symbols: string[]; } export interface FixedType extends BaseType { type: "fixed"; name: string; size: number; } export interface NamedType extends BaseType { type: string; } export interface LogicalType extends BaseType { logicalType: string; } export declare function isRecordType(type: BaseType): type is RecordType; export declare function isArrayType(type: BaseType): type is ArrayType; export declare function isMapType(type: BaseType): type is MapType; export declare function isEnumType(type: BaseType): type is EnumType; export declare function isFixedType(type: BaseType): type is FixedType; export declare function isUnion(type: Type): type is NamedType[]; export declare function isOptional(type: Type): boolean; export declare function isLogicalType(type: Type): type is LogicalType;