AK-21/Graphite-Industrial-Intelligence
0
1import type { AnyColumn, Column } from "./column.cjs";2import type { SQL } from "./sql/sql.cjs";3import type { Subquery } from "./subquery.cjs";4import type { Table } from "./table.cjs";5export type RequiredKeyOnly<TKey extends string, T extends Column> = T extends AnyColumn<{6 notNull: true;7 hasDefault: false;8}> ? TKey : never;9export type OptionalKeyOnly<TKey extends string, T extends Column, OverrideT extends boolean | undefined = false> = TKey extends RequiredKeyOnly<TKey, T> ? never : T extends {10 _: {11 generated: undefined;12 };13} ? (T extends {14 _: {15 identity: undefined;16 };17} ? TKey : T['_']['identity'] extends 'always' ? OverrideT extends true ? TKey : never : TKey) : never;18export type SelectedFieldsFlat<TColumn extends Column> = Record<string, TColumn | SQL | SQL.Aliased | Subquery>;19export type SelectedFieldsFlatFull<TColumn extends Column> = Record<string, TColumn | SQL | SQL.Aliased>;20export type SelectedFields<TColumn extends Column, TTable extends Table> = Record<string, SelectedFieldsFlat<TColumn>[string] | TTable | SelectedFieldsFlat<TColumn>>;21export type SelectedFieldsOrdered<TColumn extends Column> = {22 path: string[];23 field: TColumn | SQL | SQL.Aliased | Subquery;24}[];25 