@techmmunity/symbiosis
Version:
Symbiosis - The Ultimate OM For All Databases
34 lines (33 loc) • 1.32 kB
TypeScript
import type { DatabaseEvents } from "./database-events";
import type { EntityMetadata } from "./entity-metadata";
import type { MetadataType } from "./metadata-type";
import type { BaseConnectionOptions } from "../../connection/types/connection-options";
export declare type AutoGenerationFunc = (p: {
connectionOptions?: BaseConnectionOptions;
columnMetadata?: ColumnMetadata;
entityMetadata?: EntityMetadata;
data?: Record<string, any>;
}) => any;
export declare type PreDefinedAutoGenerationMethods = "date" | "uuid";
export interface ColumnMetadata<ExtraData = Record<string, any>> {
/**
* ----------------------------------------------
* When a new metadata is added, remember to also
* add at the const COLUMN_METADATA_KEYS
* ----------------------------------------------
*/
name: string;
databaseName: string;
isNameAlreadyFormatted?: boolean;
comment?: string;
type: MetadataType;
databaseType?: string;
isArray?: boolean;
enumName?: string;
enumValues?: Array<number | string>;
autoGenerate?: AutoGenerationFunc | PreDefinedAutoGenerationMethods | any;
autoGenerateOnlyOnEvents?: Array<DatabaseEvents>;
primary?: boolean;
extras?: ExtraData;
}
export declare const COLUMN_METADATA_KEYS: Array<keyof ColumnMetadata>;