CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
table.d.ts96 linesDownload Raw Back to gel-core
1import type { BuildColumns, BuildExtraConfigColumns } from "../column-builder.js";2import { entityKind } from "../entity.js";3import { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from "../table.js";4import type { CheckBuilder } from "./checks.js";5import { type GelColumnsBuilders } from "./columns/all.js";6import type { GelColumn, GelColumnBuilderBase } from "./columns/common.js";7import type { ForeignKeyBuilder } from "./foreign-keys.js";8import type { AnyIndexBuilder } from "./indexes.js";9import type { GelPolicy } from "./policies.js";10import type { PrimaryKeyBuilder } from "./primary-keys.js";11import type { UniqueConstraintBuilder } from "./unique-constraint.js";12export type GelTableExtraConfigValue = AnyIndexBuilder | CheckBuilder | ForeignKeyBuilder | PrimaryKeyBuilder | UniqueConstraintBuilder | GelPolicy;13export type GelTableExtraConfig = Record<string, GelTableExtraConfigValue>;14export type TableConfig = TableConfigBase<GelColumn>;15export declare class GelTable<T extends TableConfig = TableConfig> extends Table<T> {16    static readonly [entityKind]: string;17}18export type AnyGelTable<TPartial extends Partial<TableConfig> = {}> = GelTable<UpdateTableConfig<TableConfig, TPartial>>;19export type GelTableWithColumns<T extends TableConfig> = GelTable<T> & {20    [Key in keyof T['columns']]: T['columns'][Key];21} & {22    enableRLS: () => Omit<GelTableWithColumns<T>, 'enableRLS'>;23};24export interface GelTableFn<TSchema extends string | undefined = undefined> {25    /**26     * @deprecated The third parameter of GelTable is changing and will only accept an array instead of an object27     *28     * @example29     * Deprecated version:30     * ```ts31     * export const users = gelTable("users", {32     * 	id: integer(),33     * }, (t) => ({34     * 	idx: index('custom_name').on(t.id)35     * }));36     * ```37     *38     * New API:39     * ```ts40     * export const users = gelTable("users", {41     * 	id: integer(),42     * }, (t) => [43     * 	index('custom_name').on(t.id)44     * ]);45     * ```46     */47    <TTableName extends string, TColumnsMap extends Record<string, GelColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'gel'>) => GelTableExtraConfig): GelTableWithColumns<{48        name: TTableName;49        schema: TSchema;50        columns: BuildColumns<TTableName, TColumnsMap, 'gel'>;51        dialect: 'gel';52    }>;53    /**54     * @deprecated The third parameter of gelTable is changing and will only accept an array instead of an object55     *56     * @example57     * Deprecated version:58     * ```ts59     * export const users = gelTable("users", {60     * 	id: integer(),61     * }, (t) => ({62     * 	idx: index('custom_name').on(t.id)63     * }));64     * ```65     *66     * New API:67     * ```ts68     * export const users = gelTable("users", {69     * 	id: integer(),70     * }, (t) => [71     * 	index('custom_name').on(t.id)72     * ]);73     * ```74     */75    <TTableName extends string, TColumnsMap extends Record<string, GelColumnBuilderBase>>(name: TTableName, columns: (columnTypes: GelColumnsBuilders) => TColumnsMap, extraConfig: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'gel'>) => GelTableExtraConfig): GelTableWithColumns<{76        name: TTableName;77        schema: TSchema;78        columns: BuildColumns<TTableName, TColumnsMap, 'gel'>;79        dialect: 'gel';80    }>;81    <TTableName extends string, TColumnsMap extends Record<string, GelColumnBuilderBase>>(name: TTableName, columns: TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'gel'>) => GelTableExtraConfigValue[]): GelTableWithColumns<{82        name: TTableName;83        schema: TSchema;84        columns: BuildColumns<TTableName, TColumnsMap, 'gel'>;85        dialect: 'gel';86    }>;87    <TTableName extends string, TColumnsMap extends Record<string, GelColumnBuilderBase>>(name: TTableName, columns: (columnTypes: GelColumnsBuilders) => TColumnsMap, extraConfig?: (self: BuildExtraConfigColumns<TTableName, TColumnsMap, 'gel'>) => GelTableExtraConfigValue[]): GelTableWithColumns<{88        name: TTableName;89        schema: TSchema;90        columns: BuildColumns<TTableName, TColumnsMap, 'gel'>;91        dialect: 'gel';92    }>;93}94export declare const gelTable: GelTableFn;95export declare function gelTableCreator(customizeTableName: (name: string) => string): GelTableFn;96