/
opt
/
canhelp
/
node_modules
/
drizzle-orm
/
gel-core
/
/opt/canhelp/node_modules/drizzle-orm/gel-core
mkdir
upload
Name
Size
Mode
Actions
columns/
-
0755
rm
query-builders/
-
0755
rm
alias.cjs
1214
0644
edit
dl
rm
alias.cjs.map
721
0644
edit
dl
rm
alias.d.cts
327
0644
edit
dl
rm
alias.d.ts
324
0644
edit
dl
rm
alias.js
211
0644
edit
dl
rm
alias.js.map
683
0644
edit
dl
rm
checks.cjs
1706
0644
edit
dl
rm
checks.cjs.map
1376
0644
edit
dl
rm
checks.d.cts
610
0644
edit
dl
rm
checks.d.ts
607
0644
edit
dl
rm
checks.js
614
0644
edit
dl
rm
checks.js.map
1326
0644
edit
dl
rm
db.cjs
11071
0644
edit
dl
rm
db.cjs.map
28232
0644
edit
dl
rm
db.d.cts
12126
0644
edit
dl
rm
db.d.ts
12109
0644
edit
dl
rm
db.js
9710
0644
edit
dl
rm
db.js.map
28266
0644
edit
dl
rm
dialect.cjs
47466
0644
edit
dl
rm
dialect.cjs.map
68935
0644
edit
dl
rm
dialect.d.cts
3162
0644
edit
dl
rm
dialect.d.ts
3153
0644
edit
dl
rm
dialect.js
43157
0644
edit
dl
rm
dialect.js.map
68853
0644
edit
dl
rm
expressions.cjs
2033
0644
edit
dl
rm
expressions.cjs.map
1476
0644
edit
dl
rm
expressions.d.cts
460
0644
edit
dl
rm
expressions.d.ts
457
0644
edit
dl
rm
expressions.js
604
0644
edit
dl
rm
expressions.js.map
1421
0644
edit
dl
rm
foreign-keys.cjs
3115
0644
edit
dl
rm
foreign-keys.cjs.map
4853
0644
edit
dl
rm
foreign-keys.d.cts
1780
0644
edit
dl
rm
foreign-keys.d.ts
1777
0644
edit
dl
rm
foreign-keys.js
1928
0644
edit
dl
rm
foreign-keys.js.map
4806
0644
edit
dl
rm
index.cjs
3133
0644
edit
dl
rm
index.cjs.map
1123
0644
edit
dl
rm
index.d.cts
648
0644
edit
dl
rm
index.d.ts
628
0644
edit
dl
rm
index.js
661
0644
edit
dl
rm
index.js.map
950
0644
edit
dl
rm
indexes.cjs
4432
0644
edit
dl
rm
indexes.cjs.map
8613
0644
edit
dl
rm
indexes.d.cts
4262
0644
edit
dl
rm
indexes.d.ts
4257
0644
edit
dl
rm
indexes.js
3110
0644
edit
dl
rm
indexes.js.map
8554
0644
edit
dl
rm
policies.cjs
1693
0644
edit
dl
rm
policies.cjs.map
1979
0644
edit
dl
rm
policies.d.cts
1049
0644
edit
dl
rm
policies.d.ts
1045
0644
edit
dl
rm
policies.js
629
0644
edit
dl
rm
policies.js.map
1935
0644
edit
dl
rm
primary-keys.cjs
2167
0644
edit
dl
rm
primary-keys.cjs.map
2663
0644
edit
dl
rm
primary-keys.d.cts
1123
0644
edit
dl
rm
primary-keys.d.ts
1120
0644
edit
dl
rm
primary-keys.js
1010
0644
edit
dl
rm
primary-keys.js.map
2617
0644
edit
dl
rm
roles.cjs
1668
0644
edit
dl
rm
roles.cjs.map
1451
0644
edit
dl
rm
roles.d.cts
436
0644
edit
dl
rm
roles.d.ts
435
0644
edit
dl
rm
roles.js
621
0644
edit
dl
rm
roles.js.map
1407
0644
edit
dl
rm
schema.cjs
2673
0644
edit
dl
rm
schema.cjs.map
2723
0644
edit
dl
rm
schema.d.cts
659
0644
edit
dl
rm
schema.d.ts
655
0644
edit
dl
rm
schema.js
1515
0644
edit
dl
rm
schema.js.map
2696
0644
edit
dl
rm
sequence.cjs
1808
0644
edit
dl
rm
sequence.cjs.map
1485
0644
edit
dl
rm
sequence.d.cts
766
0644
edit
dl
rm
sequence.d.ts
765
0644
edit
dl
rm
sequence.js
629
0644
edit
dl
rm
sequence.js.map
1433
0644
edit
dl
rm
session.cjs
2740
0644
edit
dl
rm
session.cjs.map
5349
0644
edit
dl
rm
session.d.cts
2985
0644
edit
dl
rm
session.d.ts
2977
0644
edit
dl
rm
session.js
1546
0644
edit
dl
rm
session.js.map
5308
0644
edit
dl
rm
subquery.cjs
784
0644
edit
dl
rm
subquery.cjs.map
776
0644
edit
dl
rm
subquery.d.cts
628
0644
edit
dl
rm
subquery.d.ts
625
0644
edit
dl
rm
subquery.js
36
0644
edit
dl
rm
subquery.js.map
71
0644
edit
dl
rm
table.cjs
3723
0644
edit
dl
rm
table.cjs.map
9902
0644
edit
dl
rm
table.d.cts
4425
0644
edit
dl
rm
table.d.ts
4414
0644
edit
dl
rm
table.js
2415
0644
edit
dl
rm
table.js.map
9842
0644
edit
dl
rm
unique-constraint.cjs
2874
0644
edit
dl
rm
unique-constraint.cjs.map
3051
0644
edit
dl
rm
unique-constraint.d.cts
1055
0644
edit
dl
rm
unique-constraint.d.ts
1052
0644
edit
dl
rm
unique-constraint.js
1561
0644
edit
dl
rm
unique-constraint.js.map
2994
0644
edit
dl
rm
utils.cjs
3971
0644
edit
dl
rm
utils.cjs.map
4944
0644
edit
dl
rm
utils.d.cts
2235
0644
edit
dl
rm
utils.d.ts
2226
0644
edit
dl
rm
utils.js
2432
0644
edit
dl
rm
utils.js.map
4886
0644
edit
dl
rm
view-base.cjs
1276
0644
edit
dl
rm
view-base.cjs.map
754
0644
edit
dl
rm
view-base.d.cts
486
0644
edit
dl
rm
view-base.d.ts
484
0644
edit
dl
rm
view-base.js
218
0644
edit
dl
rm
view-base.js.map
718
0644
edit
dl
rm
view-common.cjs
1160
0644
edit
dl
rm
view-common.cjs.map
252
0644
edit
dl
rm
view-common.d.cts
51
0644
edit
dl
rm
view-common.d.ts
51
0644
edit
dl
rm
view-common.js
126
0644
edit
dl
rm
view-common.js.map
209
0644
edit
dl
rm
view.cjs
9184
0644
edit
dl
rm
view.cjs.map
19362
0644
edit
dl
rm
view.d.cts
6863
0644
edit
dl
rm
view.d.ts
6853
0644
edit
dl
rm
view.js
7132
0644
edit
dl
rm
view.js.map
19289
0644
edit
dl
rm
Edit:
/opt/canhelp/node_modules/drizzle-orm/gel-core/db.js
(9710B)
import { entityKind } from "../entity.js"; import { GelDeleteBase, GelInsertBuilder, GelSelectBuilder, GelUpdateBuilder, QueryBuilder } from "./query-builders/index.js"; import { SelectionProxyHandler } from "../selection-proxy.js"; import { sql } from "../sql/sql.js"; import { WithSubquery } from "../subquery.js"; import { GelCountBuilder } from "./query-builders/count.js"; import { RelationalQueryBuilder } from "./query-builders/query.js"; import { GelRaw } from "./query-builders/raw.js"; class GelDatabase { constructor(dialect, session, schema) { this.dialect = dialect; this.session = session; this._ = schema ? { schema: schema.schema, fullSchema: schema.fullSchema, tableNamesMap: schema.tableNamesMap, session } : { schema: void 0, fullSchema: {}, tableNamesMap: {}, session }; this.query = {}; if (this._.schema) { for (const [tableName, columns] of Object.entries(this._.schema)) { this.query[tableName] = new RelationalQueryBuilder( schema.fullSchema, this._.schema, this._.tableNamesMap, schema.fullSchema[tableName], columns, dialect, session ); } } } static [entityKind] = "GelDatabase"; query; /** * Creates a subquery that defines a temporary named result set as a CTE. * * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query. * * See docs: {@link https://orm.drizzle.team/docs/select#with-clause} * * @param alias The alias for the subquery. * * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries. * * @example * * ```ts * // Create a subquery with alias 'sq' and use it in the select query * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42))); * * const result = await db.with(sq).select().from(sq); * ``` * * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them: * * ```ts * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query * const sq = db.$with('sq').as(db.select({ * name: sql<string>`upper(${users.name})`.as('name'), * }) * .from(users)); * * const result = await db.with(sq).select({ name: sq.name }).from(sq); * ``` */ $with(alias) { const self = this; return { as(qb) { if (typeof qb === "function") { qb = qb(new QueryBuilder(self.dialect)); } return new Proxy( new WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true), new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" }) ); } }; } $count(source, filters) { return new GelCountBuilder({ source, filters, session: this.session }); } /** * Incorporates a previously defined CTE (using `$with`) into the main query. * * This method allows the main query to reference a temporary named result set. * * See docs: {@link https://orm.drizzle.team/docs/select#with-clause} * * @param queries The CTEs to incorporate into the main query. * * @example * * ```ts * // Define a subquery 'sq' as a CTE using $with * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42))); * * // Incorporate the CTE 'sq' into the main query and select from it * const result = await db.with(sq).select().from(sq); * ``` */ with(...queries) { const self = this; function select(fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: self.session, dialect: self.dialect, withList: queries }); } function selectDistinct(fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: self.session, dialect: self.dialect, withList: queries, distinct: true }); } function selectDistinctOn(on, fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: self.session, dialect: self.dialect, withList: queries, distinct: { on } }); } function update(table) { return new GelUpdateBuilder(table, self.session, self.dialect, queries); } function insert(table) { return new GelInsertBuilder(table, self.session, self.dialect, queries); } function delete_(table) { return new GelDeleteBase(table, self.session, self.dialect, queries); } return { select, selectDistinct, selectDistinctOn, update, insert, delete: delete_ }; } select(fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: this.session, dialect: this.dialect }); } selectDistinct(fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: this.session, dialect: this.dialect, distinct: true }); } selectDistinctOn(on, fields) { return new GelSelectBuilder({ fields: fields ?? void 0, session: this.session, dialect: this.dialect, distinct: { on } }); } /** * Creates an update query. * * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated. * * Use `.set()` method to specify which values to update. * * See docs: {@link https://orm.drizzle.team/docs/update} * * @param table The table to update. * * @example * * ```ts * // Update all rows in the 'cars' table * await db.update(cars).set({ color: 'red' }); * * // Update rows with filters and conditions * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW')); * * // Update with returning clause * const updatedCar: Car[] = await db.update(cars) * .set({ color: 'red' }) * .where(eq(cars.id, 1)) * .returning(); * ``` */ update(table) { return new GelUpdateBuilder(table, this.session, this.dialect); } /** * Creates an insert query. * * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert. * * See docs: {@link https://orm.drizzle.team/docs/insert} * * @param table The table to insert into. * * @example * * ```ts * // Insert one row * await db.insert(cars).values({ brand: 'BMW' }); * * // Insert multiple rows * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]); * * // Insert with returning clause * const insertedCar: Car[] = await db.insert(cars) * .values({ brand: 'BMW' }) * .returning(); * ``` */ insert(table) { return new GelInsertBuilder(table, this.session, this.dialect); } /** * Creates a delete query. * * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted. * * See docs: {@link https://orm.drizzle.team/docs/delete} * * @param table The table to delete from. * * @example * * ```ts * // Delete all rows in the 'cars' table * await db.delete(cars); * * // Delete rows with filters and conditions * await db.delete(cars).where(eq(cars.color, 'green')); * * // Delete with returning clause * const deletedCar: Car[] = await db.delete(cars) * .where(eq(cars.id, 1)) * .returning(); * ``` */ delete(table) { return new GelDeleteBase(table, this.session, this.dialect); } // TODO views are not implemented // refreshMaterializedView<TView extends GelMaterializedView>(view: TView): GelRefreshMaterializedView<TQueryResult> { // return new GelRefreshMaterializedView(view, this.session, this.dialect); // } execute(query) { const sequel = typeof query === "string" ? sql.raw(query) : query.getSQL(); const builtQuery = this.dialect.sqlToQuery(sequel); const prepared = this.session.prepareQuery( builtQuery, void 0, void 0, false ); return new GelRaw( () => prepared.execute(void 0), sequel, builtQuery, (result) => prepared.mapResult(result, true) ); } transaction(transaction) { return this.session.transaction(transaction); } } const withReplicas = (primary, replicas, getReplica = () => replicas[Math.floor(Math.random() * replicas.length)]) => { const select = (...args) => getReplica(replicas).select(...args); const selectDistinct = (...args) => getReplica(replicas).selectDistinct(...args); const selectDistinctOn = (...args) => getReplica(replicas).selectDistinctOn(...args); const _with = (...args) => getReplica(replicas).with(...args); const $with = (arg) => getReplica(replicas).$with(arg); const update = (...args) => primary.update(...args); const insert = (...args) => primary.insert(...args); const $delete = (...args) => primary.delete(...args); const execute = (...args) => primary.execute(...args); const transaction = (...args) => primary.transaction(...args); return { ...primary, update, insert, delete: $delete, execute, transaction, // refreshMaterializedView, $primary: primary, select, selectDistinct, selectDistinctOn, $with, with: _with, get query() { return getReplica(replicas).query; } }; }; export { GelDatabase, withReplicas }; //# sourceMappingURL=db.js.map
Save
cmd:
run