drizzle-orm 0.39.1 → 0.39.2-2fb137b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/column-builder.cjs.map +1 -1
- package/column-builder.d.cts +6 -5
- package/column-builder.d.ts +6 -5
- package/column-builder.js.map +1 -1
- package/gel/driver.cjs +97 -0
- package/gel/driver.cjs.map +1 -0
- package/gel/driver.d.cts +38 -0
- package/gel/driver.d.ts +38 -0
- package/gel/driver.js +74 -0
- package/gel/driver.js.map +1 -0
- package/gel/index.cjs +25 -0
- package/gel/index.cjs.map +1 -0
- package/gel/index.d.cts +2 -0
- package/gel/index.d.ts +2 -0
- package/gel/index.js +3 -0
- package/gel/index.js.map +1 -0
- package/gel/migrator.cjs +5 -0
- package/gel/migrator.cjs.map +1 -0
- package/gel/migrator.d.cts +1 -0
- package/gel/migrator.d.ts +1 -0
- package/gel/migrator.js +4 -0
- package/gel/migrator.js.map +1 -0
- package/gel/session.cjs +139 -0
- package/gel/session.cjs.map +1 -0
- package/gel/session.d.cts +47 -0
- package/gel/session.d.ts +47 -0
- package/gel/session.js +113 -0
- package/gel/session.js.map +1 -0
- package/gel-core/alias.cjs +32 -0
- package/gel-core/alias.cjs.map +1 -0
- package/gel-core/alias.d.cts +4 -0
- package/gel-core/alias.d.ts +4 -0
- package/gel-core/alias.js +8 -0
- package/gel-core/alias.js.map +1 -0
- package/gel-core/checks.cjs +58 -0
- package/gel-core/checks.cjs.map +1 -0
- package/gel-core/checks.d.cts +18 -0
- package/gel-core/checks.d.ts +18 -0
- package/gel-core/checks.js +32 -0
- package/gel-core/checks.js.map +1 -0
- package/gel-core/columns/all.cjs +72 -0
- package/gel-core/columns/all.cjs.map +1 -0
- package/gel-core/columns/all.d.cts +43 -0
- package/gel-core/columns/all.d.ts +43 -0
- package/gel-core/columns/all.js +48 -0
- package/gel-core/columns/all.js.map +1 -0
- package/gel-core/columns/bigint.cjs +54 -0
- package/gel-core/columns/bigint.cjs.map +1 -0
- package/gel-core/columns/bigint.d.cts +23 -0
- package/gel-core/columns/bigint.d.ts +23 -0
- package/gel-core/columns/bigint.js +28 -0
- package/gel-core/columns/bigint.js.map +1 -0
- package/gel-core/columns/bigintT.cjs +60 -0
- package/gel-core/columns/bigintT.cjs.map +1 -0
- package/gel-core/columns/bigintT.d.cts +24 -0
- package/gel-core/columns/bigintT.d.ts +24 -0
- package/gel-core/columns/bigintT.js +34 -0
- package/gel-core/columns/bigintT.js.map +1 -0
- package/gel-core/columns/boolean.cjs +53 -0
- package/gel-core/columns/boolean.cjs.map +1 -0
- package/gel-core/columns/boolean.d.cts +22 -0
- package/gel-core/columns/boolean.d.ts +22 -0
- package/gel-core/columns/boolean.js +27 -0
- package/gel-core/columns/boolean.js.map +1 -0
- package/gel-core/columns/bytes.cjs +56 -0
- package/gel-core/columns/bytes.cjs.map +1 -0
- package/gel-core/columns/bytes.d.cts +22 -0
- package/gel-core/columns/bytes.d.ts +22 -0
- package/gel-core/columns/bytes.js +30 -0
- package/gel-core/columns/bytes.js.map +1 -0
- package/gel-core/columns/common.cjs +213 -0
- package/gel-core/columns/common.cjs.map +1 -0
- package/gel-core/columns/common.d.cts +147 -0
- package/gel-core/columns/common.d.ts +147 -0
- package/gel-core/columns/common.js +184 -0
- package/gel-core/columns/common.js.map +1 -0
- package/gel-core/columns/custom.cjs +77 -0
- package/gel-core/columns/custom.cjs.map +1 -0
- package/gel-core/columns/custom.d.cts +155 -0
- package/gel-core/columns/custom.d.ts +155 -0
- package/gel-core/columns/custom.js +51 -0
- package/gel-core/columns/custom.js.map +1 -0
- package/gel-core/columns/date-duration.cjs +56 -0
- package/gel-core/columns/date-duration.cjs.map +1 -0
- package/gel-core/columns/date-duration.d.cts +23 -0
- package/gel-core/columns/date-duration.d.ts +23 -0
- package/gel-core/columns/date-duration.js +30 -0
- package/gel-core/columns/date-duration.js.map +1 -0
- package/gel-core/columns/date.common.cjs +37 -0
- package/gel-core/columns/date.common.cjs.map +1 -0
- package/gel-core/columns/date.common.d.cts +7 -0
- package/gel-core/columns/date.common.d.ts +7 -0
- package/gel-core/columns/date.common.js +13 -0
- package/gel-core/columns/date.common.js.map +1 -0
- package/gel-core/columns/decimal.cjs +56 -0
- package/gel-core/columns/decimal.cjs.map +1 -0
- package/gel-core/columns/decimal.d.cts +26 -0
- package/gel-core/columns/decimal.d.ts +26 -0
- package/gel-core/columns/decimal.js +30 -0
- package/gel-core/columns/decimal.js.map +1 -0
- package/gel-core/columns/double-precision.cjs +62 -0
- package/gel-core/columns/double-precision.cjs.map +1 -0
- package/gel-core/columns/double-precision.d.cts +23 -0
- package/gel-core/columns/double-precision.d.ts +23 -0
- package/gel-core/columns/double-precision.js +36 -0
- package/gel-core/columns/double-precision.js.map +1 -0
- package/gel-core/columns/duration.cjs +53 -0
- package/gel-core/columns/duration.cjs.map +1 -0
- package/gel-core/columns/duration.d.cts +23 -0
- package/gel-core/columns/duration.d.ts +23 -0
- package/gel-core/columns/duration.js +27 -0
- package/gel-core/columns/duration.js.map +1 -0
- package/gel-core/columns/index.cjs +65 -0
- package/gel-core/columns/index.cjs.map +1 -0
- package/gel-core/columns/index.d.cts +22 -0
- package/gel-core/columns/index.d.ts +22 -0
- package/gel-core/columns/index.js +23 -0
- package/gel-core/columns/index.js.map +1 -0
- package/gel-core/columns/int.common.cjs +67 -0
- package/gel-core/columns/int.common.cjs.map +1 -0
- package/gel-core/columns/int.common.d.cts +15 -0
- package/gel-core/columns/int.common.d.ts +15 -0
- package/gel-core/columns/int.common.js +43 -0
- package/gel-core/columns/int.common.js.map +1 -0
- package/gel-core/columns/integer.cjs +54 -0
- package/gel-core/columns/integer.cjs.map +1 -0
- package/gel-core/columns/integer.d.cts +23 -0
- package/gel-core/columns/integer.d.ts +23 -0
- package/gel-core/columns/integer.js +28 -0
- package/gel-core/columns/integer.js.map +1 -0
- package/gel-core/columns/json.cjs +56 -0
- package/gel-core/columns/json.cjs.map +1 -0
- package/gel-core/columns/json.d.cts +26 -0
- package/gel-core/columns/json.d.ts +26 -0
- package/gel-core/columns/json.js +30 -0
- package/gel-core/columns/json.js.map +1 -0
- package/gel-core/columns/localdate.cjs +57 -0
- package/gel-core/columns/localdate.cjs.map +1 -0
- package/gel-core/columns/localdate.d.cts +24 -0
- package/gel-core/columns/localdate.d.ts +24 -0
- package/gel-core/columns/localdate.js +31 -0
- package/gel-core/columns/localdate.js.map +1 -0
- package/gel-core/columns/localtime.cjs +57 -0
- package/gel-core/columns/localtime.cjs.map +1 -0
- package/gel-core/columns/localtime.d.cts +24 -0
- package/gel-core/columns/localtime.d.ts +24 -0
- package/gel-core/columns/localtime.js +31 -0
- package/gel-core/columns/localtime.js.map +1 -0
- package/gel-core/columns/real.cjs +57 -0
- package/gel-core/columns/real.cjs.map +1 -0
- package/gel-core/columns/real.d.cts +28 -0
- package/gel-core/columns/real.d.ts +28 -0
- package/gel-core/columns/real.js +31 -0
- package/gel-core/columns/real.js.map +1 -0
- package/gel-core/columns/relative-duration.cjs +56 -0
- package/gel-core/columns/relative-duration.cjs.map +1 -0
- package/gel-core/columns/relative-duration.d.cts +23 -0
- package/gel-core/columns/relative-duration.d.ts +23 -0
- package/gel-core/columns/relative-duration.js +30 -0
- package/gel-core/columns/relative-duration.js.map +1 -0
- package/gel-core/columns/smallint.cjs +54 -0
- package/gel-core/columns/smallint.cjs.map +1 -0
- package/gel-core/columns/smallint.d.cts +23 -0
- package/gel-core/columns/smallint.d.ts +23 -0
- package/gel-core/columns/smallint.js +28 -0
- package/gel-core/columns/smallint.js.map +1 -0
- package/gel-core/columns/text.cjs +54 -0
- package/gel-core/columns/text.cjs.map +1 -0
- package/gel-core/columns/text.d.cts +26 -0
- package/gel-core/columns/text.d.ts +26 -0
- package/gel-core/columns/text.js +28 -0
- package/gel-core/columns/text.js.map +1 -0
- package/gel-core/columns/timestamp.cjs +60 -0
- package/gel-core/columns/timestamp.cjs.map +1 -0
- package/gel-core/columns/timestamp.d.cts +28 -0
- package/gel-core/columns/timestamp.d.ts +28 -0
- package/gel-core/columns/timestamp.js +34 -0
- package/gel-core/columns/timestamp.js.map +1 -0
- package/gel-core/columns/timestamptz.cjs +60 -0
- package/gel-core/columns/timestamptz.cjs.map +1 -0
- package/gel-core/columns/timestamptz.d.cts +27 -0
- package/gel-core/columns/timestamptz.d.ts +27 -0
- package/gel-core/columns/timestamptz.js +34 -0
- package/gel-core/columns/timestamptz.js.map +1 -0
- package/gel-core/columns/uuid.cjs +53 -0
- package/gel-core/columns/uuid.cjs.map +1 -0
- package/gel-core/columns/uuid.d.cts +22 -0
- package/gel-core/columns/uuid.d.ts +22 -0
- package/gel-core/columns/uuid.js +27 -0
- package/gel-core/columns/uuid.js.map +1 -0
- package/gel-core/db.cjs +338 -0
- package/gel-core/db.cjs.map +1 -0
- package/gel-core/db.d.cts +281 -0
- package/gel-core/db.d.ts +281 -0
- package/gel-core/db.js +319 -0
- package/gel-core/db.js.map +1 -0
- package/gel-core/dialect.cjs +1142 -0
- package/gel-core/dialect.cjs.map +1 -0
- package/gel-core/dialect.d.cts +62 -0
- package/gel-core/dialect.d.ts +62 -0
- package/gel-core/dialect.js +1128 -0
- package/gel-core/dialect.js.map +1 -0
- package/gel-core/expressions.cjs +49 -0
- package/gel-core/expressions.cjs.map +1 -0
- package/gel-core/expressions.d.cts +8 -0
- package/gel-core/expressions.d.ts +8 -0
- package/gel-core/expressions.js +22 -0
- package/gel-core/expressions.js.map +1 -0
- package/gel-core/foreign-keys.cjs +100 -0
- package/gel-core/foreign-keys.cjs.map +1 -0
- package/gel-core/foreign-keys.d.cts +48 -0
- package/gel-core/foreign-keys.d.ts +48 -0
- package/gel-core/foreign-keys.js +74 -0
- package/gel-core/foreign-keys.js.map +1 -0
- package/gel-core/index.cjs +61 -0
- package/gel-core/index.cjs.map +1 -0
- package/gel-core/index.d.cts +20 -0
- package/gel-core/index.d.ts +20 -0
- package/gel-core/index.js +21 -0
- package/gel-core/index.js.map +1 -0
- package/gel-core/indexes.cjs +149 -0
- package/gel-core/indexes.cjs.map +1 -0
- package/gel-core/indexes.d.cts +79 -0
- package/gel-core/indexes.d.ts +79 -0
- package/gel-core/indexes.js +121 -0
- package/gel-core/indexes.js.map +1 -0
- package/gel-core/policies.cjs +58 -0
- package/gel-core/policies.cjs.map +1 -0
- package/gel-core/policies.d.cts +24 -0
- package/gel-core/policies.d.ts +24 -0
- package/gel-core/policies.js +33 -0
- package/gel-core/policies.js.map +1 -0
- package/gel-core/primary-keys.cjs +68 -0
- package/gel-core/primary-keys.cjs.map +1 -0
- package/gel-core/primary-keys.d.cts +30 -0
- package/gel-core/primary-keys.d.ts +30 -0
- package/gel-core/primary-keys.js +42 -0
- package/gel-core/primary-keys.js.map +1 -0
- package/gel-core/query-builders/count.cjs +73 -0
- package/gel-core/query-builders/count.cjs.map +1 -0
- package/gel-core/query-builders/count.d.cts +25 -0
- package/gel-core/query-builders/count.d.ts +25 -0
- package/gel-core/query-builders/count.js +49 -0
- package/gel-core/query-builders/count.js.map +1 -0
- package/gel-core/query-builders/delete.cjs +105 -0
- package/gel-core/query-builders/delete.cjs.map +1 -0
- package/gel-core/query-builders/delete.d.cts +99 -0
- package/gel-core/query-builders/delete.d.ts +99 -0
- package/gel-core/query-builders/delete.js +81 -0
- package/gel-core/query-builders/delete.js.map +1 -0
- package/gel-core/query-builders/index.cjs +35 -0
- package/gel-core/query-builders/index.cjs.map +1 -0
- package/gel-core/query-builders/index.d.cts +7 -0
- package/gel-core/query-builders/index.d.ts +7 -0
- package/gel-core/query-builders/index.js +8 -0
- package/gel-core/query-builders/index.js.map +1 -0
- package/gel-core/query-builders/insert.cjs +218 -0
- package/gel-core/query-builders/insert.cjs.map +1 -0
- package/gel-core/query-builders/insert.d.cts +116 -0
- package/gel-core/query-builders/insert.d.ts +116 -0
- package/gel-core/query-builders/insert.js +193 -0
- package/gel-core/query-builders/insert.js.map +1 -0
- package/gel-core/query-builders/query-builder.cjs +114 -0
- package/gel-core/query-builders/query-builder.cjs.map +1 -0
- package/gel-core/query-builders/query-builder.d.cts +40 -0
- package/gel-core/query-builders/query-builder.d.ts +40 -0
- package/gel-core/query-builders/query-builder.js +90 -0
- package/gel-core/query-builders/query-builder.js.map +1 -0
- package/gel-core/query-builders/query.cjs +139 -0
- package/gel-core/query-builders/query.cjs.map +1 -0
- package/gel-core/query-builders/query.d.cts +46 -0
- package/gel-core/query-builders/query.d.ts +46 -0
- package/gel-core/query-builders/query.js +116 -0
- package/gel-core/query-builders/query.js.map +1 -0
- package/gel-core/query-builders/raw.cjs +57 -0
- package/gel-core/query-builders/raw.cjs.map +1 -0
- package/gel-core/query-builders/raw.d.cts +22 -0
- package/gel-core/query-builders/raw.d.ts +22 -0
- package/gel-core/query-builders/raw.js +33 -0
- package/gel-core/query-builders/raw.js.map +1 -0
- package/gel-core/query-builders/refresh-materialized-view.cjs +77 -0
- package/gel-core/query-builders/refresh-materialized-view.cjs.map +1 -0
- package/gel-core/query-builders/refresh-materialized-view.d.cts +27 -0
- package/gel-core/query-builders/refresh-materialized-view.d.ts +27 -0
- package/gel-core/query-builders/refresh-materialized-view.js +53 -0
- package/gel-core/query-builders/refresh-materialized-view.js.map +1 -0
- package/gel-core/query-builders/select.cjs +775 -0
- package/gel-core/query-builders/select.cjs.map +1 -0
- package/gel-core/query-builders/select.d.cts +721 -0
- package/gel-core/query-builders/select.d.ts +721 -0
- package/gel-core/query-builders/select.js +748 -0
- package/gel-core/query-builders/select.js.map +1 -0
- package/gel-core/query-builders/select.types.cjs +17 -0
- package/gel-core/query-builders/select.types.cjs.map +1 -0
- package/gel-core/query-builders/select.types.d.cts +138 -0
- package/gel-core/query-builders/select.types.d.ts +138 -0
- package/gel-core/query-builders/select.types.js +1 -0
- package/gel-core/query-builders/select.types.js.map +1 -0
- package/gel-core/query-builders/update.cjs +226 -0
- package/gel-core/query-builders/update.cjs.map +1 -0
- package/gel-core/query-builders/update.d.cts +166 -0
- package/gel-core/query-builders/update.d.ts +166 -0
- package/gel-core/query-builders/update.js +205 -0
- package/gel-core/query-builders/update.js.map +1 -0
- package/gel-core/roles.cjs +57 -0
- package/gel-core/roles.cjs.map +1 -0
- package/gel-core/roles.d.cts +13 -0
- package/gel-core/roles.d.ts +13 -0
- package/gel-core/roles.js +32 -0
- package/gel-core/roles.js.map +1 -0
- package/gel-core/schema.cjs +74 -0
- package/gel-core/schema.cjs.map +1 -0
- package/gel-core/schema.d.cts +15 -0
- package/gel-core/schema.d.ts +15 -0
- package/gel-core/schema.js +48 -0
- package/gel-core/schema.js.map +1 -0
- package/gel-core/sequence.cjs +52 -0
- package/gel-core/sequence.cjs.map +1 -0
- package/gel-core/sequence.d.cts +18 -0
- package/gel-core/sequence.d.ts +18 -0
- package/gel-core/sequence.js +25 -0
- package/gel-core/sequence.js.map +1 -0
- package/gel-core/session.cjs +94 -0
- package/gel-core/session.cjs.map +1 -0
- package/gel-core/session.d.cts +56 -0
- package/gel-core/session.d.ts +56 -0
- package/gel-core/session.js +68 -0
- package/gel-core/session.js.map +1 -0
- package/gel-core/subquery.cjs +17 -0
- package/gel-core/subquery.cjs.map +1 -0
- package/gel-core/subquery.d.cts +5 -0
- package/gel-core/subquery.d.ts +5 -0
- package/gel-core/subquery.js +1 -0
- package/gel-core/subquery.js.map +1 -0
- package/gel-core/table.cjs +100 -0
- package/gel-core/table.cjs.map +1 -0
- package/gel-core/table.d.cts +95 -0
- package/gel-core/table.d.ts +95 -0
- package/gel-core/table.js +71 -0
- package/gel-core/table.js.map +1 -0
- package/gel-core/unique-constraint.cjs +89 -0
- package/gel-core/unique-constraint.cjs.map +1 -0
- package/gel-core/unique-constraint.d.cts +25 -0
- package/gel-core/unique-constraint.d.ts +25 -0
- package/gel-core/unique-constraint.js +61 -0
- package/gel-core/unique-constraint.js.map +1 -0
- package/gel-core/utils.cjs +100 -0
- package/gel-core/utils.cjs.map +1 -0
- package/gel-core/utils.d.cts +51 -0
- package/gel-core/utils.d.ts +51 -0
- package/gel-core/utils.js +74 -0
- package/gel-core/utils.js.map +1 -0
- package/gel-core/view-base.cjs +33 -0
- package/gel-core/view-base.cjs.map +1 -0
- package/gel-core/view-base.d.cts +8 -0
- package/gel-core/view-base.d.ts +8 -0
- package/gel-core/view-base.js +9 -0
- package/gel-core/view-base.js.map +1 -0
- package/gel-core/view-common.cjs +29 -0
- package/gel-core/view-common.cjs.map +1 -0
- package/gel-core/view-common.d.cts +1 -0
- package/gel-core/view-common.d.ts +1 -0
- package/gel-core/view-common.js +5 -0
- package/gel-core/view-common.js.map +1 -0
- package/gel-core/view.cjs +302 -0
- package/gel-core/view.cjs.map +1 -0
- package/gel-core/view.d.cts +150 -0
- package/gel-core/view.d.ts +150 -0
- package/gel-core/view.js +268 -0
- package/gel-core/view.js.map +1 -0
- package/neon/neon-identity.cjs +2 -2
- package/neon/neon-identity.cjs.map +1 -1
- package/neon/neon-identity.d.cts +3 -3
- package/neon/neon-identity.d.ts +3 -3
- package/neon/neon-identity.js +2 -2
- package/neon/neon-identity.js.map +1 -1
- package/package.json +782 -49
- package/pg-core/table.cjs +2 -0
- package/pg-core/table.cjs.map +1 -1
- package/pg-core/table.js +2 -0
- package/pg-core/table.js.map +1 -1
- package/table.cjs.map +1 -1
- package/table.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.js";
|
|
2
|
+
import type { GelDialectConfig } from "../dialect.js";
|
|
3
|
+
import { GelDialect } from "../dialect.js";
|
|
4
|
+
import type { TypedQueryBuilder } from "../../query-builders/query-builder.js";
|
|
5
|
+
import type { ColumnsSelection, SQLWrapper } from "../../sql/sql.js";
|
|
6
|
+
import { WithSubquery } from "../../subquery.js";
|
|
7
|
+
import type { GelColumn } from "../columns/index.js";
|
|
8
|
+
import type { WithSubqueryWithSelection } from "../subquery.js";
|
|
9
|
+
import { GelSelectBuilder } from "./select.js";
|
|
10
|
+
import type { SelectedFields } from "./select.types.js";
|
|
11
|
+
export declare class QueryBuilder {
|
|
12
|
+
static readonly [entityKind]: string;
|
|
13
|
+
private dialect;
|
|
14
|
+
private dialectConfig;
|
|
15
|
+
constructor(dialect?: GelDialect | GelDialectConfig);
|
|
16
|
+
$with<TAlias extends string>(alias: TAlias): {
|
|
17
|
+
as<TSelection extends ColumnsSelection>(qb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>)): WithSubqueryWithSelection<TSelection, TAlias>;
|
|
18
|
+
};
|
|
19
|
+
with(...queries: WithSubquery[]): {
|
|
20
|
+
select: {
|
|
21
|
+
(): GelSelectBuilder<undefined, "qb">;
|
|
22
|
+
<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, "qb">;
|
|
23
|
+
};
|
|
24
|
+
selectDistinct: {
|
|
25
|
+
(): GelSelectBuilder<undefined, "qb">;
|
|
26
|
+
<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, "qb">;
|
|
27
|
+
};
|
|
28
|
+
selectDistinctOn: {
|
|
29
|
+
(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder<undefined, "qb">;
|
|
30
|
+
<TSelection extends SelectedFields>(on: (GelColumn | SQLWrapper)[], fields: TSelection): GelSelectBuilder<TSelection, "qb">;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
select(): GelSelectBuilder<undefined, 'qb'>;
|
|
34
|
+
select<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, 'qb'>;
|
|
35
|
+
selectDistinct(): GelSelectBuilder<undefined>;
|
|
36
|
+
selectDistinct<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection>;
|
|
37
|
+
selectDistinctOn(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder<undefined>;
|
|
38
|
+
selectDistinctOn<TSelection extends SelectedFields>(on: (GelColumn | SQLWrapper)[], fields: TSelection): GelSelectBuilder<TSelection>;
|
|
39
|
+
private getDialect;
|
|
40
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { entityKind, is } from "../../entity.js";
|
|
2
|
+
import { GelDialect } from "../dialect.js";
|
|
3
|
+
import { SelectionProxyHandler } from "../../selection-proxy.js";
|
|
4
|
+
import { WithSubquery } from "../../subquery.js";
|
|
5
|
+
import { GelSelectBuilder } from "./select.js";
|
|
6
|
+
class QueryBuilder {
|
|
7
|
+
static [entityKind] = "GelQueryBuilder";
|
|
8
|
+
dialect;
|
|
9
|
+
dialectConfig;
|
|
10
|
+
constructor(dialect) {
|
|
11
|
+
this.dialect = is(dialect, GelDialect) ? dialect : void 0;
|
|
12
|
+
this.dialectConfig = is(dialect, GelDialect) ? void 0 : dialect;
|
|
13
|
+
}
|
|
14
|
+
$with(alias) {
|
|
15
|
+
const queryBuilder = this;
|
|
16
|
+
return {
|
|
17
|
+
as(qb) {
|
|
18
|
+
if (typeof qb === "function") {
|
|
19
|
+
qb = qb(queryBuilder);
|
|
20
|
+
}
|
|
21
|
+
return new Proxy(
|
|
22
|
+
new WithSubquery(qb.getSQL(), qb.getSelectedFields(), alias, true),
|
|
23
|
+
new SelectionProxyHandler({ alias, sqlAliasedBehavior: "alias", sqlBehavior: "error" })
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
with(...queries) {
|
|
29
|
+
const self = this;
|
|
30
|
+
function select(fields) {
|
|
31
|
+
return new GelSelectBuilder({
|
|
32
|
+
fields: fields ?? void 0,
|
|
33
|
+
session: void 0,
|
|
34
|
+
dialect: self.getDialect(),
|
|
35
|
+
withList: queries
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function selectDistinct(fields) {
|
|
39
|
+
return new GelSelectBuilder({
|
|
40
|
+
fields: fields ?? void 0,
|
|
41
|
+
session: void 0,
|
|
42
|
+
dialect: self.getDialect(),
|
|
43
|
+
distinct: true
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function selectDistinctOn(on, fields) {
|
|
47
|
+
return new GelSelectBuilder({
|
|
48
|
+
fields: fields ?? void 0,
|
|
49
|
+
session: void 0,
|
|
50
|
+
dialect: self.getDialect(),
|
|
51
|
+
distinct: { on }
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return { select, selectDistinct, selectDistinctOn };
|
|
55
|
+
}
|
|
56
|
+
select(fields) {
|
|
57
|
+
return new GelSelectBuilder({
|
|
58
|
+
fields: fields ?? void 0,
|
|
59
|
+
session: void 0,
|
|
60
|
+
dialect: this.getDialect()
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
selectDistinct(fields) {
|
|
64
|
+
return new GelSelectBuilder({
|
|
65
|
+
fields: fields ?? void 0,
|
|
66
|
+
session: void 0,
|
|
67
|
+
dialect: this.getDialect(),
|
|
68
|
+
distinct: true
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
selectDistinctOn(on, fields) {
|
|
72
|
+
return new GelSelectBuilder({
|
|
73
|
+
fields: fields ?? void 0,
|
|
74
|
+
session: void 0,
|
|
75
|
+
dialect: this.getDialect(),
|
|
76
|
+
distinct: { on }
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// Lazy load dialect to avoid circular dependency
|
|
80
|
+
getDialect() {
|
|
81
|
+
if (!this.dialect) {
|
|
82
|
+
this.dialect = new GelDialect(this.dialectConfig);
|
|
83
|
+
}
|
|
84
|
+
return this.dialect;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
QueryBuilder
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=query-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/query-builder.ts"],"sourcesContent":["import { entityKind, is } from '~/entity.ts';\nimport type { GelDialectConfig } from '~/gel-core/dialect.ts';\nimport { GelDialect } from '~/gel-core/dialect.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQLWrapper } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { GelColumn } from '../columns/index.ts';\nimport type { WithSubqueryWithSelection } from '../subquery.ts';\nimport { GelSelectBuilder } from './select.ts';\nimport type { SelectedFields } from './select.types.ts';\n\nexport class QueryBuilder {\n\tstatic readonly [entityKind]: string = 'GelQueryBuilder';\n\n\tprivate dialect: GelDialect | undefined;\n\tprivate dialectConfig: GelDialectConfig | undefined;\n\n\tconstructor(dialect?: GelDialect | GelDialectConfig) {\n\t\tthis.dialect = is(dialect, GelDialect) ? dialect : undefined;\n\t\tthis.dialectConfig = is(dialect, GelDialect) ? undefined : dialect;\n\t}\n\n\t$with<TAlias extends string>(alias: TAlias) {\n\t\tconst queryBuilder = this;\n\n\t\treturn {\n\t\t\tas<TSelection extends ColumnsSelection>(\n\t\t\t\tqb: TypedQueryBuilder<TSelection> | ((qb: QueryBuilder) => TypedQueryBuilder<TSelection>),\n\t\t\t): WithSubqueryWithSelection<TSelection, TAlias> {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(queryBuilder);\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection<TSelection, TAlias>;\n\t\t\t},\n\t\t};\n\t}\n\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\tfunction select(): GelSelectBuilder<undefined, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, 'qb'>;\n\t\tfunction select<TSelection extends SelectedFields>(\n\t\t\tfields?: TSelection,\n\t\t): GelSelectBuilder<TSelection | undefined, 'qb'> {\n\t\t\treturn new GelSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinct(): GelSelectBuilder<undefined, 'qb'>;\n\t\tfunction selectDistinct<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, 'qb'>;\n\t\tfunction selectDistinct(fields?: SelectedFields): GelSelectBuilder<SelectedFields | undefined, 'qb'> {\n\t\t\treturn new GelSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinctOn(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder<undefined, 'qb'>;\n\t\tfunction selectDistinctOn<TSelection extends SelectedFields>(\n\t\t\ton: (GelColumn | SQLWrapper)[],\n\t\t\tfields: TSelection,\n\t\t): GelSelectBuilder<TSelection, 'qb'>;\n\t\tfunction selectDistinctOn(\n\t\t\ton: (GelColumn | SQLWrapper)[],\n\t\t\tfields?: SelectedFields,\n\t\t): GelSelectBuilder<SelectedFields | undefined, 'qb'> {\n\t\t\treturn new GelSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\tdistinct: { on },\n\t\t\t});\n\t\t}\n\n\t\treturn { select, selectDistinct, selectDistinctOn };\n\t}\n\n\tselect(): GelSelectBuilder<undefined, 'qb'>;\n\tselect<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection, 'qb'>;\n\tselect<TSelection extends SelectedFields>(fields?: TSelection): GelSelectBuilder<TSelection | undefined, 'qb'> {\n\t\treturn new GelSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t});\n\t}\n\n\tselectDistinct(): GelSelectBuilder<undefined>;\n\tselectDistinct<TSelection extends SelectedFields>(fields: TSelection): GelSelectBuilder<TSelection>;\n\tselectDistinct(fields?: SelectedFields): GelSelectBuilder<SelectedFields | undefined> {\n\t\treturn new GelSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\tselectDistinctOn(on: (GelColumn | SQLWrapper)[]): GelSelectBuilder<undefined>;\n\tselectDistinctOn<TSelection extends SelectedFields>(\n\t\ton: (GelColumn | SQLWrapper)[],\n\t\tfields: TSelection,\n\t): GelSelectBuilder<TSelection>;\n\tselectDistinctOn(\n\t\ton: (GelColumn | SQLWrapper)[],\n\t\tfields?: SelectedFields,\n\t): GelSelectBuilder<SelectedFields | undefined> {\n\t\treturn new GelSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: { on },\n\t\t});\n\t}\n\n\t// Lazy load dialect to avoid circular dependency\n\tprivate getDialect() {\n\t\tif (!this.dialect) {\n\t\t\tthis.dialect = new GelDialect(this.dialectConfig);\n\t\t}\n\n\t\treturn this.dialect;\n\t}\n}\n"],"mappings":"AAAA,SAAS,YAAY,UAAU;AAE/B,SAAS,kBAAkB;AAE3B,SAAS,6BAA6B;AAEtC,SAAS,oBAAoB;AAG7B,SAAS,wBAAwB;AAG1B,MAAM,aAAa;AAAA,EACzB,QAAiB,UAAU,IAAY;AAAA,EAE/B;AAAA,EACA;AAAA,EAER,YAAY,SAAyC;AACpD,SAAK,UAAU,GAAG,SAAS,UAAU,IAAI,UAAU;AACnD,SAAK,gBAAgB,GAAG,SAAS,UAAU,IAAI,SAAY;AAAA,EAC5D;AAAA,EAEA,MAA6B,OAAe;AAC3C,UAAM,eAAe;AAErB,WAAO;AAAA,MACN,GACC,IACgD;AAChD,YAAI,OAAO,OAAO,YAAY;AAC7B,eAAK,GAAG,YAAY;AAAA,QACrB;AAEA,eAAO,IAAI;AAAA,UACV,IAAI,aAAa,GAAG,OAAO,GAAG,GAAG,kBAAkB,GAAqB,OAAO,IAAI;AAAA,UACnF,IAAI,sBAAsB,EAAE,OAAO,oBAAoB,SAAS,aAAa,QAAQ,CAAC;AAAA,QACvF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,QAAQ,SAAyB;AAChC,UAAM,OAAO;AAIb,aAAS,OACR,QACiD;AACjD,aAAO,IAAI,iBAAiB;AAAA,QAC3B,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAIA,aAAS,eAAe,QAA6E;AACpG,aAAO,IAAI,iBAAiB;AAAA,QAC3B,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAOA,aAAS,iBACR,IACA,QACqD;AACrD,aAAO,IAAI,iBAAiB;AAAA,QAC3B,QAAQ,UAAU;AAAA,QAClB,SAAS;AAAA,QACT,SAAS,KAAK,WAAW;AAAA,QACzB,UAAU,EAAE,GAAG;AAAA,MAChB,CAAC;AAAA,IACF;AAEA,WAAO,EAAE,QAAQ,gBAAgB,iBAAiB;AAAA,EACnD;AAAA,EAIA,OAA0C,QAAqE;AAC9G,WAAO,IAAI,iBAAiB;AAAA,MAC3B,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,IAC1B,CAAC;AAAA,EACF;AAAA,EAIA,eAAe,QAAuE;AACrF,WAAO,IAAI,iBAAiB;AAAA,MAC3B,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,MACzB,UAAU;AAAA,IACX,CAAC;AAAA,EACF;AAAA,EAOA,iBACC,IACA,QAC+C;AAC/C,WAAO,IAAI,iBAAiB;AAAA,MAC3B,QAAQ,UAAU;AAAA,MAClB,SAAS;AAAA,MACT,SAAS,KAAK,WAAW;AAAA,MACzB,UAAU,EAAE,GAAG;AAAA,IAChB,CAAC;AAAA,EACF;AAAA;AAAA,EAGQ,aAAa;AACpB,QAAI,CAAC,KAAK,SAAS;AAClB,WAAK,UAAU,IAAI,WAAW,KAAK,aAAa;AAAA,IACjD;AAEA,WAAO,KAAK;AAAA,EACb;AACD;","names":[]}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var query_exports = {};
|
|
20
|
+
__export(query_exports, {
|
|
21
|
+
GelRelationalQuery: () => GelRelationalQuery,
|
|
22
|
+
RelationalQueryBuilder: () => RelationalQueryBuilder
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(query_exports);
|
|
25
|
+
var import_entity = require("../../entity.cjs");
|
|
26
|
+
var import_query_promise = require("../../query-promise.cjs");
|
|
27
|
+
var import_relations = require("../../relations.cjs");
|
|
28
|
+
var import_tracing = require("../../tracing.cjs");
|
|
29
|
+
class RelationalQueryBuilder {
|
|
30
|
+
constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session) {
|
|
31
|
+
this.fullSchema = fullSchema;
|
|
32
|
+
this.schema = schema;
|
|
33
|
+
this.tableNamesMap = tableNamesMap;
|
|
34
|
+
this.table = table;
|
|
35
|
+
this.tableConfig = tableConfig;
|
|
36
|
+
this.dialect = dialect;
|
|
37
|
+
this.session = session;
|
|
38
|
+
}
|
|
39
|
+
static [import_entity.entityKind] = "GelRelationalQueryBuilder";
|
|
40
|
+
findMany(config) {
|
|
41
|
+
return new GelRelationalQuery(
|
|
42
|
+
this.fullSchema,
|
|
43
|
+
this.schema,
|
|
44
|
+
this.tableNamesMap,
|
|
45
|
+
this.table,
|
|
46
|
+
this.tableConfig,
|
|
47
|
+
this.dialect,
|
|
48
|
+
this.session,
|
|
49
|
+
config ? config : {},
|
|
50
|
+
"many"
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
findFirst(config) {
|
|
54
|
+
return new GelRelationalQuery(
|
|
55
|
+
this.fullSchema,
|
|
56
|
+
this.schema,
|
|
57
|
+
this.tableNamesMap,
|
|
58
|
+
this.table,
|
|
59
|
+
this.tableConfig,
|
|
60
|
+
this.dialect,
|
|
61
|
+
this.session,
|
|
62
|
+
config ? { ...config, limit: 1 } : { limit: 1 },
|
|
63
|
+
"first"
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class GelRelationalQuery extends import_query_promise.QueryPromise {
|
|
68
|
+
constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, config, mode) {
|
|
69
|
+
super();
|
|
70
|
+
this.fullSchema = fullSchema;
|
|
71
|
+
this.schema = schema;
|
|
72
|
+
this.tableNamesMap = tableNamesMap;
|
|
73
|
+
this.table = table;
|
|
74
|
+
this.tableConfig = tableConfig;
|
|
75
|
+
this.dialect = dialect;
|
|
76
|
+
this.session = session;
|
|
77
|
+
this.config = config;
|
|
78
|
+
this.mode = mode;
|
|
79
|
+
}
|
|
80
|
+
static [import_entity.entityKind] = "GelRelationalQuery";
|
|
81
|
+
/** @internal */
|
|
82
|
+
_prepare(name) {
|
|
83
|
+
return import_tracing.tracer.startActiveSpan("drizzle.prepareQuery", () => {
|
|
84
|
+
const { query, builtQuery } = this._toSQL();
|
|
85
|
+
return this.session.prepareQuery(
|
|
86
|
+
builtQuery,
|
|
87
|
+
void 0,
|
|
88
|
+
name,
|
|
89
|
+
true,
|
|
90
|
+
(rawRows, mapColumnValue) => {
|
|
91
|
+
const rows = rawRows.map(
|
|
92
|
+
(row) => (0, import_relations.mapRelationalRow)(this.schema, this.tableConfig, row, query.selection, mapColumnValue)
|
|
93
|
+
);
|
|
94
|
+
if (this.mode === "first") {
|
|
95
|
+
return rows[0];
|
|
96
|
+
}
|
|
97
|
+
return rows;
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
prepare(name) {
|
|
103
|
+
return this._prepare(name);
|
|
104
|
+
}
|
|
105
|
+
_getQuery() {
|
|
106
|
+
return this.dialect.buildRelationalQueryWithoutPK({
|
|
107
|
+
fullSchema: this.fullSchema,
|
|
108
|
+
schema: this.schema,
|
|
109
|
+
tableNamesMap: this.tableNamesMap,
|
|
110
|
+
table: this.table,
|
|
111
|
+
tableConfig: this.tableConfig,
|
|
112
|
+
queryConfig: this.config,
|
|
113
|
+
tableAlias: this.tableConfig.tsName
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/** @internal */
|
|
117
|
+
getSQL() {
|
|
118
|
+
return this._getQuery().sql;
|
|
119
|
+
}
|
|
120
|
+
_toSQL() {
|
|
121
|
+
const query = this._getQuery();
|
|
122
|
+
const builtQuery = this.dialect.sqlToQuery(query.sql);
|
|
123
|
+
return { query, builtQuery };
|
|
124
|
+
}
|
|
125
|
+
toSQL() {
|
|
126
|
+
return this._toSQL().builtQuery;
|
|
127
|
+
}
|
|
128
|
+
execute() {
|
|
129
|
+
return import_tracing.tracer.startActiveSpan("drizzle.operation", () => {
|
|
130
|
+
return this._prepare().execute(void 0);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
GelRelationalQuery,
|
|
137
|
+
RelationalQueryBuilder
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=query.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new GelRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new GelRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class GelRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'gel'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQuery';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'gel';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\ttrue,\n\t\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\t\tconst rows = rawRows.map((row) =>\n\t\t\t\t\t\tmapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)\n\t\t\t\t\t);\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQueryWithoutPK({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined);\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAC7B,uBAOO;AAGP,qBAAuB;AAMhB,MAAM,uBAAsG;AAAA,EAGlH,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,SACC,QACoE;AACpE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QACiF;AACjF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,2BAAoC,kCAEjD;AAAA,EAQC,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAnBA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAsBhD,SAAS,MAA6E;AACrF,WAAO,sBAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,SAAS,mBAAmB;AAC5B,gBAAM,OAAO,QAAQ;AAAA,YAAI,CAAC,YACzB,mCAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,WAAW,cAAc;AAAA,UACrF;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA4E;AACnF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,8BAA8B;AAAA,MACjD,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,sBAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,MAAS;AAAA,IACzC,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.cjs";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.cjs";
|
|
3
|
+
import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig, type TablesRelationalConfig } from "../../relations.cjs";
|
|
4
|
+
import type { RunnableQuery } from "../../runnable-query.cjs";
|
|
5
|
+
import type { Query, SQLWrapper } from "../../sql/sql.cjs";
|
|
6
|
+
import type { KnownKeysOnly } from "../../utils.cjs";
|
|
7
|
+
import type { GelDialect } from "../dialect.cjs";
|
|
8
|
+
import type { GelPreparedQuery, GelSession, PreparedQueryConfig } from "../session.cjs";
|
|
9
|
+
import type { GelTable } from "../table.cjs";
|
|
10
|
+
export declare class RelationalQueryBuilder<TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
|
|
11
|
+
private fullSchema;
|
|
12
|
+
private schema;
|
|
13
|
+
private tableNamesMap;
|
|
14
|
+
private table;
|
|
15
|
+
private tableConfig;
|
|
16
|
+
private dialect;
|
|
17
|
+
private session;
|
|
18
|
+
static readonly [entityKind]: string;
|
|
19
|
+
constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: GelTable, tableConfig: TableRelationalConfig, dialect: GelDialect, session: GelSession);
|
|
20
|
+
findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]>;
|
|
21
|
+
findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
|
|
22
|
+
}
|
|
23
|
+
export declare class GelRelationalQuery<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'gel'>, SQLWrapper {
|
|
24
|
+
private fullSchema;
|
|
25
|
+
private schema;
|
|
26
|
+
private tableNamesMap;
|
|
27
|
+
private table;
|
|
28
|
+
private tableConfig;
|
|
29
|
+
private dialect;
|
|
30
|
+
private session;
|
|
31
|
+
private config;
|
|
32
|
+
private mode;
|
|
33
|
+
static readonly [entityKind]: string;
|
|
34
|
+
readonly _: {
|
|
35
|
+
readonly dialect: 'gel';
|
|
36
|
+
readonly result: TResult;
|
|
37
|
+
};
|
|
38
|
+
constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: GelTable, tableConfig: TableRelationalConfig, dialect: GelDialect, session: GelSession, config: DBQueryConfig<'many', true> | true, mode: 'many' | 'first');
|
|
39
|
+
prepare(name: string): GelPreparedQuery<PreparedQueryConfig & {
|
|
40
|
+
execute: TResult;
|
|
41
|
+
}>;
|
|
42
|
+
private _getQuery;
|
|
43
|
+
private _toSQL;
|
|
44
|
+
toSQL(): Query;
|
|
45
|
+
execute(): Promise<TResult>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.js";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.js";
|
|
3
|
+
import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig, type TablesRelationalConfig } from "../../relations.js";
|
|
4
|
+
import type { RunnableQuery } from "../../runnable-query.js";
|
|
5
|
+
import type { Query, SQLWrapper } from "../../sql/sql.js";
|
|
6
|
+
import type { KnownKeysOnly } from "../../utils.js";
|
|
7
|
+
import type { GelDialect } from "../dialect.js";
|
|
8
|
+
import type { GelPreparedQuery, GelSession, PreparedQueryConfig } from "../session.js";
|
|
9
|
+
import type { GelTable } from "../table.js";
|
|
10
|
+
export declare class RelationalQueryBuilder<TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {
|
|
11
|
+
private fullSchema;
|
|
12
|
+
private schema;
|
|
13
|
+
private tableNamesMap;
|
|
14
|
+
private table;
|
|
15
|
+
private tableConfig;
|
|
16
|
+
private dialect;
|
|
17
|
+
private session;
|
|
18
|
+
static readonly [entityKind]: string;
|
|
19
|
+
constructor(fullSchema: Record<string, unknown>, schema: TSchema, tableNamesMap: Record<string, string>, table: GelTable, tableConfig: TableRelationalConfig, dialect: GelDialect, session: GelSession);
|
|
20
|
+
findMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]>;
|
|
21
|
+
findFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(config?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TSelection> | undefined>;
|
|
22
|
+
}
|
|
23
|
+
export declare class GelRelationalQuery<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'gel'>, SQLWrapper {
|
|
24
|
+
private fullSchema;
|
|
25
|
+
private schema;
|
|
26
|
+
private tableNamesMap;
|
|
27
|
+
private table;
|
|
28
|
+
private tableConfig;
|
|
29
|
+
private dialect;
|
|
30
|
+
private session;
|
|
31
|
+
private config;
|
|
32
|
+
private mode;
|
|
33
|
+
static readonly [entityKind]: string;
|
|
34
|
+
readonly _: {
|
|
35
|
+
readonly dialect: 'gel';
|
|
36
|
+
readonly result: TResult;
|
|
37
|
+
};
|
|
38
|
+
constructor(fullSchema: Record<string, unknown>, schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, table: GelTable, tableConfig: TableRelationalConfig, dialect: GelDialect, session: GelSession, config: DBQueryConfig<'many', true> | true, mode: 'many' | 'first');
|
|
39
|
+
prepare(name: string): GelPreparedQuery<PreparedQueryConfig & {
|
|
40
|
+
execute: TResult;
|
|
41
|
+
}>;
|
|
42
|
+
private _getQuery;
|
|
43
|
+
private _toSQL;
|
|
44
|
+
toSQL(): Query;
|
|
45
|
+
execute(): Promise<TResult>;
|
|
46
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.js";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.js";
|
|
3
|
+
import {
|
|
4
|
+
mapRelationalRow
|
|
5
|
+
} from "../../relations.js";
|
|
6
|
+
import { tracer } from "../../tracing.js";
|
|
7
|
+
class RelationalQueryBuilder {
|
|
8
|
+
constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session) {
|
|
9
|
+
this.fullSchema = fullSchema;
|
|
10
|
+
this.schema = schema;
|
|
11
|
+
this.tableNamesMap = tableNamesMap;
|
|
12
|
+
this.table = table;
|
|
13
|
+
this.tableConfig = tableConfig;
|
|
14
|
+
this.dialect = dialect;
|
|
15
|
+
this.session = session;
|
|
16
|
+
}
|
|
17
|
+
static [entityKind] = "GelRelationalQueryBuilder";
|
|
18
|
+
findMany(config) {
|
|
19
|
+
return new GelRelationalQuery(
|
|
20
|
+
this.fullSchema,
|
|
21
|
+
this.schema,
|
|
22
|
+
this.tableNamesMap,
|
|
23
|
+
this.table,
|
|
24
|
+
this.tableConfig,
|
|
25
|
+
this.dialect,
|
|
26
|
+
this.session,
|
|
27
|
+
config ? config : {},
|
|
28
|
+
"many"
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
findFirst(config) {
|
|
32
|
+
return new GelRelationalQuery(
|
|
33
|
+
this.fullSchema,
|
|
34
|
+
this.schema,
|
|
35
|
+
this.tableNamesMap,
|
|
36
|
+
this.table,
|
|
37
|
+
this.tableConfig,
|
|
38
|
+
this.dialect,
|
|
39
|
+
this.session,
|
|
40
|
+
config ? { ...config, limit: 1 } : { limit: 1 },
|
|
41
|
+
"first"
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
class GelRelationalQuery extends QueryPromise {
|
|
46
|
+
constructor(fullSchema, schema, tableNamesMap, table, tableConfig, dialect, session, config, mode) {
|
|
47
|
+
super();
|
|
48
|
+
this.fullSchema = fullSchema;
|
|
49
|
+
this.schema = schema;
|
|
50
|
+
this.tableNamesMap = tableNamesMap;
|
|
51
|
+
this.table = table;
|
|
52
|
+
this.tableConfig = tableConfig;
|
|
53
|
+
this.dialect = dialect;
|
|
54
|
+
this.session = session;
|
|
55
|
+
this.config = config;
|
|
56
|
+
this.mode = mode;
|
|
57
|
+
}
|
|
58
|
+
static [entityKind] = "GelRelationalQuery";
|
|
59
|
+
/** @internal */
|
|
60
|
+
_prepare(name) {
|
|
61
|
+
return tracer.startActiveSpan("drizzle.prepareQuery", () => {
|
|
62
|
+
const { query, builtQuery } = this._toSQL();
|
|
63
|
+
return this.session.prepareQuery(
|
|
64
|
+
builtQuery,
|
|
65
|
+
void 0,
|
|
66
|
+
name,
|
|
67
|
+
true,
|
|
68
|
+
(rawRows, mapColumnValue) => {
|
|
69
|
+
const rows = rawRows.map(
|
|
70
|
+
(row) => mapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)
|
|
71
|
+
);
|
|
72
|
+
if (this.mode === "first") {
|
|
73
|
+
return rows[0];
|
|
74
|
+
}
|
|
75
|
+
return rows;
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
prepare(name) {
|
|
81
|
+
return this._prepare(name);
|
|
82
|
+
}
|
|
83
|
+
_getQuery() {
|
|
84
|
+
return this.dialect.buildRelationalQueryWithoutPK({
|
|
85
|
+
fullSchema: this.fullSchema,
|
|
86
|
+
schema: this.schema,
|
|
87
|
+
tableNamesMap: this.tableNamesMap,
|
|
88
|
+
table: this.table,
|
|
89
|
+
tableConfig: this.tableConfig,
|
|
90
|
+
queryConfig: this.config,
|
|
91
|
+
tableAlias: this.tableConfig.tsName
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** @internal */
|
|
95
|
+
getSQL() {
|
|
96
|
+
return this._getQuery().sql;
|
|
97
|
+
}
|
|
98
|
+
_toSQL() {
|
|
99
|
+
const query = this._getQuery();
|
|
100
|
+
const builtQuery = this.dialect.sqlToQuery(query.sql);
|
|
101
|
+
return { query, builtQuery };
|
|
102
|
+
}
|
|
103
|
+
toSQL() {
|
|
104
|
+
return this._toSQL().builtQuery;
|
|
105
|
+
}
|
|
106
|
+
execute() {
|
|
107
|
+
return tracer.startActiveSpan("drizzle.operation", () => {
|
|
108
|
+
return this._prepare().execute(void 0);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export {
|
|
113
|
+
GelRelationalQuery,
|
|
114
|
+
RelationalQueryBuilder
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/query.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { tracer } from '~/tracing.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { GelDialect } from '../dialect.ts';\nimport type { GelPreparedQuery, GelSession, PreparedQueryConfig } from '../session.ts';\nimport type { GelTable } from '../table.ts';\n\nexport class RelationalQueryBuilder<TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig> {\n\tstatic readonly [entityKind]: string = 'GelRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TSchema,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t) {}\n\n\tfindMany<TConfig extends DBQueryConfig<'many', true, TSchema, TFields>>(\n\t\tconfig?: KnownKeysOnly<TConfig, DBQueryConfig<'many', true, TSchema, TFields>>,\n\t): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[]> {\n\t\treturn new GelRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t'many',\n\t\t);\n\t}\n\n\tfindFirst<TSelection extends Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>(\n\t\tconfig?: KnownKeysOnly<TSelection, Omit<DBQueryConfig<'many', true, TSchema, TFields>, 'limit'>>,\n\t): GelRelationalQuery<BuildQueryResult<TSchema, TFields, TSelection> | undefined> {\n\t\treturn new GelRelationalQuery(\n\t\t\tthis.fullSchema,\n\t\t\tthis.schema,\n\t\t\tthis.tableNamesMap,\n\t\t\tthis.table,\n\t\t\tthis.tableConfig,\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t'first',\n\t\t);\n\t}\n}\n\nexport class GelRelationalQuery<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'gel'>, SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'GelRelationalQuery';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'gel';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tprivate fullSchema: Record<string, unknown>,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record<string, string>,\n\t\tprivate table: GelTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: GelDialect,\n\t\tprivate session: GelSession,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tprivate mode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\t_prepare(name?: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn tracer.startActiveSpan('drizzle.prepareQuery', () => {\n\t\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\t\treturn this.session.prepareQuery<PreparedQueryConfig & { execute: TResult }>(\n\t\t\t\tbuiltQuery,\n\t\t\t\tundefined,\n\t\t\t\tname,\n\t\t\t\ttrue,\n\t\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\t\tconst rows = rawRows.map((row) =>\n\t\t\t\t\t\tmapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)\n\t\t\t\t\t);\n\t\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t\t}\n\t\t\t\t\treturn rows as TResult;\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t}\n\n\tprepare(name: string): GelPreparedQuery<PreparedQueryConfig & { execute: TResult }> {\n\t\treturn this._prepare(name);\n\t}\n\n\tprivate _getQuery() {\n\t\treturn this.dialect.buildRelationalQueryWithoutPK({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this._getQuery().sql as SQL;\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this._getQuery();\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\toverride execute(): Promise<TResult> {\n\t\treturn tracer.startActiveSpan('drizzle.operation', () => {\n\t\t\treturn this._prepare().execute(undefined);\n\t\t});\n\t}\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B;AAAA,EAIC;AAAA,OAGM;AAGP,SAAS,cAAc;AAMhB,MAAM,uBAAsG;AAAA,EAGlH,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACP;AAPO;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,SACC,QACoE;AACpE,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAU,SAAyC,CAAC;AAAA,MACpD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,UACC,QACiF;AACjF,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS,EAAE,GAAI,QAAoD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAAA,MAC3F;AAAA,IACD;AAAA,EACD;AACD;AAEO,MAAM,2BAAoC,aAEjD;AAAA,EAQC,YACS,YACA,QACA,eACA,OACA,aACA,SACA,SACA,QACA,MACP;AACD,UAAM;AAVE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,EAGT;AAAA,EAnBA,QAA0B,UAAU,IAAY;AAAA;AAAA,EAsBhD,SAAS,MAA6E;AACrF,WAAO,OAAO,gBAAgB,wBAAwB,MAAM;AAC3D,YAAM,EAAE,OAAO,WAAW,IAAI,KAAK,OAAO;AAE1C,aAAO,KAAK,QAAQ;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAAC,SAAS,mBAAmB;AAC5B,gBAAM,OAAO,QAAQ;AAAA,YAAI,CAAC,QACzB,iBAAiB,KAAK,QAAQ,KAAK,aAAa,KAAK,MAAM,WAAW,cAAc;AAAA,UACrF;AACA,cAAI,KAAK,SAAS,SAAS;AAC1B,mBAAO,KAAK,CAAC;AAAA,UACd;AACA,iBAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAEA,QAAQ,MAA4E;AACnF,WAAO,KAAK,SAAS,IAAI;AAAA,EAC1B;AAAA,EAEQ,YAAY;AACnB,WAAO,KAAK,QAAQ,8BAA8B;AAAA,MACjD,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB,OAAO,KAAK;AAAA,MACZ,aAAa,KAAK;AAAA,MAClB,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,YAAY;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,UAAU,EAAE;AAAA,EACzB;AAAA,EAEQ,SAA8E;AACrF,UAAM,QAAQ,KAAK,UAAU;AAE7B,UAAM,aAAa,KAAK,QAAQ,WAAW,MAAM,GAAU;AAE3D,WAAO,EAAE,OAAO,WAAW;AAAA,EAC5B;AAAA,EAEA,QAAe;AACd,WAAO,KAAK,OAAO,EAAE;AAAA,EACtB;AAAA,EAES,UAA4B;AACpC,WAAO,OAAO,gBAAgB,qBAAqB,MAAM;AACxD,aAAO,KAAK,SAAS,EAAE,QAAQ,MAAS;AAAA,IACzC,CAAC;AAAA,EACF;AACD;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var raw_exports = {};
|
|
20
|
+
__export(raw_exports, {
|
|
21
|
+
GelRaw: () => GelRaw
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(raw_exports);
|
|
24
|
+
var import_entity = require("../../entity.cjs");
|
|
25
|
+
var import_query_promise = require("../../query-promise.cjs");
|
|
26
|
+
class GelRaw extends import_query_promise.QueryPromise {
|
|
27
|
+
constructor(execute, sql, query, mapBatchResult) {
|
|
28
|
+
super();
|
|
29
|
+
this.execute = execute;
|
|
30
|
+
this.sql = sql;
|
|
31
|
+
this.query = query;
|
|
32
|
+
this.mapBatchResult = mapBatchResult;
|
|
33
|
+
}
|
|
34
|
+
static [import_entity.entityKind] = "GelRaw";
|
|
35
|
+
/** @internal */
|
|
36
|
+
getSQL() {
|
|
37
|
+
return this.sql;
|
|
38
|
+
}
|
|
39
|
+
getQuery() {
|
|
40
|
+
return this.query;
|
|
41
|
+
}
|
|
42
|
+
mapResult(result, isFromBatch) {
|
|
43
|
+
return isFromBatch ? this.mapBatchResult(result) : result;
|
|
44
|
+
}
|
|
45
|
+
_prepare() {
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/** @internal */
|
|
49
|
+
isResponseInArrayMode() {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
GelRaw
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=raw.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/gel-core/query-builders/raw.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\n\nexport interface GelRaw<TResult> extends QueryPromise<TResult>, RunnableQuery<TResult, 'gel'>, SQLWrapper {}\n\nexport class GelRaw<TResult> extends QueryPromise<TResult>\n\timplements RunnableQuery<TResult, 'gel'>, SQLWrapper, PreparedQuery\n{\n\tstatic override readonly [entityKind]: string = 'GelRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'gel';\n\t\treadonly result: TResult;\n\t};\n\n\tconstructor(\n\t\tpublic execute: () => Promise<TResult>,\n\t\tprivate sql: SQL,\n\t\tprivate query: Query,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t}\n\n\t/** @internal */\n\tgetSQL() {\n\t\treturn this.sql;\n\t}\n\n\tgetQuery() {\n\t\treturn this.query;\n\t}\n\n\tmapResult(result: unknown, isFromBatch?: boolean) {\n\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t}\n\n\t_prepare(): PreparedQuery {\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode() {\n\t\treturn false;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,2BAA6B;AAOtB,MAAM,eAAwB,kCAErC;AAAA,EAQC,YACQ,SACC,KACA,OACA,gBACP;AACD,UAAM;AALC;AACC;AACA;AACA;AAAA,EAGT;AAAA,EAdA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAiBhD,SAAS;AACR,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,WAAW;AACV,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,UAAU,QAAiB,aAAuB;AACjD,WAAO,cAAc,KAAK,eAAe,MAAM,IAAI;AAAA,EACpD;AAAA,EAEA,WAA0B;AACzB,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,wBAAwB;AACvB,WAAO;AAAA,EACR;AACD;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.cjs";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.cjs";
|
|
3
|
+
import type { RunnableQuery } from "../../runnable-query.cjs";
|
|
4
|
+
import type { PreparedQuery } from "../../session.cjs";
|
|
5
|
+
import type { Query, SQL, SQLWrapper } from "../../sql/sql.cjs";
|
|
6
|
+
export interface GelRaw<TResult> extends QueryPromise<TResult>, RunnableQuery<TResult, 'gel'>, SQLWrapper {
|
|
7
|
+
}
|
|
8
|
+
export declare class GelRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'gel'>, SQLWrapper, PreparedQuery {
|
|
9
|
+
execute: () => Promise<TResult>;
|
|
10
|
+
private sql;
|
|
11
|
+
private query;
|
|
12
|
+
private mapBatchResult;
|
|
13
|
+
static readonly [entityKind]: string;
|
|
14
|
+
readonly _: {
|
|
15
|
+
readonly dialect: 'gel';
|
|
16
|
+
readonly result: TResult;
|
|
17
|
+
};
|
|
18
|
+
constructor(execute: () => Promise<TResult>, sql: SQL, query: Query, mapBatchResult: (result: unknown) => unknown);
|
|
19
|
+
getQuery(): Query;
|
|
20
|
+
mapResult(result: unknown, isFromBatch?: boolean): unknown;
|
|
21
|
+
_prepare(): PreparedQuery;
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.js";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.js";
|
|
3
|
+
import type { RunnableQuery } from "../../runnable-query.js";
|
|
4
|
+
import type { PreparedQuery } from "../../session.js";
|
|
5
|
+
import type { Query, SQL, SQLWrapper } from "../../sql/sql.js";
|
|
6
|
+
export interface GelRaw<TResult> extends QueryPromise<TResult>, RunnableQuery<TResult, 'gel'>, SQLWrapper {
|
|
7
|
+
}
|
|
8
|
+
export declare class GelRaw<TResult> extends QueryPromise<TResult> implements RunnableQuery<TResult, 'gel'>, SQLWrapper, PreparedQuery {
|
|
9
|
+
execute: () => Promise<TResult>;
|
|
10
|
+
private sql;
|
|
11
|
+
private query;
|
|
12
|
+
private mapBatchResult;
|
|
13
|
+
static readonly [entityKind]: string;
|
|
14
|
+
readonly _: {
|
|
15
|
+
readonly dialect: 'gel';
|
|
16
|
+
readonly result: TResult;
|
|
17
|
+
};
|
|
18
|
+
constructor(execute: () => Promise<TResult>, sql: SQL, query: Query, mapBatchResult: (result: unknown) => unknown);
|
|
19
|
+
getQuery(): Query;
|
|
20
|
+
mapResult(result: unknown, isFromBatch?: boolean): unknown;
|
|
21
|
+
_prepare(): PreparedQuery;
|
|
22
|
+
}
|