drizzle-orm 0.43.0 → 0.43.1-08e3953
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 +4 -3
- package/column-builder.d.ts +4 -3
- package/column-builder.js.map +1 -1
- package/mssql-core/alias.cjs +32 -0
- package/mssql-core/alias.cjs.map +1 -0
- package/mssql-core/alias.d.cts +4 -0
- package/mssql-core/alias.d.ts +4 -0
- package/mssql-core/alias.js +8 -0
- package/mssql-core/alias.js.map +1 -0
- package/mssql-core/checks.cjs +58 -0
- package/mssql-core/checks.cjs.map +1 -0
- package/mssql-core/checks.d.cts +18 -0
- package/mssql-core/checks.d.ts +18 -0
- package/mssql-core/checks.js +32 -0
- package/mssql-core/checks.js.map +1 -0
- package/mssql-core/columns/all.cjs +72 -0
- package/mssql-core/columns/all.cjs.map +1 -0
- package/mssql-core/columns/all.d.cts +43 -0
- package/mssql-core/columns/all.d.ts +43 -0
- package/mssql-core/columns/all.js +48 -0
- package/mssql-core/columns/all.js.map +1 -0
- package/mssql-core/columns/bigint.cjs +67 -0
- package/mssql-core/columns/bigint.cjs.map +1 -0
- package/mssql-core/columns/bigint.d.cts +33 -0
- package/mssql-core/columns/bigint.d.ts +33 -0
- package/mssql-core/columns/bigint.js +41 -0
- package/mssql-core/columns/bigint.js.map +1 -0
- package/mssql-core/columns/binary.cjs +57 -0
- package/mssql-core/columns/binary.cjs.map +1 -0
- package/mssql-core/columns/binary.d.cts +28 -0
- package/mssql-core/columns/binary.d.ts +28 -0
- package/mssql-core/columns/binary.js +31 -0
- package/mssql-core/columns/binary.js.map +1 -0
- package/mssql-core/columns/bit.cjs +54 -0
- package/mssql-core/columns/bit.cjs.map +1 -0
- package/mssql-core/columns/bit.d.cts +24 -0
- package/mssql-core/columns/bit.d.ts +24 -0
- package/mssql-core/columns/bit.js +28 -0
- package/mssql-core/columns/bit.js.map +1 -0
- package/mssql-core/columns/char.cjs +74 -0
- package/mssql-core/columns/char.cjs.map +1 -0
- package/mssql-core/columns/char.d.cts +37 -0
- package/mssql-core/columns/char.d.ts +37 -0
- package/mssql-core/columns/char.js +47 -0
- package/mssql-core/columns/char.js.map +1 -0
- package/mssql-core/columns/common.cjs +117 -0
- package/mssql-core/columns/common.cjs.map +1 -0
- package/mssql-core/columns/common.d.cts +67 -0
- package/mssql-core/columns/common.d.ts +67 -0
- package/mssql-core/columns/common.js +90 -0
- package/mssql-core/columns/common.js.map +1 -0
- package/mssql-core/columns/custom.cjs +75 -0
- package/mssql-core/columns/custom.cjs.map +1 -0
- package/mssql-core/columns/custom.d.cts +149 -0
- package/mssql-core/columns/custom.d.ts +149 -0
- package/mssql-core/columns/custom.js +49 -0
- package/mssql-core/columns/custom.js.map +1 -0
- package/mssql-core/columns/date.cjs +94 -0
- package/mssql-core/columns/date.cjs.map +1 -0
- package/mssql-core/columns/date.common.cjs +37 -0
- package/mssql-core/columns/date.common.cjs.map +1 -0
- package/mssql-core/columns/date.common.d.cts +12 -0
- package/mssql-core/columns/date.common.d.ts +12 -0
- package/mssql-core/columns/date.common.js +13 -0
- package/mssql-core/columns/date.common.js.map +1 -0
- package/mssql-core/columns/date.d.cts +55 -0
- package/mssql-core/columns/date.d.ts +55 -0
- package/mssql-core/columns/date.js +66 -0
- package/mssql-core/columns/date.js.map +1 -0
- package/mssql-core/columns/datetime.cjs +94 -0
- package/mssql-core/columns/datetime.cjs.map +1 -0
- package/mssql-core/columns/datetime.d.cts +54 -0
- package/mssql-core/columns/datetime.d.ts +54 -0
- package/mssql-core/columns/datetime.js +66 -0
- package/mssql-core/columns/datetime.js.map +1 -0
- package/mssql-core/columns/datetime2.cjs +102 -0
- package/mssql-core/columns/datetime2.cjs.map +1 -0
- package/mssql-core/columns/datetime2.d.cts +54 -0
- package/mssql-core/columns/datetime2.d.ts +54 -0
- package/mssql-core/columns/datetime2.js +74 -0
- package/mssql-core/columns/datetime2.js.map +1 -0
- package/mssql-core/columns/datetimeoffset.cjs +102 -0
- package/mssql-core/columns/datetimeoffset.cjs.map +1 -0
- package/mssql-core/columns/datetimeoffset.d.cts +54 -0
- package/mssql-core/columns/datetimeoffset.d.ts +54 -0
- package/mssql-core/columns/datetimeoffset.js +74 -0
- package/mssql-core/columns/datetimeoffset.js.map +1 -0
- package/mssql-core/columns/decimal.cjs +68 -0
- package/mssql-core/columns/decimal.cjs.map +1 -0
- package/mssql-core/columns/decimal.d.cts +30 -0
- package/mssql-core/columns/decimal.d.ts +30 -0
- package/mssql-core/columns/decimal.js +42 -0
- package/mssql-core/columns/decimal.js.map +1 -0
- package/mssql-core/columns/float.cjs +58 -0
- package/mssql-core/columns/float.cjs.map +1 -0
- package/mssql-core/columns/float.d.cts +28 -0
- package/mssql-core/columns/float.d.ts +28 -0
- package/mssql-core/columns/float.js +32 -0
- package/mssql-core/columns/float.js.map +1 -0
- package/mssql-core/columns/index.cjs +63 -0
- package/mssql-core/columns/index.cjs.map +1 -0
- package/mssql-core/columns/index.d.cts +21 -0
- package/mssql-core/columns/index.d.ts +21 -0
- package/mssql-core/columns/index.js +22 -0
- package/mssql-core/columns/index.js.map +1 -0
- package/mssql-core/columns/int.cjs +53 -0
- package/mssql-core/columns/int.cjs.map +1 -0
- package/mssql-core/columns/int.d.cts +23 -0
- package/mssql-core/columns/int.d.ts +23 -0
- package/mssql-core/columns/int.js +27 -0
- package/mssql-core/columns/int.js.map +1 -0
- package/mssql-core/columns/numeric.cjs +68 -0
- package/mssql-core/columns/numeric.cjs.map +1 -0
- package/mssql-core/columns/numeric.d.cts +27 -0
- package/mssql-core/columns/numeric.d.ts +27 -0
- package/mssql-core/columns/numeric.js +42 -0
- package/mssql-core/columns/numeric.js.map +1 -0
- package/mssql-core/columns/real.cjs +53 -0
- package/mssql-core/columns/real.cjs.map +1 -0
- package/mssql-core/columns/real.d.cts +23 -0
- package/mssql-core/columns/real.d.ts +23 -0
- package/mssql-core/columns/real.js +27 -0
- package/mssql-core/columns/real.js.map +1 -0
- package/mssql-core/columns/smallint.cjs +62 -0
- package/mssql-core/columns/smallint.cjs.map +1 -0
- package/mssql-core/columns/smallint.d.cts +24 -0
- package/mssql-core/columns/smallint.d.ts +24 -0
- package/mssql-core/columns/smallint.js +36 -0
- package/mssql-core/columns/smallint.js.map +1 -0
- package/mssql-core/columns/text.cjs +68 -0
- package/mssql-core/columns/text.cjs.map +1 -0
- package/mssql-core/columns/text.d.cts +45 -0
- package/mssql-core/columns/text.d.ts +45 -0
- package/mssql-core/columns/text.js +41 -0
- package/mssql-core/columns/text.js.map +1 -0
- package/mssql-core/columns/time.cjs +90 -0
- package/mssql-core/columns/time.cjs.map +1 -0
- package/mssql-core/columns/time.d.cts +49 -0
- package/mssql-core/columns/time.d.ts +49 -0
- package/mssql-core/columns/time.js +62 -0
- package/mssql-core/columns/time.js.map +1 -0
- package/mssql-core/columns/tinyint.cjs +62 -0
- package/mssql-core/columns/tinyint.cjs.map +1 -0
- package/mssql-core/columns/tinyint.d.cts +24 -0
- package/mssql-core/columns/tinyint.d.ts +24 -0
- package/mssql-core/columns/tinyint.js +36 -0
- package/mssql-core/columns/tinyint.js.map +1 -0
- package/mssql-core/columns/varbinary.cjs +61 -0
- package/mssql-core/columns/varbinary.cjs.map +1 -0
- package/mssql-core/columns/varbinary.d.cts +27 -0
- package/mssql-core/columns/varbinary.d.ts +27 -0
- package/mssql-core/columns/varbinary.js +35 -0
- package/mssql-core/columns/varbinary.js.map +1 -0
- package/mssql-core/columns/varchar.cjs +117 -0
- package/mssql-core/columns/varchar.cjs.map +1 -0
- package/mssql-core/columns/varchar.d.cts +66 -0
- package/mssql-core/columns/varchar.d.ts +66 -0
- package/mssql-core/columns/varchar.js +88 -0
- package/mssql-core/columns/varchar.js.map +1 -0
- package/mssql-core/db.cjs +254 -0
- package/mssql-core/db.cjs.map +1 -0
- package/mssql-core/db.d.cts +228 -0
- package/mssql-core/db.d.ts +228 -0
- package/mssql-core/db.js +235 -0
- package/mssql-core/db.js.map +1 -0
- package/mssql-core/dialect.cjs +611 -0
- package/mssql-core/dialect.cjs.map +1 -0
- package/mssql-core/dialect.d.cts +58 -0
- package/mssql-core/dialect.d.ts +58 -0
- package/mssql-core/dialect.js +593 -0
- package/mssql-core/dialect.js.map +1 -0
- package/mssql-core/expressions.cjs +49 -0
- package/mssql-core/expressions.cjs.map +1 -0
- package/mssql-core/expressions.d.cts +8 -0
- package/mssql-core/expressions.d.ts +8 -0
- package/mssql-core/expressions.js +22 -0
- package/mssql-core/expressions.js.map +1 -0
- package/mssql-core/foreign-keys.cjs +91 -0
- package/mssql-core/foreign-keys.cjs.map +1 -0
- package/mssql-core/foreign-keys.d.cts +51 -0
- package/mssql-core/foreign-keys.d.ts +51 -0
- package/mssql-core/foreign-keys.js +65 -0
- package/mssql-core/foreign-keys.js.map +1 -0
- package/mssql-core/index.cjs +55 -0
- package/mssql-core/index.cjs.map +1 -0
- package/mssql-core/index.d.cts +17 -0
- package/mssql-core/index.d.ts +17 -0
- package/mssql-core/index.js +18 -0
- package/mssql-core/index.js.map +1 -0
- package/mssql-core/indexes.cjs +80 -0
- package/mssql-core/indexes.cjs.map +1 -0
- package/mssql-core/indexes.d.cts +49 -0
- package/mssql-core/indexes.d.ts +49 -0
- package/mssql-core/indexes.js +52 -0
- package/mssql-core/indexes.js.map +1 -0
- package/mssql-core/primary-keys.cjs +64 -0
- package/mssql-core/primary-keys.cjs.map +1 -0
- package/mssql-core/primary-keys.d.cts +23 -0
- package/mssql-core/primary-keys.d.ts +23 -0
- package/mssql-core/primary-keys.js +38 -0
- package/mssql-core/primary-keys.js.map +1 -0
- package/mssql-core/query-builders/delete.cjs +107 -0
- package/mssql-core/query-builders/delete.cjs.map +1 -0
- package/mssql-core/query-builders/delete.d.cts +80 -0
- package/mssql-core/query-builders/delete.d.ts +80 -0
- package/mssql-core/query-builders/delete.js +83 -0
- package/mssql-core/query-builders/delete.js.map +1 -0
- package/mssql-core/query-builders/index.cjs +33 -0
- package/mssql-core/query-builders/index.cjs.map +1 -0
- package/mssql-core/query-builders/index.d.cts +6 -0
- package/mssql-core/query-builders/index.d.ts +6 -0
- package/mssql-core/query-builders/index.js +7 -0
- package/mssql-core/query-builders/index.js.map +1 -0
- package/mssql-core/query-builders/insert.cjs +105 -0
- package/mssql-core/query-builders/insert.cjs.map +1 -0
- package/mssql-core/query-builders/insert.d.cts +60 -0
- package/mssql-core/query-builders/insert.d.ts +60 -0
- package/mssql-core/query-builders/insert.js +80 -0
- package/mssql-core/query-builders/insert.js.map +1 -0
- package/mssql-core/query-builders/query-builder.cjs +95 -0
- package/mssql-core/query-builders/query-builder.cjs.map +1 -0
- package/mssql-core/query-builders/query-builder.d.cts +32 -0
- package/mssql-core/query-builders/query-builder.d.ts +32 -0
- package/mssql-core/query-builders/query-builder.js +71 -0
- package/mssql-core/query-builders/query-builder.js.map +1 -0
- package/mssql-core/query-builders/query.cjs +126 -0
- package/mssql-core/query-builders/query.cjs.map +1 -0
- package/mssql-core/query-builders/query.d.cts +42 -0
- package/mssql-core/query-builders/query.d.ts +42 -0
- package/mssql-core/query-builders/query.js +103 -0
- package/mssql-core/query-builders/query.js.map +1 -0
- package/mssql-core/query-builders/select.cjs +679 -0
- package/mssql-core/query-builders/select.cjs.map +1 -0
- package/mssql-core/query-builders/select.d.cts +549 -0
- package/mssql-core/query-builders/select.d.ts +549 -0
- package/mssql-core/query-builders/select.js +649 -0
- package/mssql-core/query-builders/select.js.map +1 -0
- package/mssql-core/query-builders/select.types.cjs +17 -0
- package/mssql-core/query-builders/select.types.cjs.map +1 -0
- package/mssql-core/query-builders/select.types.d.cts +142 -0
- package/mssql-core/query-builders/select.types.d.ts +142 -0
- package/mssql-core/query-builders/select.types.js +1 -0
- package/mssql-core/query-builders/select.types.js.map +1 -0
- package/mssql-core/query-builders/update.cjs +138 -0
- package/mssql-core/query-builders/update.cjs.map +1 -0
- package/mssql-core/query-builders/update.d.cts +109 -0
- package/mssql-core/query-builders/update.d.ts +109 -0
- package/mssql-core/query-builders/update.js +113 -0
- package/mssql-core/query-builders/update.js.map +1 -0
- package/mssql-core/schema.cjs +51 -0
- package/mssql-core/schema.cjs.map +1 -0
- package/mssql-core/schema.d.cts +22 -0
- package/mssql-core/schema.d.ts +22 -0
- package/mssql-core/schema.js +25 -0
- package/mssql-core/schema.js.map +1 -0
- package/mssql-core/session.cjs +74 -0
- package/mssql-core/session.cjs.map +1 -0
- package/mssql-core/session.d.cts +63 -0
- package/mssql-core/session.d.ts +63 -0
- package/mssql-core/session.js +48 -0
- package/mssql-core/session.js.map +1 -0
- package/mssql-core/subquery.cjs +17 -0
- package/mssql-core/subquery.cjs.map +1 -0
- package/mssql-core/subquery.d.cts +18 -0
- package/mssql-core/subquery.d.ts +18 -0
- package/mssql-core/subquery.js +1 -0
- package/mssql-core/subquery.js.map +1 -0
- package/mssql-core/table.cjs +81 -0
- package/mssql-core/table.cjs.map +1 -0
- package/mssql-core/table.d.cts +43 -0
- package/mssql-core/table.d.ts +43 -0
- package/mssql-core/table.js +53 -0
- package/mssql-core/table.js.map +1 -0
- package/mssql-core/unique-constraint.cjs +76 -0
- package/mssql-core/unique-constraint.cjs.map +1 -0
- package/mssql-core/unique-constraint.d.cts +23 -0
- package/mssql-core/unique-constraint.d.ts +23 -0
- package/mssql-core/unique-constraint.js +49 -0
- package/mssql-core/unique-constraint.js.map +1 -0
- package/mssql-core/utils.cjs +85 -0
- package/mssql-core/utils.cjs.map +1 -0
- package/mssql-core/utils.d.cts +31 -0
- package/mssql-core/utils.d.ts +31 -0
- package/mssql-core/utils.js +60 -0
- package/mssql-core/utils.js.map +1 -0
- package/mssql-core/view-base.cjs +33 -0
- package/mssql-core/view-base.cjs.map +1 -0
- package/mssql-core/view-base.d.cts +9 -0
- package/mssql-core/view-base.d.ts +9 -0
- package/mssql-core/view-base.js +9 -0
- package/mssql-core/view-base.js.map +1 -0
- package/mssql-core/view-common.cjs +29 -0
- package/mssql-core/view-common.cjs.map +1 -0
- package/mssql-core/view-common.d.cts +1 -0
- package/mssql-core/view-common.d.ts +1 -0
- package/mssql-core/view-common.js +5 -0
- package/mssql-core/view-common.js.map +1 -0
- package/mssql-core/view.cjs +154 -0
- package/mssql-core/view.cjs.map +1 -0
- package/mssql-core/view.d.cts +64 -0
- package/mssql-core/view.d.ts +64 -0
- package/mssql-core/view.js +125 -0
- package/mssql-core/view.js.map +1 -0
- package/node-mssql/driver.cjs +88 -0
- package/node-mssql/driver.cjs.map +1 -0
- package/node-mssql/driver.d.cts +34 -0
- package/node-mssql/driver.d.ts +34 -0
- package/node-mssql/driver.js +65 -0
- package/node-mssql/driver.js.map +1 -0
- package/node-mssql/index.cjs +25 -0
- package/node-mssql/index.cjs.map +1 -0
- package/node-mssql/index.d.cts +2 -0
- package/node-mssql/index.d.ts +2 -0
- package/node-mssql/index.js +3 -0
- package/node-mssql/index.js.map +1 -0
- package/node-mssql/migrator.cjs +33 -0
- package/node-mssql/migrator.cjs.map +1 -0
- package/node-mssql/migrator.d.cts +3 -0
- package/node-mssql/migrator.d.ts +3 -0
- package/node-mssql/migrator.js +9 -0
- package/node-mssql/migrator.js.map +1 -0
- package/node-mssql/session.cjs +243 -0
- package/node-mssql/session.cjs.map +1 -0
- package/node-mssql/session.d.cts +47 -0
- package/node-mssql/session.d.ts +47 -0
- package/node-mssql/session.js +211 -0
- package/node-mssql/session.js.map +1 -0
- package/package.json +653 -1
- package/pg-core/schema.cjs +2 -2
- package/pg-core/schema.cjs.map +1 -1
- package/pg-core/schema.d.cts +4 -1
- package/pg-core/schema.d.ts +4 -1
- package/pg-core/schema.js +2 -2
- package/pg-core/schema.js.map +1 -1
- package/relations.cjs +48 -0
- package/relations.cjs.map +1 -1
- package/relations.d.cts +1 -0
- package/relations.d.ts +1 -0
- package/relations.js +47 -0
- package/relations.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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/mssql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MsSqlDialect } from '~/mssql-core/dialect.ts';\nimport type {\n\tAnyQueryResultHKT,\n\tMsSqlSession,\n\tPreparedQueryConfig,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tQueryResultHKT,\n\tQueryResultKind,\n} from '~/mssql-core/session.ts';\nimport type { MsSqlTable } from '~/mssql-core/table.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { ExtractObjectValues } from '~/relations.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport type { MsSqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlatUpdate, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MsSqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: MsSqlTable;\n\toutput?: {\n\t\tinserted?: SelectedFieldsOrdered;\n\t\tdeleted?: SelectedFieldsOrdered;\n\t};\n}\n\nexport type MsSqlUpdateSetSource<TTable extends MsSqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type FormSelection<T, TTable extends MsSqlTable> = {\n\t[K in keyof T as T[K] extends undefined ? never : K]: T[K] extends true ? TTable['_']['columns'] : T[K];\n};\n\nexport type MsSqlUpdateReturning<\n\tT extends AnyMsSqlUpdateBase,\n\tTDynamic extends boolean,\n\tSelectedFields extends SelectedFieldsFlatUpdate,\n> = MsSqlUpdateWithout<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tSelectResultFields<FormSelection<SelectedFields, T['_']['table']>>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'output'\n>;\n\nexport type MsSqlUpdateReturningAll<T extends AnyMsSqlUpdateBase, TDynamic extends boolean> = MsSqlUpdateWithout<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'output'\n>;\n\nexport class MsSqlUpdateBuilder<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MsSqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {}\n\n\tset(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MsSqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect);\n\t}\n}\n\nexport type MsSqlUpdateWithout<\n\tT extends AnyMsSqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['output'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['output'] extends undefined ? QueryResultKind<T['_']['queryResult'], any> : T['_']['output'][];\n\t\titerator: never;\n\t}\n>;\n\nexport type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['output']\n>;\n\nexport type MsSqlUpdate<\n\tTTable extends MsSqlTable = MsSqlTable,\n\tTQueryResult extends QueryResultHKT = AnyQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTOutput extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, TOutput, true, never>;\n\nexport type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any, any>;\n\nexport interface MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTOutput extends Record<string, unknown> | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly output: TOutput;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTOutput extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>\n\timplements SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MsSqlUpdate';\n\n\tprivate config: MsSqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\toutput(): MsSqlUpdateReturningAll<this, TDynamic>;\n\toutput<TSelectedFields extends SelectedFieldsFlatUpdate>(\n\t\tfields: TSelectedFields,\n\t): MsSqlUpdateReturning<this, TDynamic, TSelectedFields>;\n\toutput(\n\t\tfields?: SelectedFieldsFlatUpdate,\n\t): MsSqlUpdateWithout<AnyMsSqlUpdateBase, TDynamic, 'output'> {\n\t\tconst columns = this.config.table[Table.Symbol.Columns];\n\n\t\tif (fields) {\n\t\t\tconst output: Partial<typeof this.config.output> = {};\n\n\t\t\tif (fields.inserted) {\n\t\t\t\toutput.inserted = typeof fields.inserted === 'boolean'\n\t\t\t\t\t? orderSelectedFields<MsSqlColumn>(columns, ['inserted'])\n\t\t\t\t\t: orderSelectedFields<MsSqlColumn>(fields.inserted, ['inserted']);\n\t\t\t}\n\n\t\t\tif (fields.deleted) {\n\t\t\t\toutput.deleted = typeof fields.deleted === 'boolean'\n\t\t\t\t\t? orderSelectedFields<MsSqlColumn>(columns, ['deleted'])\n\t\t\t\t\t: orderSelectedFields<MsSqlColumn>(fields.deleted, ['deleted']);\n\t\t\t}\n\n\t\t\tthis.config.output = output;\n\t\t} else {\n\t\t\tthis.config.output = {\n\t\t\t\tinserted: orderSelectedFields<MsSqlColumn>(columns),\n\t\t\t};\n\t\t}\n\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MsSqlUpdatePrepare<this> {\n\t\tconst output = [...(this.config.output?.inserted ?? []), ...(this.config.output?.deleted ?? [])];\n\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\toutput.length ? output : undefined,\n\t\t) as MsSqlUpdatePrepare<this>;\n\t}\n\n\toverride execute(\n\t\tplaceholderValues?: Record<string, unknown>,\n\t): Promise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]> {\n\t\treturn this.prepare().execute(placeholderValues) as any;\n\t}\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MsSqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAa3B,2BAA6B;AAG7B,mBAAsB;AACtB,mBAAkE;AAgE3D,MAAM,mBAIX;AAAA,EAOD,YACS,OACA,SACA,SACP;AAHO;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,wBAAU,IAAY;AAAA,EAYvC,IAAI,QAAgG;AACnG,WAAO,IAAI,gBAAgB,KAAK,WAAO,2BAAa,KAAK,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,OAAO;AAAA,EACpG;AACD;AA4DO,MAAM,wBAWH,kCAEV;AAAA,EAKC,YACC,OACA,KACQ,SACA,SACP;AACD,UAAM;AAHE;AACA;AAGR,SAAK,SAAS,EAAE,KAAK,MAAM;AAAA,EAC5B;AAAA,EAZA,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6CR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,OACC,QAC6D;AAC7D,UAAM,UAAU,KAAK,OAAO,MAAM,mBAAM,OAAO,OAAO;AAEtD,QAAI,QAAQ;AACX,YAAM,SAA6C,CAAC;AAEpD,UAAI,OAAO,UAAU;AACpB,eAAO,WAAW,OAAO,OAAO,aAAa,gBAC1C,kCAAiC,SAAS,CAAC,UAAU,CAAC,QACtD,kCAAiC,OAAO,UAAU,CAAC,UAAU,CAAC;AAAA,MAClE;AAEA,UAAI,OAAO,SAAS;AACnB,eAAO,UAAU,OAAO,OAAO,YAAY,gBACxC,kCAAiC,SAAS,CAAC,SAAS,CAAC,QACrD,kCAAiC,OAAO,SAAS,CAAC,SAAS,CAAC;AAAA,MAChE;AAEA,WAAK,OAAO,SAAS;AAAA,IACtB,OAAO;AACN,WAAK,OAAO,SAAS;AAAA,QACpB,cAAU,kCAAiC,OAAO;AAAA,MACnD;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,UAAM,SAAS,CAAC,GAAI,KAAK,OAAO,QAAQ,YAAY,CAAC,GAAI,GAAI,KAAK,OAAO,QAAQ,WAAW,CAAC,CAAE;AAE/F,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,OAAO,SAAS,SAAS;AAAA,IAC1B;AAAA,EACD;AAAA,EAES,QACR,mBACsF;AACtF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { GetColumnData } from "../../column.cjs";
|
|
2
|
+
import { entityKind } from "../../entity.cjs";
|
|
3
|
+
import type { MsSqlDialect } from "../dialect.cjs";
|
|
4
|
+
import type { AnyQueryResultHKT, MsSqlSession, PreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind, QueryResultHKT, QueryResultKind } from "../session.cjs";
|
|
5
|
+
import type { MsSqlTable } from "../table.cjs";
|
|
6
|
+
import type { SelectResultFields } from "../../query-builders/select.types.cjs";
|
|
7
|
+
import { QueryPromise } from "../../query-promise.cjs";
|
|
8
|
+
import type { ExtractObjectValues } from "../../relations.cjs";
|
|
9
|
+
import type { Query, SQL, SQLWrapper } from "../../sql/sql.cjs";
|
|
10
|
+
import { type UpdateSet } from "../../utils.cjs";
|
|
11
|
+
import type { SelectedFieldsFlatUpdate, SelectedFieldsOrdered } from "./select.types.cjs";
|
|
12
|
+
export interface MsSqlUpdateConfig {
|
|
13
|
+
where?: SQL | undefined;
|
|
14
|
+
set: UpdateSet;
|
|
15
|
+
table: MsSqlTable;
|
|
16
|
+
output?: {
|
|
17
|
+
inserted?: SelectedFieldsOrdered;
|
|
18
|
+
deleted?: SelectedFieldsOrdered;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export type MsSqlUpdateSetSource<TTable extends MsSqlTable> = {
|
|
22
|
+
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
|
|
23
|
+
} & {};
|
|
24
|
+
export type NonUndefinedKeysOnly<T> = ExtractObjectValues<{
|
|
25
|
+
[K in keyof T as T[K] extends undefined ? never : K]: K;
|
|
26
|
+
}> & keyof T;
|
|
27
|
+
export type FormSelection<T, TTable extends MsSqlTable> = {
|
|
28
|
+
[K in keyof T as T[K] extends undefined ? never : K]: T[K] extends true ? TTable['_']['columns'] : T[K];
|
|
29
|
+
};
|
|
30
|
+
export type MsSqlUpdateReturning<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, SelectedFields extends SelectedFieldsFlatUpdate> = MsSqlUpdateWithout<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], SelectResultFields<FormSelection<SelectedFields, T['_']['table']>>, TDynamic, T['_']['excludedMethods']>, TDynamic, 'output'>;
|
|
31
|
+
export type MsSqlUpdateReturningAll<T extends AnyMsSqlUpdateBase, TDynamic extends boolean> = MsSqlUpdateWithout<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['table']['$inferSelect'], TDynamic, T['_']['excludedMethods']>, TDynamic, 'output'>;
|
|
32
|
+
export declare class MsSqlUpdateBuilder<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
33
|
+
private table;
|
|
34
|
+
private session;
|
|
35
|
+
private dialect;
|
|
36
|
+
static readonly [entityKind]: string;
|
|
37
|
+
readonly _: {
|
|
38
|
+
readonly table: TTable;
|
|
39
|
+
};
|
|
40
|
+
constructor(table: TTable, session: MsSqlSession, dialect: MsSqlDialect);
|
|
41
|
+
set(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT>;
|
|
42
|
+
}
|
|
43
|
+
export type MsSqlUpdateWithout<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, K extends keyof T & string> = TDynamic extends true ? T : Omit<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['output'], TDynamic, T['_']['excludedMethods'] | K>, T['_']['excludedMethods'] | K>;
|
|
44
|
+
export type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<T['_']['preparedQueryHKT'], PreparedQueryConfig & {
|
|
45
|
+
execute: T['_']['output'] extends undefined ? QueryResultKind<T['_']['queryResult'], any> : T['_']['output'][];
|
|
46
|
+
iterator: never;
|
|
47
|
+
}>;
|
|
48
|
+
export type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['output']>;
|
|
49
|
+
export type MsSqlUpdate<TTable extends MsSqlTable = MsSqlTable, TQueryResult extends QueryResultHKT = AnyQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, TOutput, true, never>;
|
|
50
|
+
export type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any, any>;
|
|
51
|
+
export interface MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = undefined, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>, SQLWrapper {
|
|
52
|
+
readonly _: {
|
|
53
|
+
readonly table: TTable;
|
|
54
|
+
readonly queryResult: TQueryResult;
|
|
55
|
+
readonly preparedQueryHKT: TPreparedQueryHKT;
|
|
56
|
+
readonly output: TOutput;
|
|
57
|
+
readonly dynamic: TDynamic;
|
|
58
|
+
readonly excludedMethods: TExcludedMethods;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export declare class MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = undefined, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]> implements SQLWrapper {
|
|
62
|
+
private session;
|
|
63
|
+
private dialect;
|
|
64
|
+
static readonly [entityKind]: string;
|
|
65
|
+
private config;
|
|
66
|
+
constructor(table: TTable, set: UpdateSet, session: MsSqlSession, dialect: MsSqlDialect);
|
|
67
|
+
/**
|
|
68
|
+
* Adds a 'where' clause to the query.
|
|
69
|
+
*
|
|
70
|
+
* Calling this method will update only those rows that fulfill a specified condition.
|
|
71
|
+
*
|
|
72
|
+
* See docs: {@link https://orm.drizzle.team/docs/update}
|
|
73
|
+
*
|
|
74
|
+
* @param where the 'where' clause.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* You can use conditional operators and `sql function` to filter the rows to be updated.
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* // Update all cars with green color
|
|
81
|
+
* db.update(cars).set({ color: 'red' })
|
|
82
|
+
* .where(eq(cars.color, 'green'));
|
|
83
|
+
* // or
|
|
84
|
+
* db.update(cars).set({ color: 'red' })
|
|
85
|
+
* .where(sql`${cars.color} = 'green'`)
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* You can logically combine conditional operators with `and()` and `or()` operators:
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* // Update all BMW cars with a green color
|
|
92
|
+
* db.update(cars).set({ color: 'red' })
|
|
93
|
+
* .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
|
|
94
|
+
*
|
|
95
|
+
* // Update all cars with the green or blue color
|
|
96
|
+
* db.update(cars).set({ color: 'red' })
|
|
97
|
+
* .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
where(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'>;
|
|
101
|
+
output(): MsSqlUpdateReturningAll<this, TDynamic>;
|
|
102
|
+
output<TSelectedFields extends SelectedFieldsFlatUpdate>(fields: TSelectedFields): MsSqlUpdateReturning<this, TDynamic, TSelectedFields>;
|
|
103
|
+
toSQL(): Query;
|
|
104
|
+
prepare(): MsSqlUpdatePrepare<this>;
|
|
105
|
+
execute(placeholderValues?: Record<string, unknown>): Promise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>;
|
|
106
|
+
private createIterator;
|
|
107
|
+
iterator: ReturnType<this["prepare"]>["iterator"];
|
|
108
|
+
$dynamic(): MsSqlUpdateDynamic<this>;
|
|
109
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { GetColumnData } from "../../column.js";
|
|
2
|
+
import { entityKind } from "../../entity.js";
|
|
3
|
+
import type { MsSqlDialect } from "../dialect.js";
|
|
4
|
+
import type { AnyQueryResultHKT, MsSqlSession, PreparedQueryConfig, PreparedQueryHKTBase, PreparedQueryKind, QueryResultHKT, QueryResultKind } from "../session.js";
|
|
5
|
+
import type { MsSqlTable } from "../table.js";
|
|
6
|
+
import type { SelectResultFields } from "../../query-builders/select.types.js";
|
|
7
|
+
import { QueryPromise } from "../../query-promise.js";
|
|
8
|
+
import type { ExtractObjectValues } from "../../relations.js";
|
|
9
|
+
import type { Query, SQL, SQLWrapper } from "../../sql/sql.js";
|
|
10
|
+
import { type UpdateSet } from "../../utils.js";
|
|
11
|
+
import type { SelectedFieldsFlatUpdate, SelectedFieldsOrdered } from "./select.types.js";
|
|
12
|
+
export interface MsSqlUpdateConfig {
|
|
13
|
+
where?: SQL | undefined;
|
|
14
|
+
set: UpdateSet;
|
|
15
|
+
table: MsSqlTable;
|
|
16
|
+
output?: {
|
|
17
|
+
inserted?: SelectedFieldsOrdered;
|
|
18
|
+
deleted?: SelectedFieldsOrdered;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export type MsSqlUpdateSetSource<TTable extends MsSqlTable> = {
|
|
22
|
+
[Key in keyof TTable['$inferInsert']]?: GetColumnData<TTable['_']['columns'][Key], 'query'> | SQL;
|
|
23
|
+
} & {};
|
|
24
|
+
export type NonUndefinedKeysOnly<T> = ExtractObjectValues<{
|
|
25
|
+
[K in keyof T as T[K] extends undefined ? never : K]: K;
|
|
26
|
+
}> & keyof T;
|
|
27
|
+
export type FormSelection<T, TTable extends MsSqlTable> = {
|
|
28
|
+
[K in keyof T as T[K] extends undefined ? never : K]: T[K] extends true ? TTable['_']['columns'] : T[K];
|
|
29
|
+
};
|
|
30
|
+
export type MsSqlUpdateReturning<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, SelectedFields extends SelectedFieldsFlatUpdate> = MsSqlUpdateWithout<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], SelectResultFields<FormSelection<SelectedFields, T['_']['table']>>, TDynamic, T['_']['excludedMethods']>, TDynamic, 'output'>;
|
|
31
|
+
export type MsSqlUpdateReturningAll<T extends AnyMsSqlUpdateBase, TDynamic extends boolean> = MsSqlUpdateWithout<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['table']['$inferSelect'], TDynamic, T['_']['excludedMethods']>, TDynamic, 'output'>;
|
|
32
|
+
export declare class MsSqlUpdateBuilder<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase> {
|
|
33
|
+
private table;
|
|
34
|
+
private session;
|
|
35
|
+
private dialect;
|
|
36
|
+
static readonly [entityKind]: string;
|
|
37
|
+
readonly _: {
|
|
38
|
+
readonly table: TTable;
|
|
39
|
+
};
|
|
40
|
+
constructor(table: TTable, session: MsSqlSession, dialect: MsSqlDialect);
|
|
41
|
+
set(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT>;
|
|
42
|
+
}
|
|
43
|
+
export type MsSqlUpdateWithout<T extends AnyMsSqlUpdateBase, TDynamic extends boolean, K extends keyof T & string> = TDynamic extends true ? T : Omit<MsSqlUpdateBase<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['output'], TDynamic, T['_']['excludedMethods'] | K>, T['_']['excludedMethods'] | K>;
|
|
44
|
+
export type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<T['_']['preparedQueryHKT'], PreparedQueryConfig & {
|
|
45
|
+
execute: T['_']['output'] extends undefined ? QueryResultKind<T['_']['queryResult'], any> : T['_']['output'][];
|
|
46
|
+
iterator: never;
|
|
47
|
+
}>;
|
|
48
|
+
export type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<T['_']['table'], T['_']['queryResult'], T['_']['preparedQueryHKT'], T['_']['output']>;
|
|
49
|
+
export type MsSqlUpdate<TTable extends MsSqlTable = MsSqlTable, TQueryResult extends QueryResultHKT = AnyQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = Record<string, unknown> | undefined> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, TOutput, true, never>;
|
|
50
|
+
export type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any, any>;
|
|
51
|
+
export interface MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = undefined, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>, SQLWrapper {
|
|
52
|
+
readonly _: {
|
|
53
|
+
readonly table: TTable;
|
|
54
|
+
readonly queryResult: TQueryResult;
|
|
55
|
+
readonly preparedQueryHKT: TPreparedQueryHKT;
|
|
56
|
+
readonly output: TOutput;
|
|
57
|
+
readonly dynamic: TDynamic;
|
|
58
|
+
readonly excludedMethods: TExcludedMethods;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export declare class MsSqlUpdateBase<TTable extends MsSqlTable, TQueryResult extends QueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TOutput extends Record<string, unknown> | undefined = undefined, TDynamic extends boolean = false, TExcludedMethods extends string = never> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]> implements SQLWrapper {
|
|
62
|
+
private session;
|
|
63
|
+
private dialect;
|
|
64
|
+
static readonly [entityKind]: string;
|
|
65
|
+
private config;
|
|
66
|
+
constructor(table: TTable, set: UpdateSet, session: MsSqlSession, dialect: MsSqlDialect);
|
|
67
|
+
/**
|
|
68
|
+
* Adds a 'where' clause to the query.
|
|
69
|
+
*
|
|
70
|
+
* Calling this method will update only those rows that fulfill a specified condition.
|
|
71
|
+
*
|
|
72
|
+
* See docs: {@link https://orm.drizzle.team/docs/update}
|
|
73
|
+
*
|
|
74
|
+
* @param where the 'where' clause.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* You can use conditional operators and `sql function` to filter the rows to be updated.
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* // Update all cars with green color
|
|
81
|
+
* db.update(cars).set({ color: 'red' })
|
|
82
|
+
* .where(eq(cars.color, 'green'));
|
|
83
|
+
* // or
|
|
84
|
+
* db.update(cars).set({ color: 'red' })
|
|
85
|
+
* .where(sql`${cars.color} = 'green'`)
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* You can logically combine conditional operators with `and()` and `or()` operators:
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* // Update all BMW cars with a green color
|
|
92
|
+
* db.update(cars).set({ color: 'red' })
|
|
93
|
+
* .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
|
|
94
|
+
*
|
|
95
|
+
* // Update all cars with the green or blue color
|
|
96
|
+
* db.update(cars).set({ color: 'red' })
|
|
97
|
+
* .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
where(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'>;
|
|
101
|
+
output(): MsSqlUpdateReturningAll<this, TDynamic>;
|
|
102
|
+
output<TSelectedFields extends SelectedFieldsFlatUpdate>(fields: TSelectedFields): MsSqlUpdateReturning<this, TDynamic, TSelectedFields>;
|
|
103
|
+
toSQL(): Query;
|
|
104
|
+
prepare(): MsSqlUpdatePrepare<this>;
|
|
105
|
+
execute(placeholderValues?: Record<string, unknown>): Promise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>;
|
|
106
|
+
private createIterator;
|
|
107
|
+
iterator: ReturnType<this["prepare"]>["iterator"];
|
|
108
|
+
$dynamic(): MsSqlUpdateDynamic<this>;
|
|
109
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { entityKind } from "../../entity.js";
|
|
2
|
+
import { QueryPromise } from "../../query-promise.js";
|
|
3
|
+
import { Table } from "../../table.js";
|
|
4
|
+
import { mapUpdateSet, orderSelectedFields } from "../../utils.js";
|
|
5
|
+
class MsSqlUpdateBuilder {
|
|
6
|
+
constructor(table, session, dialect) {
|
|
7
|
+
this.table = table;
|
|
8
|
+
this.session = session;
|
|
9
|
+
this.dialect = dialect;
|
|
10
|
+
}
|
|
11
|
+
static [entityKind] = "MsSqlUpdateBuilder";
|
|
12
|
+
set(values) {
|
|
13
|
+
return new MsSqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
class MsSqlUpdateBase extends QueryPromise {
|
|
17
|
+
constructor(table, set, session, dialect) {
|
|
18
|
+
super();
|
|
19
|
+
this.session = session;
|
|
20
|
+
this.dialect = dialect;
|
|
21
|
+
this.config = { set, table };
|
|
22
|
+
}
|
|
23
|
+
static [entityKind] = "MsSqlUpdate";
|
|
24
|
+
config;
|
|
25
|
+
/**
|
|
26
|
+
* Adds a 'where' clause to the query.
|
|
27
|
+
*
|
|
28
|
+
* Calling this method will update only those rows that fulfill a specified condition.
|
|
29
|
+
*
|
|
30
|
+
* See docs: {@link https://orm.drizzle.team/docs/update}
|
|
31
|
+
*
|
|
32
|
+
* @param where the 'where' clause.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* You can use conditional operators and `sql function` to filter the rows to be updated.
|
|
36
|
+
*
|
|
37
|
+
* ```ts
|
|
38
|
+
* // Update all cars with green color
|
|
39
|
+
* db.update(cars).set({ color: 'red' })
|
|
40
|
+
* .where(eq(cars.color, 'green'));
|
|
41
|
+
* // or
|
|
42
|
+
* db.update(cars).set({ color: 'red' })
|
|
43
|
+
* .where(sql`${cars.color} = 'green'`)
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* You can logically combine conditional operators with `and()` and `or()` operators:
|
|
47
|
+
*
|
|
48
|
+
* ```ts
|
|
49
|
+
* // Update all BMW cars with a green color
|
|
50
|
+
* db.update(cars).set({ color: 'red' })
|
|
51
|
+
* .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
|
|
52
|
+
*
|
|
53
|
+
* // Update all cars with the green or blue color
|
|
54
|
+
* db.update(cars).set({ color: 'red' })
|
|
55
|
+
* .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
where(where) {
|
|
59
|
+
this.config.where = where;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
output(fields) {
|
|
63
|
+
const columns = this.config.table[Table.Symbol.Columns];
|
|
64
|
+
if (fields) {
|
|
65
|
+
const output = {};
|
|
66
|
+
if (fields.inserted) {
|
|
67
|
+
output.inserted = typeof fields.inserted === "boolean" ? orderSelectedFields(columns, ["inserted"]) : orderSelectedFields(fields.inserted, ["inserted"]);
|
|
68
|
+
}
|
|
69
|
+
if (fields.deleted) {
|
|
70
|
+
output.deleted = typeof fields.deleted === "boolean" ? orderSelectedFields(columns, ["deleted"]) : orderSelectedFields(fields.deleted, ["deleted"]);
|
|
71
|
+
}
|
|
72
|
+
this.config.output = output;
|
|
73
|
+
} else {
|
|
74
|
+
this.config.output = {
|
|
75
|
+
inserted: orderSelectedFields(columns)
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/** @internal */
|
|
81
|
+
getSQL() {
|
|
82
|
+
return this.dialect.buildUpdateQuery(this.config);
|
|
83
|
+
}
|
|
84
|
+
toSQL() {
|
|
85
|
+
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
|
86
|
+
return rest;
|
|
87
|
+
}
|
|
88
|
+
prepare() {
|
|
89
|
+
const output = [...(this.config.output?.inserted ?? []), ...(this.config.output?.deleted ?? [])];
|
|
90
|
+
return this.session.prepareQuery(
|
|
91
|
+
this.dialect.sqlToQuery(this.getSQL()),
|
|
92
|
+
output.length ? output : void 0
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
execute(placeholderValues) {
|
|
96
|
+
return this.prepare().execute(placeholderValues);
|
|
97
|
+
}
|
|
98
|
+
createIterator = () => {
|
|
99
|
+
const self = this;
|
|
100
|
+
return async function* (placeholderValues) {
|
|
101
|
+
yield* self.prepare().iterator(placeholderValues);
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
iterator = this.createIterator();
|
|
105
|
+
$dynamic() {
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export {
|
|
110
|
+
MsSqlUpdateBase,
|
|
111
|
+
MsSqlUpdateBuilder
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/mssql-core/query-builders/update.ts"],"sourcesContent":["import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { MsSqlDialect } from '~/mssql-core/dialect.ts';\nimport type {\n\tAnyQueryResultHKT,\n\tMsSqlSession,\n\tPreparedQueryConfig,\n\tPreparedQueryHKTBase,\n\tPreparedQueryKind,\n\tQueryResultHKT,\n\tQueryResultKind,\n} from '~/mssql-core/session.ts';\nimport type { MsSqlTable } from '~/mssql-core/table.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { ExtractObjectValues } from '~/relations.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\nimport { mapUpdateSet, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport type { MsSqlColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlatUpdate, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface MsSqlUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: MsSqlTable;\n\toutput?: {\n\t\tinserted?: SelectedFieldsOrdered;\n\t\tdeleted?: SelectedFieldsOrdered;\n\t};\n}\n\nexport type MsSqlUpdateSetSource<TTable extends MsSqlTable> =\n\t& {\n\t\t[Key in keyof TTable['$inferInsert']]?:\n\t\t\t| GetColumnData<TTable['_']['columns'][Key], 'query'>\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport type NonUndefinedKeysOnly<T> =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type FormSelection<T, TTable extends MsSqlTable> = {\n\t[K in keyof T as T[K] extends undefined ? never : K]: T[K] extends true ? TTable['_']['columns'] : T[K];\n};\n\nexport type MsSqlUpdateReturning<\n\tT extends AnyMsSqlUpdateBase,\n\tTDynamic extends boolean,\n\tSelectedFields extends SelectedFieldsFlatUpdate,\n> = MsSqlUpdateWithout<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tSelectResultFields<FormSelection<SelectedFields, T['_']['table']>>,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'output'\n>;\n\nexport type MsSqlUpdateReturningAll<T extends AnyMsSqlUpdateBase, TDynamic extends boolean> = MsSqlUpdateWithout<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'output'\n>;\n\nexport class MsSqlUpdateBuilder<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n> {\n\tstatic readonly [entityKind]: string = 'MsSqlUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {}\n\n\tset(values: MsSqlUpdateSetSource<TTable>): MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT> {\n\t\treturn new MsSqlUpdateBase(this.table, mapUpdateSet(this.table, values), this.session, this.dialect);\n\t}\n}\n\nexport type MsSqlUpdateWithout<\n\tT extends AnyMsSqlUpdateBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tMsSqlUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['queryResult'],\n\t\tT['_']['preparedQueryHKT'],\n\t\tT['_']['output'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type MsSqlUpdatePrepare<T extends AnyMsSqlUpdateBase> = PreparedQueryKind<\n\tT['_']['preparedQueryHKT'],\n\tPreparedQueryConfig & {\n\t\texecute: T['_']['output'] extends undefined ? QueryResultKind<T['_']['queryResult'], any> : T['_']['output'][];\n\t\titerator: never;\n\t}\n>;\n\nexport type MsSqlUpdateDynamic<T extends AnyMsSqlUpdateBase> = MsSqlUpdate<\n\tT['_']['table'],\n\tT['_']['queryResult'],\n\tT['_']['preparedQueryHKT'],\n\tT['_']['output']\n>;\n\nexport type MsSqlUpdate<\n\tTTable extends MsSqlTable = MsSqlTable,\n\tTQueryResult extends QueryResultHKT = AnyQueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTOutput extends Record<string, unknown> | undefined = Record<string, unknown> | undefined,\n> = MsSqlUpdateBase<TTable, TQueryResult, TPreparedQueryHKT, TOutput, true, never>;\n\nexport type AnyMsSqlUpdateBase = MsSqlUpdateBase<any, any, any, any, any, any>;\n\nexport interface MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTOutput extends Record<string, unknown> | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>, SQLWrapper {\n\treadonly _: {\n\t\treadonly table: TTable;\n\t\treadonly queryResult: TQueryResult;\n\t\treadonly preparedQueryHKT: TPreparedQueryHKT;\n\t\treadonly output: TOutput;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t};\n}\n\nexport class MsSqlUpdateBase<\n\tTTable extends MsSqlTable,\n\tTQueryResult extends QueryResultHKT,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTOutput extends Record<string, unknown> | undefined = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]>\n\timplements SQLWrapper\n{\n\tstatic override readonly [entityKind]: string = 'MsSqlUpdate';\n\n\tprivate config: MsSqlUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: MsSqlSession,\n\t\tprivate dialect: MsSqlDialect,\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): MsSqlUpdateWithout<this, TDynamic, 'where'> {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\toutput(): MsSqlUpdateReturningAll<this, TDynamic>;\n\toutput<TSelectedFields extends SelectedFieldsFlatUpdate>(\n\t\tfields: TSelectedFields,\n\t): MsSqlUpdateReturning<this, TDynamic, TSelectedFields>;\n\toutput(\n\t\tfields?: SelectedFieldsFlatUpdate,\n\t): MsSqlUpdateWithout<AnyMsSqlUpdateBase, TDynamic, 'output'> {\n\t\tconst columns = this.config.table[Table.Symbol.Columns];\n\n\t\tif (fields) {\n\t\t\tconst output: Partial<typeof this.config.output> = {};\n\n\t\t\tif (fields.inserted) {\n\t\t\t\toutput.inserted = typeof fields.inserted === 'boolean'\n\t\t\t\t\t? orderSelectedFields<MsSqlColumn>(columns, ['inserted'])\n\t\t\t\t\t: orderSelectedFields<MsSqlColumn>(fields.inserted, ['inserted']);\n\t\t\t}\n\n\t\t\tif (fields.deleted) {\n\t\t\t\toutput.deleted = typeof fields.deleted === 'boolean'\n\t\t\t\t\t? orderSelectedFields<MsSqlColumn>(columns, ['deleted'])\n\t\t\t\t\t: orderSelectedFields<MsSqlColumn>(fields.deleted, ['deleted']);\n\t\t\t}\n\n\t\t\tthis.config.output = output;\n\t\t} else {\n\t\t\tthis.config.output = {\n\t\t\t\tinserted: orderSelectedFields<MsSqlColumn>(columns),\n\t\t\t};\n\t\t}\n\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tprepare(): MsSqlUpdatePrepare<this> {\n\t\tconst output = [...(this.config.output?.inserted ?? []), ...(this.config.output?.deleted ?? [])];\n\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\toutput.length ? output : undefined,\n\t\t) as MsSqlUpdatePrepare<this>;\n\t}\n\n\toverride execute(\n\t\tplaceholderValues?: Record<string, unknown>,\n\t): Promise<TOutput extends undefined ? QueryResultKind<TQueryResult, any> : TOutput[]> {\n\t\treturn this.prepare().execute(placeholderValues) as any;\n\t}\n\n\tprivate createIterator = (): ReturnType<this['prepare']>['iterator'] => {\n\t\tconst self = this;\n\t\treturn async function*(placeholderValues) {\n\t\t\tyield* self.prepare().iterator(placeholderValues);\n\t\t};\n\t};\n\n\titerator = this.createIterator();\n\n\t$dynamic(): MsSqlUpdateDynamic<this> {\n\t\treturn this as any;\n\t}\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAa3B,SAAS,oBAAoB;AAG7B,SAAS,aAAa;AACtB,SAAS,cAAc,2BAA2C;AAgE3D,MAAM,mBAIX;AAAA,EAOD,YACS,OACA,SACA,SACP;AAHO;AACA;AACA;AAAA,EACN;AAAA,EAVH,QAAiB,UAAU,IAAY;AAAA,EAYvC,IAAI,QAAgG;AACnG,WAAO,IAAI,gBAAgB,KAAK,OAAO,aAAa,KAAK,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,OAAO;AAAA,EACpG;AACD;AA4DO,MAAM,wBAWH,aAEV;AAAA,EAKC,YACC,OACA,KACQ,SACA,SACP;AACD,UAAM;AAHE;AACA;AAGR,SAAK,SAAS,EAAE,KAAK,MAAM;AAAA,EAC5B;AAAA,EAZA,QAA0B,UAAU,IAAY;AAAA,EAExC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6CR,MAAM,OAAqE;AAC1E,SAAK,OAAO,QAAQ;AACpB,WAAO;AAAA,EACR;AAAA,EAMA,OACC,QAC6D;AAC7D,UAAM,UAAU,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO;AAEtD,QAAI,QAAQ;AACX,YAAM,SAA6C,CAAC;AAEpD,UAAI,OAAO,UAAU;AACpB,eAAO,WAAW,OAAO,OAAO,aAAa,YAC1C,oBAAiC,SAAS,CAAC,UAAU,CAAC,IACtD,oBAAiC,OAAO,UAAU,CAAC,UAAU,CAAC;AAAA,MAClE;AAEA,UAAI,OAAO,SAAS;AACnB,eAAO,UAAU,OAAO,OAAO,YAAY,YACxC,oBAAiC,SAAS,CAAC,SAAS,CAAC,IACrD,oBAAiC,OAAO,SAAS,CAAC,SAAS,CAAC;AAAA,MAChE;AAEA,WAAK,OAAO,SAAS;AAAA,IACtB,OAAO;AACN,WAAK,OAAO,SAAS;AAAA,QACpB,UAAU,oBAAiC,OAAO;AAAA,MACnD;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAAA;AAAA,EAGA,SAAc;AACb,WAAO,KAAK,QAAQ,iBAAiB,KAAK,MAAM;AAAA,EACjD;AAAA,EAEA,QAAe;AACd,UAAM,EAAE,SAAS,UAAU,GAAG,KAAK,IAAI,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAC5E,WAAO;AAAA,EACR;AAAA,EAEA,UAAoC;AACnC,UAAM,SAAS,CAAC,GAAI,KAAK,OAAO,QAAQ,YAAY,CAAC,GAAI,GAAI,KAAK,OAAO,QAAQ,WAAW,CAAC,CAAE;AAE/F,WAAO,KAAK,QAAQ;AAAA,MACnB,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAC;AAAA,MACrC,OAAO,SAAS,SAAS;AAAA,IAC1B;AAAA,EACD;AAAA,EAES,QACR,mBACsF;AACtF,WAAO,KAAK,QAAQ,EAAE,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EAEQ,iBAAiB,MAA+C;AACvE,UAAM,OAAO;AACb,WAAO,iBAAgB,mBAAmB;AACzC,aAAO,KAAK,QAAQ,EAAE,SAAS,iBAAiB;AAAA,IACjD;AAAA,EACD;AAAA,EAEA,WAAW,KAAK,eAAe;AAAA,EAE/B,WAAqC;AACpC,WAAO;AAAA,EACR;AACD;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
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 schema_exports = {};
|
|
20
|
+
__export(schema_exports, {
|
|
21
|
+
MsSqlSchema: () => MsSqlSchema,
|
|
22
|
+
mssqlDatabase: () => mssqlDatabase,
|
|
23
|
+
mssqlSchema: () => mssqlSchema
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(schema_exports);
|
|
26
|
+
var import_entity = require("../entity.cjs");
|
|
27
|
+
var import_table = require("./table.cjs");
|
|
28
|
+
var import_view = require("./view.cjs");
|
|
29
|
+
class MsSqlSchema {
|
|
30
|
+
constructor(schemaName) {
|
|
31
|
+
this.schemaName = schemaName;
|
|
32
|
+
}
|
|
33
|
+
static [import_entity.entityKind] = "MsSqlSchema";
|
|
34
|
+
table = (name, columns, extraConfig) => {
|
|
35
|
+
return (0, import_table.mssqlTableWithSchema)(name, columns, extraConfig, this.schemaName);
|
|
36
|
+
};
|
|
37
|
+
view = (name, columns) => {
|
|
38
|
+
return (0, import_view.mssqlViewWithSchema)(name, columns, this.schemaName);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function mssqlDatabase(name) {
|
|
42
|
+
return new MsSqlSchema(name);
|
|
43
|
+
}
|
|
44
|
+
const mssqlSchema = mssqlDatabase;
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
MsSqlSchema,
|
|
48
|
+
mssqlDatabase,
|
|
49
|
+
mssqlSchema
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mssql-core/schema.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { type MsSqlTableFn, mssqlTableWithSchema } from './table.ts';\nimport { type mssqlView, mssqlViewWithSchema } from './view.ts';\n\nexport class MsSqlSchema<TName extends string = string> {\n\tstatic readonly [entityKind]: string = 'MsSqlSchema';\n\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: MsSqlTableFn<TName> = (name, columns, extraConfig) => {\n\t\treturn mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t};\n\n\tview = ((name, columns) => {\n\t\treturn mssqlViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof mssqlView;\n}\n\n/**\n * Create a MySQL schema.\n * https://dev.mssql.com/doc/refman/8.0/en/create-database.html\n *\n * @param name mssql use schema name\n * @returns MySQL schema\n */\nexport function mssqlDatabase<TName extends string>(name: TName) {\n\treturn new MsSqlSchema(name);\n}\n\n/**\n * @see mssqlDatabase\n */\nexport const mssqlSchema = mssqlDatabase;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,mBAAwD;AACxD,kBAAoD;AAE7C,MAAM,YAA2C;AAAA,EAGvD,YACiB,YACf;AADe;AAAA,EACd;AAAA,EAJH,QAAiB,wBAAU,IAAY;AAAA,EAMvC,QAA6B,CAAC,MAAM,SAAS,gBAAgB;AAC5D,eAAO,mCAAqB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACxE;AAAA,EAEA,OAAQ,CAAC,MAAM,YAAY;AAC1B,eAAO,iCAAoB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1D;AACD;AASO,SAAS,cAAoC,MAAa;AAChE,SAAO,IAAI,YAAY,IAAI;AAC5B;AAKO,MAAM,cAAc;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { entityKind } from "../entity.cjs";
|
|
2
|
+
import { type MsSqlTableFn } from "./table.cjs";
|
|
3
|
+
import { type mssqlView } from "./view.cjs";
|
|
4
|
+
export declare class MsSqlSchema<TName extends string = string> {
|
|
5
|
+
readonly schemaName: TName;
|
|
6
|
+
static readonly [entityKind]: string;
|
|
7
|
+
constructor(schemaName: TName);
|
|
8
|
+
table: MsSqlTableFn<TName>;
|
|
9
|
+
view: typeof mssqlView;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a MySQL schema.
|
|
13
|
+
* https://dev.mssql.com/doc/refman/8.0/en/create-database.html
|
|
14
|
+
*
|
|
15
|
+
* @param name mssql use schema name
|
|
16
|
+
* @returns MySQL schema
|
|
17
|
+
*/
|
|
18
|
+
export declare function mssqlDatabase<TName extends string>(name: TName): MsSqlSchema<TName>;
|
|
19
|
+
/**
|
|
20
|
+
* @see mssqlDatabase
|
|
21
|
+
*/
|
|
22
|
+
export declare const mssqlSchema: typeof mssqlDatabase;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { entityKind } from "../entity.js";
|
|
2
|
+
import { type MsSqlTableFn } from "./table.js";
|
|
3
|
+
import { type mssqlView } from "./view.js";
|
|
4
|
+
export declare class MsSqlSchema<TName extends string = string> {
|
|
5
|
+
readonly schemaName: TName;
|
|
6
|
+
static readonly [entityKind]: string;
|
|
7
|
+
constructor(schemaName: TName);
|
|
8
|
+
table: MsSqlTableFn<TName>;
|
|
9
|
+
view: typeof mssqlView;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create a MySQL schema.
|
|
13
|
+
* https://dev.mssql.com/doc/refman/8.0/en/create-database.html
|
|
14
|
+
*
|
|
15
|
+
* @param name mssql use schema name
|
|
16
|
+
* @returns MySQL schema
|
|
17
|
+
*/
|
|
18
|
+
export declare function mssqlDatabase<TName extends string>(name: TName): MsSqlSchema<TName>;
|
|
19
|
+
/**
|
|
20
|
+
* @see mssqlDatabase
|
|
21
|
+
*/
|
|
22
|
+
export declare const mssqlSchema: typeof mssqlDatabase;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { entityKind } from "../entity.js";
|
|
2
|
+
import { mssqlTableWithSchema } from "./table.js";
|
|
3
|
+
import { mssqlViewWithSchema } from "./view.js";
|
|
4
|
+
class MsSqlSchema {
|
|
5
|
+
constructor(schemaName) {
|
|
6
|
+
this.schemaName = schemaName;
|
|
7
|
+
}
|
|
8
|
+
static [entityKind] = "MsSqlSchema";
|
|
9
|
+
table = (name, columns, extraConfig) => {
|
|
10
|
+
return mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);
|
|
11
|
+
};
|
|
12
|
+
view = (name, columns) => {
|
|
13
|
+
return mssqlViewWithSchema(name, columns, this.schemaName);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function mssqlDatabase(name) {
|
|
17
|
+
return new MsSqlSchema(name);
|
|
18
|
+
}
|
|
19
|
+
const mssqlSchema = mssqlDatabase;
|
|
20
|
+
export {
|
|
21
|
+
MsSqlSchema,
|
|
22
|
+
mssqlDatabase,
|
|
23
|
+
mssqlSchema
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mssql-core/schema.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { type MsSqlTableFn, mssqlTableWithSchema } from './table.ts';\nimport { type mssqlView, mssqlViewWithSchema } from './view.ts';\n\nexport class MsSqlSchema<TName extends string = string> {\n\tstatic readonly [entityKind]: string = 'MsSqlSchema';\n\n\tconstructor(\n\t\tpublic readonly schemaName: TName,\n\t) {}\n\n\ttable: MsSqlTableFn<TName> = (name, columns, extraConfig) => {\n\t\treturn mssqlTableWithSchema(name, columns, extraConfig, this.schemaName);\n\t};\n\n\tview = ((name, columns) => {\n\t\treturn mssqlViewWithSchema(name, columns, this.schemaName);\n\t}) as typeof mssqlView;\n}\n\n/**\n * Create a MySQL schema.\n * https://dev.mssql.com/doc/refman/8.0/en/create-database.html\n *\n * @param name mssql use schema name\n * @returns MySQL schema\n */\nexport function mssqlDatabase<TName extends string>(name: TName) {\n\treturn new MsSqlSchema(name);\n}\n\n/**\n * @see mssqlDatabase\n */\nexport const mssqlSchema = mssqlDatabase;\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAA4B,4BAA4B;AACxD,SAAyB,2BAA2B;AAE7C,MAAM,YAA2C;AAAA,EAGvD,YACiB,YACf;AADe;AAAA,EACd;AAAA,EAJH,QAAiB,UAAU,IAAY;AAAA,EAMvC,QAA6B,CAAC,MAAM,SAAS,gBAAgB;AAC5D,WAAO,qBAAqB,MAAM,SAAS,aAAa,KAAK,UAAU;AAAA,EACxE;AAAA,EAEA,OAAQ,CAAC,MAAM,YAAY;AAC1B,WAAO,oBAAoB,MAAM,SAAS,KAAK,UAAU;AAAA,EAC1D;AACD;AASO,SAAS,cAAoC,MAAa;AAChE,SAAO,IAAI,YAAY,IAAI;AAC5B;AAKO,MAAM,cAAc;","names":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
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 session_exports = {};
|
|
20
|
+
__export(session_exports, {
|
|
21
|
+
MsSqlSession: () => MsSqlSession,
|
|
22
|
+
MsSqlTransaction: () => MsSqlTransaction,
|
|
23
|
+
PreparedQuery: () => PreparedQuery
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(session_exports);
|
|
26
|
+
var import_entity = require("../entity.cjs");
|
|
27
|
+
var import_errors = require("../errors.cjs");
|
|
28
|
+
var import_sql = require("../sql/sql.cjs");
|
|
29
|
+
var import_db = require("./db.cjs");
|
|
30
|
+
class PreparedQuery {
|
|
31
|
+
static [import_entity.entityKind] = "MsSqlPreparedQuery";
|
|
32
|
+
/** @internal */
|
|
33
|
+
joinsNotNullableMap;
|
|
34
|
+
}
|
|
35
|
+
class MsSqlSession {
|
|
36
|
+
constructor(dialect) {
|
|
37
|
+
this.dialect = dialect;
|
|
38
|
+
}
|
|
39
|
+
static [import_entity.entityKind] = "MsSqlSession";
|
|
40
|
+
execute(query) {
|
|
41
|
+
return this.prepareQuery(
|
|
42
|
+
this.dialect.sqlToQuery(query),
|
|
43
|
+
void 0
|
|
44
|
+
).execute();
|
|
45
|
+
}
|
|
46
|
+
getSetTransactionSQL(config) {
|
|
47
|
+
const parts = [];
|
|
48
|
+
if (config.isolationLevel) {
|
|
49
|
+
parts.push(`isolation level ${config.isolationLevel}`);
|
|
50
|
+
}
|
|
51
|
+
return parts.length ? import_sql.sql.join(["set transaction ", parts.join(" ")]) : void 0;
|
|
52
|
+
}
|
|
53
|
+
getStartTransactionSQL(_config) {
|
|
54
|
+
return import_sql.sql`begin transaction`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
class MsSqlTransaction extends import_db.MsSqlDatabase {
|
|
58
|
+
constructor(dialect, session, schema, nestedIndex) {
|
|
59
|
+
super(dialect, session, schema);
|
|
60
|
+
this.schema = schema;
|
|
61
|
+
this.nestedIndex = nestedIndex;
|
|
62
|
+
}
|
|
63
|
+
static [import_entity.entityKind] = "MsSqlTransaction";
|
|
64
|
+
rollback() {
|
|
65
|
+
throw new import_errors.TransactionRollbackError();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
69
|
+
0 && (module.exports = {
|
|
70
|
+
MsSqlSession,
|
|
71
|
+
MsSqlTransaction,
|
|
72
|
+
PreparedQuery
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=session.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mssql-core/session.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { TransactionRollbackError } from '~/errors.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { type Query, type SQL, sql } from '~/sql/sql.ts';\nimport type { Assume, Equal } from '~/utils.ts';\nimport { MsSqlDatabase } from './db.ts';\nimport type { MsSqlDialect } from './dialect.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface QueryResultHKT {\n\treadonly $brand: 'MsSqlQueryRowHKT';\n\treadonly row: unknown;\n\treadonly type: unknown;\n}\n\nexport interface AnyQueryResultHKT extends QueryResultHKT {\n\treadonly type: any;\n}\n\nexport type QueryResultKind<TKind extends QueryResultHKT, TRow> = (TKind & {\n\treadonly row: TRow;\n})['type'];\n\nexport interface PreparedQueryConfig {\n\texecute: unknown;\n\titerator: unknown;\n}\n\nexport interface PreparedQueryHKT {\n\treadonly $brand: 'MsSqlPreparedQueryHKT';\n\treadonly config: unknown;\n\treadonly type: unknown;\n}\n\nexport type PreparedQueryKind<\n\tTKind extends PreparedQueryHKT,\n\tTConfig extends PreparedQueryConfig,\n\tTAssume extends boolean = false,\n> = Equal<TAssume, true> extends true ? Assume<(TKind & { readonly config: TConfig })['type'], PreparedQuery<TConfig>>\n\t: (TKind & { readonly config: TConfig })['type'];\n\nexport abstract class PreparedQuery<T extends PreparedQueryConfig> {\n\tstatic readonly [entityKind]: string = 'MsSqlPreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record<string, boolean>;\n\n\tabstract execute(placeholderValues?: Record<string, unknown>): Promise<T['execute']>;\n\n\tabstract iterator(placeholderValues?: Record<string, unknown>): AsyncGenerator<T['iterator']>;\n}\n\nexport interface MsSqlTransactionConfig {\n\tisolationLevel: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable' | 'snapshot';\n}\n\nexport abstract class MsSqlSession<\n\tTQueryResult extends QueryResultHKT = QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase = PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> {\n\tstatic readonly [entityKind]: string = 'MsSqlSession';\n\n\tconstructor(protected dialect: MsSqlDialect) {}\n\n\tabstract prepareQuery<T extends PreparedQueryConfig, TPreparedQueryHKT extends PreparedQueryHKT>(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t): PreparedQueryKind<TPreparedQueryHKT, T>;\n\n\texecute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T }, PreparedQueryHKTBase>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t).execute();\n\t}\n\n\tabstract all<T = unknown>(query: SQL): Promise<T[]>;\n\n\tabstract transaction<T>(\n\t\ttransaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t\tconfig?: MsSqlTransactionConfig,\n\t): Promise<T>;\n\n\tprotected getSetTransactionSQL(config: MsSqlTransactionConfig): SQL | undefined {\n\t\tconst parts: string[] = [];\n\n\t\tif (config.isolationLevel) {\n\t\t\tparts.push(`isolation level ${config.isolationLevel}`);\n\t\t}\n\n\t\treturn parts.length ? sql.join(['set transaction ', parts.join(' ')]) : undefined;\n\t}\n\n\tprotected getStartTransactionSQL(_config: MsSqlTransactionConfig): SQL | undefined {\n\t\treturn sql`begin transaction`;\n\t}\n}\n\nexport abstract class MsSqlTransaction<\n\tTQueryResult extends QueryResultHKT,\n\tTPreparedQueryHKT extends PreparedQueryHKTBase,\n\tTFullSchema extends Record<string, unknown> = Record<string, never>,\n\tTSchema extends TablesRelationalConfig = Record<string, never>,\n> extends MsSqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema> {\n\tstatic override readonly [entityKind]: string = 'MsSqlTransaction';\n\n\tconstructor(\n\t\tdialect: MsSqlDialect,\n\t\tsession: MsSqlSession,\n\t\tprotected schema: RelationalSchemaConfig<TSchema> | undefined,\n\t\tprotected readonly nestedIndex: number,\n\t) {\n\t\tsuper(dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n\n\t/** Nested transactions (aka savepoints) only work with InnoDB engine. */\n\tabstract override transaction<T>(\n\t\ttransaction: (tx: MsSqlTransaction<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>) => Promise<T>,\n\t): Promise<T>;\n}\n\nexport interface PreparedQueryHKTBase extends PreparedQueryHKT {\n\ttype: PreparedQuery<Assume<this['config'], PreparedQueryConfig>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,oBAAyC;AAEzC,iBAA0C;AAE1C,gBAA8B;AAoCvB,MAAe,cAA6C;AAAA,EAClE,QAAiB,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAKD;AAMO,MAAe,aAKpB;AAAA,EAGD,YAAsB,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAF9C,QAAiB,wBAAU,IAAY;AAAA,EAUvC,QAAW,OAAwB;AAClC,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,IACD,EAAE,QAAQ;AAAA,EACX;AAAA,EASU,qBAAqB,QAAiD;AAC/E,UAAM,QAAkB,CAAC;AAEzB,QAAI,OAAO,gBAAgB;AAC1B,YAAM,KAAK,mBAAmB,OAAO,cAAc,EAAE;AAAA,IACtD;AAEA,WAAO,MAAM,SAAS,eAAI,KAAK,CAAC,oBAAoB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI;AAAA,EACzE;AAAA,EAEU,uBAAuB,SAAkD;AAClF,WAAO;AAAA,EACR;AACD;AAEO,MAAe,yBAKZ,wBAAqE;AAAA,EAG9E,YACC,SACA,SACU,QACS,aAClB;AACD,UAAM,SAAS,SAAS,MAAM;AAHpB;AACS;AAAA,EAGpB;AAAA,EATA,QAA0B,wBAAU,IAAY;AAAA,EAWhD,WAAkB;AACjB,UAAM,IAAI,uCAAyB;AAAA,EACpC;AAMD;","names":[]}
|