UNPKG

@gftdcojp/ksqldb-orm

Version:

ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions

89 lines 3.13 kB
/** * FieldType 定義 - Drizzle ORM ライクな DSL */ export interface FieldDefinition { type: string; nullable: boolean; primaryKey: boolean; default?: any; logicalType?: string; } export declare class BaseFieldType { protected definition: FieldDefinition; constructor(type: string, logicalType?: string); notNull(): this; primaryKey(): this; withDefault(defaultValue: any): this; getDefinition(): FieldDefinition; toAvroType(): string | string[] | any; } export declare class StringFieldType extends BaseFieldType { constructor(); } export declare class IntFieldType extends BaseFieldType { constructor(); } export declare class LongFieldType extends BaseFieldType { constructor(); } export declare class DoubleFieldType extends BaseFieldType { constructor(); } export declare class BooleanFieldType extends BaseFieldType { constructor(); } export declare class UuidFieldType extends BaseFieldType { constructor(); } export declare class TimestampFieldType extends BaseFieldType { constructor(); } export declare class DateFieldType extends BaseFieldType { constructor(); } export declare class TimeFieldType extends BaseFieldType { constructor(); } export declare class DecimalFieldType extends BaseFieldType { constructor(precision?: number, scale?: number); } export declare class ArrayFieldType extends BaseFieldType { constructor(itemType: BaseFieldType); } export declare class MapFieldType extends BaseFieldType { constructor(valueType: BaseFieldType); } /** * FieldType エクスポート - 設計案の通り(各フィールドは新しいインスタンスを返す) */ export declare const FieldType: { readonly STRING: StringFieldType; readonly INT: IntFieldType; readonly LONG: LongFieldType; readonly DOUBLE: DoubleFieldType; readonly BOOLEAN: BooleanFieldType; readonly UUID: UuidFieldType; readonly TIMESTAMP: TimestampFieldType; readonly DATE: DateFieldType; readonly TIME: TimeFieldType; readonly DECIMAL: (precision?: number, scale?: number) => DecimalFieldType; readonly ARRAY: (itemType: BaseFieldType) => ArrayFieldType; readonly MAP: (valueType: BaseFieldType) => MapFieldType; }; /** * 個別のフィールド関数エクスポート(Drizzle ORMライク) * 各関数は新しいフィールドインスタンスを返す */ export declare function string(): StringFieldType; export declare function int(): IntFieldType; export declare function long(): LongFieldType; export declare function double(): DoubleFieldType; export declare function boolean(): BooleanFieldType; export declare function uuid(): UuidFieldType; export declare function timestamp(): TimestampFieldType; export declare function date(): DateFieldType; export declare function time(): TimeFieldType; export declare function decimal(precision?: number, scale?: number): DecimalFieldType; export declare function array(itemType: BaseFieldType): ArrayFieldType; export declare function map(valueType: BaseFieldType): MapFieldType; //# sourceMappingURL=field-types.d.ts.map