UNPKG

epic-sql

Version:
65 lines (64 loc) 2.49 kB
import { DefaultValue, Indexes } from "epic-sql-query"; import { BaseSchema } from "../base-schema"; import { MetaDataKeys } from "./enums"; export interface ColumnInterface extends ColumnOptions { name: string; resolve: (value: any) => any; } export interface ColumnOptions { choices?: Array<string>; length?: number | null; nullable?: boolean; primaryKey?: boolean; index?: Indexes[]; collation?: string; defaultValue?: DefaultValue; onUpdate?: DefaultValue; } export interface PrimaryKeyInterface { name: string; type: string; value: undefined; schema: undefined; mapping: undefined; joinType: undefined; resolver?: undefined; dependencies?: undefined; } export declare const PrimaryKey: () => (target: Object, key: string) => void; export declare const Column: (options?: ColumnOptions | undefined) => (target: Object, key: string) => void; export declare type JoinTypes = "full" | "inner" | "left" | "right"; export interface RelationOptions<T extends BaseSchema, B extends BaseSchema> { schema: () => new () => T; mapping: [keyof T, keyof B]; joinType?: JoinTypes; } export interface OneRelationInterface extends RelationOptions<BaseSchema, BaseSchema> { name: string; type: MetaDataKeys.RELATION_INDEX; value: MetaDataKeys.ONE_RELATION; resolver?: undefined; dependencies?: undefined; } export declare const OneRelation: <T extends BaseSchema, B extends BaseSchema>(options: RelationOptions<T, B>) => (target: B, key: string) => void; export interface ManyRelationInterface extends RelationOptions<BaseSchema, BaseSchema> { name: string; type: MetaDataKeys.RELATION_INDEX; value: MetaDataKeys.MANY_RELATION; resolver?: undefined; dependencies?: undefined; } export declare const ManyRelation: <T extends BaseSchema, B extends BaseSchema>(options: RelationOptions<T, B>) => (target: B, key: string) => void; export interface MetadataOptions<T extends BaseSchema> { resolver?: (Schema: T) => any; dependencies?: (keyof T)[]; } export interface MetadataInterface extends MetadataOptions<BaseSchema> { name: string; type: MetaDataKeys.METADATA_INDEX; value: undefined; schema: undefined; mapping: undefined; joinType: undefined; } export declare const Metadata: <T extends BaseSchema>(options?: MetadataOptions<T> | undefined) => (target: object, key: string) => void;