@warlock.js/cascade 4.0.93 → 4.0.95
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/cjs/contracts/database-driver.contract.d.ts +71 -0
- package/cjs/contracts/database-driver.contract.d.ts.map +1 -1
- package/cjs/data-source/data-source.d.ts +6 -4
- package/cjs/data-source/data-source.d.ts.map +1 -1
- package/cjs/data-source/data-source.js.map +1 -1
- package/cjs/drivers/mongodb/mongodb-driver.d.ts +36 -0
- package/cjs/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
- package/cjs/drivers/mongodb/mongodb-driver.js +69 -0
- package/cjs/drivers/mongodb/mongodb-driver.js.map +1 -1
- package/cjs/drivers/postgres/postgres-driver.d.ts +41 -0
- package/cjs/drivers/postgres/postgres-driver.d.ts.map +1 -1
- package/cjs/drivers/postgres/postgres-driver.js +100 -4
- package/cjs/drivers/postgres/postgres-driver.js.map +1 -1
- package/cjs/migration/migration-runner.d.ts.map +1 -1
- package/cjs/migration/migration-runner.js +3 -0
- package/cjs/migration/migration-runner.js.map +1 -1
- package/cjs/model/model.d.ts +71 -13
- package/cjs/model/model.d.ts.map +1 -1
- package/cjs/model/model.js +172 -23
- package/cjs/model/model.js.map +1 -1
- package/cjs/remover/database-remover.d.ts.map +1 -1
- package/cjs/remover/database-remover.js +7 -2
- package/cjs/remover/database-remover.js.map +1 -1
- package/cjs/types.d.ts +244 -0
- package/cjs/types.d.ts.map +1 -1
- package/cjs/utils/connect-to-database.d.ts +42 -45
- package/cjs/utils/connect-to-database.d.ts.map +1 -1
- package/cjs/utils/connect-to-database.js.map +1 -1
- package/cjs/utils/define-model.d.ts +21 -16
- package/cjs/utils/define-model.d.ts.map +1 -1
- package/cjs/writer/database-writer.d.ts +1 -1
- package/cjs/writer/database-writer.d.ts.map +1 -1
- package/cjs/writer/database-writer.js +13 -9
- package/cjs/writer/database-writer.js.map +1 -1
- package/esm/contracts/database-driver.contract.d.ts +71 -0
- package/esm/contracts/database-driver.contract.d.ts.map +1 -1
- package/esm/data-source/data-source.d.ts +6 -4
- package/esm/data-source/data-source.d.ts.map +1 -1
- package/esm/data-source/data-source.js.map +1 -1
- package/esm/drivers/mongodb/mongodb-driver.d.ts +36 -0
- package/esm/drivers/mongodb/mongodb-driver.d.ts.map +1 -1
- package/esm/drivers/mongodb/mongodb-driver.js +69 -0
- package/esm/drivers/mongodb/mongodb-driver.js.map +1 -1
- package/esm/drivers/postgres/postgres-driver.d.ts +41 -0
- package/esm/drivers/postgres/postgres-driver.d.ts.map +1 -1
- package/esm/drivers/postgres/postgres-driver.js +100 -4
- package/esm/drivers/postgres/postgres-driver.js.map +1 -1
- package/esm/migration/migration-runner.d.ts.map +1 -1
- package/esm/migration/migration-runner.js +3 -0
- package/esm/migration/migration-runner.js.map +1 -1
- package/esm/model/model.d.ts +71 -13
- package/esm/model/model.d.ts.map +1 -1
- package/esm/model/model.js +172 -23
- package/esm/model/model.js.map +1 -1
- package/esm/remover/database-remover.d.ts.map +1 -1
- package/esm/remover/database-remover.js +7 -2
- package/esm/remover/database-remover.js.map +1 -1
- package/esm/types.d.ts +244 -0
- package/esm/types.d.ts.map +1 -1
- package/esm/utils/connect-to-database.d.ts +42 -45
- package/esm/utils/connect-to-database.d.ts.map +1 -1
- package/esm/utils/connect-to-database.js.map +1 -1
- package/esm/utils/define-model.d.ts +21 -16
- package/esm/utils/define-model.d.ts.map +1 -1
- package/esm/writer/database-writer.d.ts +1 -1
- package/esm/writer/database-writer.d.ts.map +1 -1
- package/esm/writer/database-writer.js +13 -9
- package/esm/writer/database-writer.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ModelDefaults } from "../types";
|
|
1
2
|
import { DriverBlueprintContract } from "./driver-blueprint.contract";
|
|
2
3
|
import type { MigrationDriverContract } from "./migration-driver.contract";
|
|
3
4
|
import type { QueryBuilderContract } from "./query-builder.contract";
|
|
@@ -79,6 +80,28 @@ export interface DriverContract {
|
|
|
79
80
|
* Database blueprint (Information Schema)
|
|
80
81
|
*/
|
|
81
82
|
readonly blueprint: DriverBlueprintContract;
|
|
83
|
+
/**
|
|
84
|
+
* Driver-specific model defaults.
|
|
85
|
+
*
|
|
86
|
+
* These defaults are applied to all models using this driver,
|
|
87
|
+
* unless overridden by database config or model static properties.
|
|
88
|
+
*
|
|
89
|
+
* Examples:
|
|
90
|
+
* - MongoDB: camelCase naming (createdAt, updatedAt)
|
|
91
|
+
* - PostgreSQL: snake_case naming (created_at, updated_at)
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // PostgreSQL driver
|
|
96
|
+
* readonly modelDefaults: Partial<ModelDefaults> = {
|
|
97
|
+
* namingConvention: "snake_case",
|
|
98
|
+
* createdAtColumn: "created_at",
|
|
99
|
+
* updatedAtColumn: "updated_at",
|
|
100
|
+
* timestamps: true,
|
|
101
|
+
* };
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
readonly modelDefaults?: Partial<ModelDefaults>;
|
|
82
105
|
/** Whether the underlying connection is currently established. */
|
|
83
106
|
readonly isConnected: boolean;
|
|
84
107
|
/** Establish the underlying database connection/pool. */
|
|
@@ -105,6 +128,54 @@ export interface DriverContract {
|
|
|
105
128
|
updateMany(table: string, filter: Record<string, unknown>, update: UpdateOperations, options?: Record<string, unknown>): Promise<UpdateResult>;
|
|
106
129
|
/** Replace a single document that matches the provided filter. */
|
|
107
130
|
replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
131
|
+
/** Find one and update a single document that matches the provided filter and return the updated document */
|
|
132
|
+
findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
133
|
+
/**
|
|
134
|
+
* Upsert (insert or update) a single document/row.
|
|
135
|
+
*
|
|
136
|
+
* If a document matching the filter exists, it will be updated.
|
|
137
|
+
* If no document matches, a new one will be inserted.
|
|
138
|
+
*
|
|
139
|
+
* @param table - Target table/collection name
|
|
140
|
+
* @param filter - Filter conditions to find existing document
|
|
141
|
+
* @param document - Document data to insert or update
|
|
142
|
+
* @param options - Driver-specific options (conflict columns for SQL, etc.)
|
|
143
|
+
* @returns The upserted document
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* // PostgreSQL: upsert on unique email
|
|
148
|
+
* await driver.upsert('users', { email: 'user@example.com' }, {
|
|
149
|
+
* email: 'user@example.com',
|
|
150
|
+
* name: 'John Doe',
|
|
151
|
+
* updatedAt: new Date()
|
|
152
|
+
* }, { conflictColumns: ['email'] });
|
|
153
|
+
*
|
|
154
|
+
* // MongoDB: upsert by filter
|
|
155
|
+
* await driver.upsert('users', { email: 'user@example.com' }, {
|
|
156
|
+
* email: 'user@example.com',
|
|
157
|
+
* name: 'John Doe'
|
|
158
|
+
* });
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
|
|
162
|
+
/**
|
|
163
|
+
* Find one and delete a single document that matches the provided filter and return the deleted document.
|
|
164
|
+
*
|
|
165
|
+
* @param table - Target table/collection name
|
|
166
|
+
* @param filter - Filter conditions
|
|
167
|
+
* @param options - Optional delete options
|
|
168
|
+
* @returns The deleted document or null if not found
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const deleted = await driver.findOneAndDelete('users', { id: 1 });
|
|
173
|
+
* if (deleted) {
|
|
174
|
+
* console.log('Deleted user:', deleted);
|
|
175
|
+
* }
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
108
179
|
/** Delete a single document that matches the provided filter. */
|
|
109
180
|
delete(table: string, filter?: Record<string, unknown>, options?: Record<string, unknown>): Promise<number>;
|
|
110
181
|
/** Delete documents/rows matching the filter. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-driver.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/database-driver.contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database-driver.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/database-driver.contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { DriverContract, IdGeneratorContract } from "../contracts";
|
|
2
|
-
import type { DeleteStrategy } from "../types";
|
|
3
|
-
import type { ModelDefaultConfig } from "../utils/connect-to-database";
|
|
2
|
+
import type { DeleteStrategy, ModelDefaults } from "../types";
|
|
4
3
|
/**
|
|
5
4
|
* Configuration options used when registering a data source.
|
|
6
5
|
*/
|
|
@@ -36,9 +35,12 @@ export type DataSourceOptions = {
|
|
|
36
35
|
/**
|
|
37
36
|
* Default model configuration for all models using this data source.
|
|
38
37
|
*
|
|
38
|
+
* These defaults override driver defaults but are overridden by
|
|
39
|
+
* individual model static properties.
|
|
40
|
+
*
|
|
39
41
|
* @default undefined
|
|
40
42
|
*/
|
|
41
|
-
modelDefaults?:
|
|
43
|
+
modelDefaults?: Partial<ModelDefaults>;
|
|
42
44
|
};
|
|
43
45
|
/**
|
|
44
46
|
* Wrapper that couples a driver with its metadata.
|
|
@@ -78,7 +80,7 @@ export declare class DataSource {
|
|
|
78
80
|
/** Default trash table/collection name for "trash" delete strategy. */
|
|
79
81
|
readonly defaultTrashTable?: string;
|
|
80
82
|
/** Default model configuration for all models using this data source. */
|
|
81
|
-
readonly modelDefaults?:
|
|
83
|
+
readonly modelDefaults?: Partial<ModelDefaults>;
|
|
82
84
|
/**
|
|
83
85
|
* Create a new data source.
|
|
84
86
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/data-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"data-source.d.ts","sourceRoot":"","sources":["../../src/data-source/data-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,cAAc,CAAC;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,UAAU;IACrB,gDAAgD;IAChD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,6CAA6C;IAC7C,SAAgB,MAAM,EAAE,cAAc,CAAC;IAEvC,+CAA+C;IAC/C,SAAgB,SAAS,EAAE,OAAO,CAAC;IAEnC,iEAAiE;IACjE,SAAgB,qBAAqB,CAAC,EAAE,cAAc,CAAC;IAEvD,uEAAuE;IACvE,SAAgB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3C,yEAAyE;IACzE,SAAgB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;;OAIG;gBACgB,OAAO,EAAE,iBAAiB;IAS7C;;;;;;;;;;;;;;;OAeG;IACH,IAAW,WAAW,IAAI,mBAAmB,GAAG,SAAS,CAOxD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source.js","sources":["../../src/data-source/data-source.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-source.js","sources":["../../src/data-source/data-source.ts"],"sourcesContent":[null],"names":[],"mappings":"aAgDA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;MACU,UAAU,CAAA;;AAEL,IAAA,IAAI,CAAS;;AAGb,IAAA,MAAM,CAAiB;;AAGvB,IAAA,SAAS,CAAU;;AAGnB,IAAA,qBAAqB,CAAkB;;AAGvC,IAAA,iBAAiB,CAAU;;AAG3B,IAAA,aAAa,CAA0B;AAEvD;;;;AAIG;AACH,IAAA,WAAA,CAAmB,OAA0B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;AAC3D,QAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;KAC5C;AAED;;;;;;;;;;;;;;;AAeG;AACH,IAAA,IAAW,WAAW,GAAA;;AAEpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAa,CAAC;AAClC,QAAA,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE;AAC/C,YAAA,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ClientSession, Db, MongoClient, MongoClientOptions } from "mongodb";
|
|
2
2
|
import type { DriverBlueprintContract, DriverContract, DriverEvent, DriverEventListener, DriverTransactionContract, IdGeneratorContract, InsertResult, MigrationDriverContract, QueryBuilderContract, SyncAdapterContract, UpdateResult } from "../../contracts";
|
|
3
|
+
import type { ModelDefaults } from "../../types";
|
|
3
4
|
import type { MongoDriverOptions } from "./types";
|
|
4
5
|
/**
|
|
5
6
|
* MongoDB driver implementation that fulfils the Cascade driver contract.
|
|
@@ -24,6 +25,16 @@ export declare class MongoDbDriver implements DriverContract {
|
|
|
24
25
|
* The name of this driver.
|
|
25
26
|
*/
|
|
26
27
|
readonly name = "mongodb";
|
|
28
|
+
/**
|
|
29
|
+
* MongoDB driver model defaults.
|
|
30
|
+
*
|
|
31
|
+
* MongoDB follows NoSQL conventions:
|
|
32
|
+
* - camelCase naming for fields (createdAt, updatedAt, deletedAt)
|
|
33
|
+
* - Manual ID generation (auto-increment id field separate from _id)
|
|
34
|
+
* - Timestamps enabled by default
|
|
35
|
+
* - Trash delete strategy with per-collection trash tables
|
|
36
|
+
*/
|
|
37
|
+
readonly modelDefaults: Partial<ModelDefaults>;
|
|
27
38
|
/**
|
|
28
39
|
* Create a new MongoDB driver using the supplied connection options.
|
|
29
40
|
*
|
|
@@ -102,6 +113,31 @@ export declare class MongoDbDriver implements DriverContract {
|
|
|
102
113
|
* Replace a single document that matches the provided filter.
|
|
103
114
|
*/
|
|
104
115
|
replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
116
|
+
/**
|
|
117
|
+
* Find one and update a single document that matches the provided filter and return the updated document
|
|
118
|
+
*/
|
|
119
|
+
findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
120
|
+
/**
|
|
121
|
+
* Upsert (insert or update) a single document.
|
|
122
|
+
*
|
|
123
|
+
* Uses MongoDB's findOneAndUpdate with upsert option.
|
|
124
|
+
*
|
|
125
|
+
* @param table - Target collection name
|
|
126
|
+
* @param filter - Filter conditions to find existing document
|
|
127
|
+
* @param document - Document data to insert or update
|
|
128
|
+
* @param options - Optional upsert options
|
|
129
|
+
* @returns The upserted document
|
|
130
|
+
*/
|
|
131
|
+
upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
|
|
132
|
+
/**
|
|
133
|
+
* Find one and delete a single document that matches the provided filter and return the deleted document.
|
|
134
|
+
*
|
|
135
|
+
* @param table - Target collection name
|
|
136
|
+
* @param filter - Filter conditions
|
|
137
|
+
* @param options - Optional delete options
|
|
138
|
+
* @returns The deleted document or null if not found
|
|
139
|
+
*/
|
|
140
|
+
findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, options?: Record<string, unknown>): Promise<T | null>;
|
|
105
141
|
/**
|
|
106
142
|
* Update multiple documents that match the provided filter.
|
|
107
143
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EACb,EAAE,
|
|
1
|
+
{"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EACb,EAAE,EAMF,WAAW,EACX,kBAAkB,EAInB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAkElD;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,cAAc;IAoDhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAUvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IA7DjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAmB;IAC/C,OAAO,CAAC,uBAAuB,CAAC,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,UAAU,CAAC,CAA0B;IAE7C,IAAW,SAAS,IAAI,uBAAuB,CAM9C;IAED;;OAEG;IACH,SAAgB,IAAI,aAAa;IAEjC;;;;;;;;OAQG;IACH,SAAgB,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAUnD;IAEF;;;;;OAKG;gBAEgB,MAAM,EAAE;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;KACpC,EACgB,aAAa,CAAC,EAAE,kBAAkB;IAQrD;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED;;;;;;;;;;;OAWG;IACI,WAAW,IAAI,EAAE;IASxB;;;;;;;;;;;;;;OAcG;IACI,cAAc,IAAI,mBAAmB,GAAG,SAAS;IAcxD;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CrC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC;;OAEG;IACI,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIlE;;OAEG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC;IAaxB;;OAEG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC;IAoB1B;;OAEG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC;IAYxB;;OAEG;IACU,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOpB;;OAEG;IACU,gBAAgB,CAAC,CAAC,GAAG,OAAO,EACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWpB;;;;;;;;;;OAUG;IACU,MAAM,CAAC,CAAC,GAAG,OAAO,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC;IAgBb;;;;;;;OAOG;IACU,gBAAgB,CAAC,CAAC,GAAG,OAAO,EACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IASpB;;OAEG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC;IAYxB;;OAEG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC;IAQlB;;OAEG;IACU,UAAU,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC;IASlB;;;;;;OAMG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ7F;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQxE;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQ1E;;OAEG;IACI,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAIxE;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;IAwClF;;;;OAIG;IACU,MAAM,CACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,YAAY,CAAC;IAYxB;;;;OAIG;IACI,WAAW,IAAI,mBAAmB;IAQzC;;;OAGG;IACI,eAAe,IAAI,uBAAuB;IAQjD;;OAEG;IACI,SAAS,IAAI,WAAW;IAI/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,IAAI;IAIZ;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;;;;;;OAQG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB3D;;;;;OAKG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBzD;;;;;OAKG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3D;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAa/C;;;;;OAKG;IACU,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD;;;;OAIG;IACU,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAe5C"}
|
|
@@ -79,6 +79,26 @@ class MongoDbDriver {
|
|
|
79
79
|
* The name of this driver.
|
|
80
80
|
*/
|
|
81
81
|
name = "mongodb";
|
|
82
|
+
/**
|
|
83
|
+
* MongoDB driver model defaults.
|
|
84
|
+
*
|
|
85
|
+
* MongoDB follows NoSQL conventions:
|
|
86
|
+
* - camelCase naming for fields (createdAt, updatedAt, deletedAt)
|
|
87
|
+
* - Manual ID generation (auto-increment id field separate from _id)
|
|
88
|
+
* - Timestamps enabled by default
|
|
89
|
+
* - Trash delete strategy with per-collection trash tables
|
|
90
|
+
*/
|
|
91
|
+
modelDefaults = {
|
|
92
|
+
namingConvention: "camelCase",
|
|
93
|
+
createdAtColumn: "createdAt",
|
|
94
|
+
updatedAtColumn: "updatedAt",
|
|
95
|
+
deletedAtColumn: "deletedAt",
|
|
96
|
+
timestamps: true,
|
|
97
|
+
autoGenerateId: true,
|
|
98
|
+
strictMode: "strip",
|
|
99
|
+
deleteStrategy: "trash",
|
|
100
|
+
trashTable: (table) => `${table}Trash`, // Per-collection trash (usersTrash, productsTrash)
|
|
101
|
+
};
|
|
82
102
|
/**
|
|
83
103
|
* Create a new MongoDB driver using the supplied connection options.
|
|
84
104
|
*
|
|
@@ -247,6 +267,55 @@ class MongoDbDriver {
|
|
|
247
267
|
const result = await collection.findOneAndReplace(filter, document);
|
|
248
268
|
return result?.value;
|
|
249
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Find one and update a single document that matches the provided filter and return the updated document
|
|
272
|
+
*/
|
|
273
|
+
async findOneAndUpdate(table, filter, update, options) {
|
|
274
|
+
const collection = this.getDatabaseInstance().collection(table);
|
|
275
|
+
const mongoOptions = this.withSession(options);
|
|
276
|
+
const result = await collection.findOneAndUpdate(filter, update, {
|
|
277
|
+
returnDocument: "after",
|
|
278
|
+
...mongoOptions,
|
|
279
|
+
});
|
|
280
|
+
return result;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Upsert (insert or update) a single document.
|
|
284
|
+
*
|
|
285
|
+
* Uses MongoDB's findOneAndUpdate with upsert option.
|
|
286
|
+
*
|
|
287
|
+
* @param table - Target collection name
|
|
288
|
+
* @param filter - Filter conditions to find existing document
|
|
289
|
+
* @param document - Document data to insert or update
|
|
290
|
+
* @param options - Optional upsert options
|
|
291
|
+
* @returns The upserted document
|
|
292
|
+
*/
|
|
293
|
+
async upsert(table, filter, document, options) {
|
|
294
|
+
const collection = this.getDatabaseInstance().collection(table);
|
|
295
|
+
const mongoOptions = this.withSession(options);
|
|
296
|
+
// Use $set to update all fields from document
|
|
297
|
+
const update = { $set: document };
|
|
298
|
+
const result = await collection.findOneAndUpdate(filter, update, {
|
|
299
|
+
upsert: true,
|
|
300
|
+
returnDocument: "after",
|
|
301
|
+
...mongoOptions,
|
|
302
|
+
});
|
|
303
|
+
return result;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Find one and delete a single document that matches the provided filter and return the deleted document.
|
|
307
|
+
*
|
|
308
|
+
* @param table - Target collection name
|
|
309
|
+
* @param filter - Filter conditions
|
|
310
|
+
* @param options - Optional delete options
|
|
311
|
+
* @returns The deleted document or null if not found
|
|
312
|
+
*/
|
|
313
|
+
async findOneAndDelete(table, filter, options) {
|
|
314
|
+
const collection = this.getDatabaseInstance().collection(table);
|
|
315
|
+
const mongoOptions = this.withSession(options);
|
|
316
|
+
const result = await collection.findOneAndDelete(filter, mongoOptions || {});
|
|
317
|
+
return result;
|
|
318
|
+
}
|
|
250
319
|
/**
|
|
251
320
|
* Update multiple documents that match the provided filter.
|
|
252
321
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"sourcesContent":[null],"names":["EventEmitter","MongoDBBlueprint","MongoIdGenerator","log","colors","MongoQueryBuilder","dataSourceRegistry","databaseTransactionContext","MongoSyncAdapter","MongoMigrationDriver"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongodb/mongodb-driver.ts"],"sourcesContent":[null],"names":["EventEmitter","MongoDBBlueprint","MongoIdGenerator","log","colors","MongoQueryBuilder","dataSourceRegistry","databaseTransactionContext","MongoSyncAdapter","MongoMigrationDriver"],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import type { DriverBlueprintContract } from "../../contracts/driver-blueprint.c
|
|
|
14
14
|
import type { MigrationDriverContract } from "../../contracts/migration-driver.contract";
|
|
15
15
|
import type { QueryBuilderContract } from "../../contracts/query-builder.contract";
|
|
16
16
|
import type { SyncAdapterContract } from "../../contracts/sync-adapter.contract";
|
|
17
|
+
import type { ModelDefaults } from "../../types";
|
|
17
18
|
import { PostgresDialect } from "./postgres-dialect";
|
|
18
19
|
import type { PostgresPoolConfig, PostgresQueryResult, PostgresTransactionOptions } from "./types";
|
|
19
20
|
/**
|
|
@@ -60,6 +61,16 @@ export declare class PostgresDriver implements DriverContract {
|
|
|
60
61
|
* SQL dialect for PostgreSQL-specific syntax.
|
|
61
62
|
*/
|
|
62
63
|
readonly dialect: PostgresDialect;
|
|
64
|
+
/**
|
|
65
|
+
* PostgreSQL driver model defaults.
|
|
66
|
+
*
|
|
67
|
+
* PostgreSQL follows SQL conventions:
|
|
68
|
+
* - snake_case naming for columns (created_at, updated_at, deleted_at)
|
|
69
|
+
* - Native AUTO_INCREMENT for IDs (no manual generation)
|
|
70
|
+
* - Timestamps enabled by default
|
|
71
|
+
* - Permanent delete strategy (hard deletes)
|
|
72
|
+
*/
|
|
73
|
+
readonly modelDefaults: Partial<ModelDefaults>;
|
|
63
74
|
/**
|
|
64
75
|
* Connection pool instance.
|
|
65
76
|
*/
|
|
@@ -176,6 +187,15 @@ export declare class PostgresDriver implements DriverContract {
|
|
|
176
187
|
* @returns Update result with modified count
|
|
177
188
|
*/
|
|
178
189
|
update(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<UpdateResult>;
|
|
190
|
+
/**
|
|
191
|
+
* Find one and update a single row matching the filter and return the updated row
|
|
192
|
+
* @param table - Target table name
|
|
193
|
+
* @param filter - Filter conditions
|
|
194
|
+
* @param update - Update operations ($set, $unset, $inc)
|
|
195
|
+
* @param options - Optional update options
|
|
196
|
+
* @returns The updated row or null
|
|
197
|
+
*/
|
|
198
|
+
findOneAndUpdate<T = unknown>(table: string, filter: Record<string, unknown>, update: UpdateOperations, _options?: Record<string, unknown>): Promise<T | null>;
|
|
179
199
|
/**
|
|
180
200
|
* Update multiple rows matching the filter.
|
|
181
201
|
*
|
|
@@ -198,6 +218,27 @@ export declare class PostgresDriver implements DriverContract {
|
|
|
198
218
|
* @returns The replaced document or null
|
|
199
219
|
*/
|
|
200
220
|
replace<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, _options?: Record<string, unknown>): Promise<T | null>;
|
|
221
|
+
/**
|
|
222
|
+
* Upsert (insert or update) a single row.
|
|
223
|
+
*
|
|
224
|
+
* Uses PostgreSQL's INSERT ... ON CONFLICT ... DO UPDATE syntax.
|
|
225
|
+
*
|
|
226
|
+
* @param table - Target table name
|
|
227
|
+
* @param filter - Filter conditions to find existing row (used for conflict detection)
|
|
228
|
+
* @param document - Document data to insert or update
|
|
229
|
+
* @param options - Upsert options (conflictColumns for conflict target)
|
|
230
|
+
* @returns The upserted row
|
|
231
|
+
*/
|
|
232
|
+
upsert<T = unknown>(table: string, filter: Record<string, unknown>, document: Record<string, unknown>, options?: Record<string, unknown>): Promise<T>;
|
|
233
|
+
/**
|
|
234
|
+
* Find one and delete a single row matching the filter and return the deleted row.
|
|
235
|
+
*
|
|
236
|
+
* @param table - Target table name
|
|
237
|
+
* @param filter - Filter conditions
|
|
238
|
+
* @param options - Optional delete options
|
|
239
|
+
* @returns The deleted row or null
|
|
240
|
+
*/
|
|
241
|
+
findOneAndDelete<T = unknown>(table: string, filter: Record<string, unknown>, _options?: Record<string, unknown>): Promise<T | null>;
|
|
201
242
|
/**
|
|
202
243
|
* Delete a single row matching the filter.
|
|
203
244
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres/postgres-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,25 @@ class PostgresDriver {
|
|
|
70
70
|
* SQL dialect for PostgreSQL-specific syntax.
|
|
71
71
|
*/
|
|
72
72
|
dialect = new postgresDialect.PostgresDialect();
|
|
73
|
+
/**
|
|
74
|
+
* PostgreSQL driver model defaults.
|
|
75
|
+
*
|
|
76
|
+
* PostgreSQL follows SQL conventions:
|
|
77
|
+
* - snake_case naming for columns (created_at, updated_at, deleted_at)
|
|
78
|
+
* - Native AUTO_INCREMENT for IDs (no manual generation)
|
|
79
|
+
* - Timestamps enabled by default
|
|
80
|
+
* - Permanent delete strategy (hard deletes)
|
|
81
|
+
*/
|
|
82
|
+
modelDefaults = {
|
|
83
|
+
namingConvention: "snake_case",
|
|
84
|
+
createdAtColumn: "created_at",
|
|
85
|
+
updatedAtColumn: "updated_at",
|
|
86
|
+
deletedAtColumn: "deleted_at",
|
|
87
|
+
timestamps: true,
|
|
88
|
+
autoGenerateId: false,
|
|
89
|
+
strictMode: "strip",
|
|
90
|
+
deleteStrategy: "permanent",
|
|
91
|
+
};
|
|
73
92
|
/**
|
|
74
93
|
* Connection pool instance.
|
|
75
94
|
*/
|
|
@@ -270,7 +289,7 @@ class PostgresDriver {
|
|
|
270
289
|
const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) RETURNING *`;
|
|
271
290
|
const result = await this.query(sql, values);
|
|
272
291
|
return {
|
|
273
|
-
document:
|
|
292
|
+
document: result.rows[0],
|
|
274
293
|
};
|
|
275
294
|
}
|
|
276
295
|
/**
|
|
@@ -316,9 +335,7 @@ class PostgresDriver {
|
|
|
316
335
|
}
|
|
317
336
|
const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES ${valueSets.join(", ")} RETURNING *`;
|
|
318
337
|
const result = await this.query(sql, params);
|
|
319
|
-
return result.rows
|
|
320
|
-
document: this.deserialize(row),
|
|
321
|
-
}));
|
|
338
|
+
return result.rows;
|
|
322
339
|
}
|
|
323
340
|
/**
|
|
324
341
|
* Update a single row matching the filter.
|
|
@@ -336,6 +353,21 @@ class PostgresDriver {
|
|
|
336
353
|
modifiedCount: result.rowCount ?? 0,
|
|
337
354
|
};
|
|
338
355
|
}
|
|
356
|
+
/**
|
|
357
|
+
* Find one and update a single row matching the filter and return the updated row
|
|
358
|
+
* @param table - Target table name
|
|
359
|
+
* @param filter - Filter conditions
|
|
360
|
+
* @param update - Update operations ($set, $unset, $inc)
|
|
361
|
+
* @param options - Optional update options
|
|
362
|
+
* @returns The updated row or null
|
|
363
|
+
*/
|
|
364
|
+
async findOneAndUpdate(table, filter, update, _options) {
|
|
365
|
+
const { sql, params } = this.buildUpdateQuery(table, filter, update, 1);
|
|
366
|
+
// Add RETURNING * to get the updated row back
|
|
367
|
+
const sqlWithReturning = `${sql} RETURNING *`;
|
|
368
|
+
const result = await this.query(sqlWithReturning, params);
|
|
369
|
+
return result.rows[0] ?? null;
|
|
370
|
+
}
|
|
339
371
|
/**
|
|
340
372
|
* Update multiple rows matching the filter.
|
|
341
373
|
*
|
|
@@ -377,6 +409,70 @@ class PostgresDriver {
|
|
|
377
409
|
const result = await this.query(sql, params);
|
|
378
410
|
return result.rows[0] ?? null;
|
|
379
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Upsert (insert or update) a single row.
|
|
414
|
+
*
|
|
415
|
+
* Uses PostgreSQL's INSERT ... ON CONFLICT ... DO UPDATE syntax.
|
|
416
|
+
*
|
|
417
|
+
* @param table - Target table name
|
|
418
|
+
* @param filter - Filter conditions to find existing row (used for conflict detection)
|
|
419
|
+
* @param document - Document data to insert or update
|
|
420
|
+
* @param options - Upsert options (conflictColumns for conflict target)
|
|
421
|
+
* @returns The upserted row
|
|
422
|
+
*/
|
|
423
|
+
async upsert(table, filter, document, options) {
|
|
424
|
+
const serialized = this.serialize(document);
|
|
425
|
+
const columns = Object.keys(serialized);
|
|
426
|
+
const values = Object.values(serialized);
|
|
427
|
+
if (columns.length === 0) {
|
|
428
|
+
throw new Error("Cannot upsert empty document");
|
|
429
|
+
}
|
|
430
|
+
const quotedTable = this.dialect.quoteIdentifier(table);
|
|
431
|
+
const quotedColumns = columns.map((c) => this.dialect.quoteIdentifier(c)).join(", ");
|
|
432
|
+
const placeholders = columns.map((_, i) => this.dialect.placeholder(i + 1)).join(", ");
|
|
433
|
+
// Determine conflict columns from options or filter
|
|
434
|
+
const conflictColumns = options?.conflictColumns ?? Object.keys(filter);
|
|
435
|
+
if (conflictColumns.length === 0) {
|
|
436
|
+
throw new Error("Upsert requires conflictColumns option or filter with columns");
|
|
437
|
+
}
|
|
438
|
+
const quotedConflictColumns = conflictColumns
|
|
439
|
+
.map((c) => this.dialect.quoteIdentifier(c))
|
|
440
|
+
.join(", ");
|
|
441
|
+
// Build UPDATE clause for ON CONFLICT
|
|
442
|
+
// Update all columns except the conflict columns (they stay the same)
|
|
443
|
+
const updateColumns = columns.filter((col) => !conflictColumns.includes(col));
|
|
444
|
+
const setClauses = updateColumns
|
|
445
|
+
.map((col, i) => {
|
|
446
|
+
const valueIndex = columns.indexOf(col) + 1;
|
|
447
|
+
return `${this.dialect.quoteIdentifier(col)} = ${this.dialect.placeholder(valueIndex)}`;
|
|
448
|
+
})
|
|
449
|
+
.join(", ");
|
|
450
|
+
// If there are no columns to update (all columns are conflict columns), use EXCLUDED
|
|
451
|
+
const updateClause = setClauses.length > 0
|
|
452
|
+
? setClauses
|
|
453
|
+
: columns
|
|
454
|
+
.map((col) => `${this.dialect.quoteIdentifier(col)} = EXCLUDED.${this.dialect.quoteIdentifier(col)}`)
|
|
455
|
+
.join(", ");
|
|
456
|
+
const sql = `INSERT INTO ${quotedTable} (${quotedColumns}) VALUES (${placeholders}) ON CONFLICT (${quotedConflictColumns}) DO UPDATE SET ${updateClause} RETURNING *`;
|
|
457
|
+
const result = await this.query(sql, values);
|
|
458
|
+
return result.rows[0];
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Find one and delete a single row matching the filter and return the deleted row.
|
|
462
|
+
*
|
|
463
|
+
* @param table - Target table name
|
|
464
|
+
* @param filter - Filter conditions
|
|
465
|
+
* @param options - Optional delete options
|
|
466
|
+
* @returns The deleted row or null
|
|
467
|
+
*/
|
|
468
|
+
async findOneAndDelete(table, filter, _options) {
|
|
469
|
+
const quotedTable = this.dialect.quoteIdentifier(table);
|
|
470
|
+
const { whereClause, whereParams } = this.buildWhereClause(filter, 1);
|
|
471
|
+
// Use ctid for single row deletion with RETURNING
|
|
472
|
+
const sql = `DELETE FROM ${quotedTable} WHERE ctid IN (SELECT ctid FROM ${quotedTable} ${whereClause} LIMIT 1) RETURNING *`;
|
|
473
|
+
const result = await this.query(sql, whereParams);
|
|
474
|
+
return result.rows[0] ? result.rows[0] : null;
|
|
475
|
+
}
|
|
380
476
|
/**
|
|
381
477
|
* Delete a single row matching the filter.
|
|
382
478
|
*
|