forge-sql-orm 2.1.7 → 2.1.9
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/dist/ForgeSQLORM.js +18 -5
- package/dist/ForgeSQLORM.js.map +1 -1
- package/dist/ForgeSQLORM.mjs +18 -5
- package/dist/ForgeSQLORM.mjs.map +1 -1
- package/dist/utils/cacheContextUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/utils/cacheContextUtils.ts +22 -2
- package/src/utils/forgeDriver.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheContextUtils.d.ts","sourceRoot":"","sources":["../../src/utils/cacheContextUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAIxF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0FAA0F;IAC1F,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB,CACF,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"cacheContextUtils.d.ts","sourceRoot":"","sources":["../../src/utils/cacheContextUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAIxF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0FAA0F;IAC1F,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB,CACF,CAAC;CACH;AAWD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,4CAAmD,CAAC;AAExF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,iDAAwD,CAAC;AAElG;;;;;;;;;;;;GAYG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,aAAa,EACzE,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,CAAC,SAAS,kBAAkB,CAAC,0BAA0B,CAAC,EACxD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BvE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,uBAAuB,CAC3C,CAAC,SAAS,kBAAkB,CAAC,0BAA0B,CAAC,EACxD,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAyBvE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAChE,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kCAAkC,CACtD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAalB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "forge-sql-orm",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.9",
|
|
4
4
|
"description": "Drizzle ORM integration for Atlassian @forge/sql. Provides a custom driver, schema migration, two levels of caching (local and global via @forge/kvs), optimistic locking, and query analysis.",
|
|
5
5
|
"main": "dist/ForgeSQLORM.js",
|
|
6
6
|
"module": "dist/ForgeSQLORM.mjs",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"ts-node": "^10.9.2",
|
|
49
49
|
"typescript": "^5.9.3",
|
|
50
50
|
"uuid": "^13.0.0",
|
|
51
|
-
"vite": "^7.1.
|
|
51
|
+
"vite": "^7.1.9",
|
|
52
52
|
"vitest": "^3.2.4"
|
|
53
53
|
},
|
|
54
54
|
"license": "MIT",
|
|
@@ -35,6 +35,15 @@ export interface LocalCacheApplicationContext {
|
|
|
35
35
|
>;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
function isQuery(obj: any): obj is Query {
|
|
39
|
+
return (
|
|
40
|
+
typeof obj === "object" &&
|
|
41
|
+
obj !== null &&
|
|
42
|
+
typeof obj.sql === "string" &&
|
|
43
|
+
Array.isArray(obj.params)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
38
47
|
/**
|
|
39
48
|
* AsyncLocalStorage instance for managing cache context across async operations.
|
|
40
49
|
* This allows tracking which tables are being processed within a cache context
|
|
@@ -96,7 +105,13 @@ export async function saveQueryLocalCacheQuery<
|
|
|
96
105
|
if (!context.cache) {
|
|
97
106
|
context.cache = {};
|
|
98
107
|
}
|
|
99
|
-
|
|
108
|
+
let sql: { toSQL: () => Query };
|
|
109
|
+
if (isQuery(query)) {
|
|
110
|
+
sql = { toSQL: () => query };
|
|
111
|
+
} else {
|
|
112
|
+
sql = query as { toSQL: () => Query };
|
|
113
|
+
}
|
|
114
|
+
|
|
100
115
|
const key = hashKey(sql.toSQL());
|
|
101
116
|
context.cache[key] = {
|
|
102
117
|
sql: sql.toSQL().sql.toLowerCase(),
|
|
@@ -138,7 +153,12 @@ export async function getQueryLocalCacheQuery<
|
|
|
138
153
|
if (!context.cache) {
|
|
139
154
|
context.cache = {};
|
|
140
155
|
}
|
|
141
|
-
|
|
156
|
+
let sql: { toSQL: () => Query };
|
|
157
|
+
if (isQuery(query)) {
|
|
158
|
+
sql = { toSQL: () => query };
|
|
159
|
+
} else {
|
|
160
|
+
sql = query as { toSQL: () => Query };
|
|
161
|
+
}
|
|
142
162
|
const key = hashKey(sql.toSQL());
|
|
143
163
|
if (context.cache[key] && context.cache[key].sql === sql.toSQL().sql.toLowerCase()) {
|
|
144
164
|
if (options.logCache) {
|
package/src/utils/forgeDriver.ts
CHANGED
|
@@ -151,15 +151,15 @@ async function processExecuteMethod(query: string, params: unknown[]): Promise<F
|
|
|
151
151
|
const result = await withTimeout(sqlStatement.execute());
|
|
152
152
|
await saveMetaDataToContext(result.metadata as ForgeSQLMetadata);
|
|
153
153
|
if (!result?.rows) {
|
|
154
|
-
return { rows: [] };
|
|
154
|
+
return { rows: [[]] };
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
if (isUpdateQueryResponse(result.rows)) {
|
|
158
158
|
const oneRow = result.rows as any;
|
|
159
|
-
return {
|
|
159
|
+
return { rows: [oneRow] };
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
return { rows: result.rows };
|
|
162
|
+
return { rows: [result.rows] };
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
/**
|