GelInsertBuilder Class — drizzle-orm Architecture
Architecture documentation for the GelInsertBuilder class in insert.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6["GelInsertBuilder"] b96b941f_c2be_27db_c79e_5975e751c4a6["insert.ts"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|defined in| b96b941f_c2be_27db_c79e_5975e751c4a6 65928e0c_3a95_3e27_acab_bb95eac128df["constructor()"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|method| 65928e0c_3a95_3e27_acab_bb95eac128df 87876c25_2017_9914_cea9_c81882e1c8ea["setToken()"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|method| 87876c25_2017_9914_cea9_c81882e1c8ea e8af8d04_2abb_97e9_3ad2_3c5247dfb4df["overridingSystemValue()"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|method| e8af8d04_2abb_97e9_3ad2_3c5247dfb4df 585c5196_cb64_391b_0e71_cf0c382a548c["values()"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|method| 585c5196_cb64_391b_0e71_cf0c382a548c e97448de_55d7_8847_3104_f51d1608a2ce["select()"] 0fe6855d_f359_8ba8_18e5_e40d0fcae8e6 -->|method| e97448de_55d7_8847_3104_f51d1608a2ce
Relationship Graph
Source Code
drizzle-orm/src/gel-core/query-builders/insert.ts lines 52–132
export class GelInsertBuilder<
TTable extends GelTable,
TQueryResult extends GelQueryResultHKT,
OverrideT extends boolean = false,
> {
static readonly [entityKind]: string = 'GelInsertBuilder';
constructor(
private table: TTable,
private session: GelSession,
private dialect: GelDialect,
private withList?: Subquery[],
private overridingSystemValue_?: boolean,
) {}
private authToken?: NeonAuthToken;
/** @internal */
setToken(token?: NeonAuthToken) {
this.authToken = token;
return this;
}
overridingSystemValue(): Omit<GelInsertBuilder<TTable, TQueryResult, true>, 'overridingSystemValue'> {
this.overridingSystemValue_ = true;
return this as any;
}
values(value: GelInsertValue<TTable, OverrideT>): GelInsertBase<TTable, TQueryResult>;
values(values: GelInsertValue<TTable, OverrideT>[]): GelInsertBase<TTable, TQueryResult>;
values(
values: GelInsertValue<TTable, OverrideT> | GelInsertValue<TTable, OverrideT>[],
): GelInsertBase<TTable, TQueryResult> {
values = Array.isArray(values) ? values : [values];
if (values.length === 0) {
throw new Error('values() must be called with at least one value');
}
const mappedValues = values.map((entry) => {
const result: Record<string, Param | SQL> = {};
const cols = this.table[Table.Symbol.Columns];
for (const colKey of Object.keys(entry)) {
const colValue = entry[colKey as keyof typeof entry];
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
}
return result;
});
return new GelInsertBase(
this.table,
mappedValues,
this.session,
this.dialect,
this.withList,
false,
this.overridingSystemValue_,
);
}
select(selectQuery: (qb: QueryBuilder) => GelInsertSelectQueryBuilder<TTable>): GelInsertBase<TTable, TQueryResult>;
select(selectQuery: (qb: QueryBuilder) => SQL): GelInsertBase<TTable, TQueryResult>;
select(selectQuery: SQL): GelInsertBase<TTable, TQueryResult>;
select(selectQuery: GelInsertSelectQueryBuilder<TTable>): GelInsertBase<TTable, TQueryResult>;
select(
selectQuery:
| SQL
| GelInsertSelectQueryBuilder<TTable>
| ((qb: QueryBuilder) => GelInsertSelectQueryBuilder<TTable> | SQL),
): GelInsertBase<TTable, TQueryResult> {
const select = typeof selectQuery === 'function' ? selectQuery(new QueryBuilder()) : selectQuery;
if (
!is(select, SQL)
&& !haveSameKeys(this.table[Columns], select._.selectedFields)
) {
throw new Error(
'Insert select error: selected fields are not the same or are in a different order compared to the table definition',
);
}
return new GelInsertBase(this.table, select, this.session, this.dialect, this.withList, true);
}
}
Domain
Source
Frequently Asked Questions
What is the GelInsertBuilder class?
GelInsertBuilder is a class in the drizzle-orm codebase, defined in drizzle-orm/src/gel-core/query-builders/insert.ts.
Where is GelInsertBuilder defined?
GelInsertBuilder is defined in drizzle-orm/src/gel-core/query-builders/insert.ts at line 52.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free