forge-sql-orm 2.0.30 → 2.1.0
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/README.md +1090 -81
- package/dist/ForgeSQLORM.js +1080 -60
- package/dist/ForgeSQLORM.js.map +1 -1
- package/dist/ForgeSQLORM.mjs +1063 -60
- package/dist/ForgeSQLORM.mjs.map +1 -1
- package/dist/core/ForgeSQLAnalyseOperations.d.ts +1 -1
- package/dist/core/ForgeSQLAnalyseOperations.d.ts.map +1 -1
- package/dist/core/ForgeSQLCacheOperations.d.ts +119 -0
- package/dist/core/ForgeSQLCacheOperations.d.ts.map +1 -0
- package/dist/core/ForgeSQLCrudOperations.d.ts +38 -22
- package/dist/core/ForgeSQLCrudOperations.d.ts.map +1 -1
- package/dist/core/ForgeSQLORM.d.ts +104 -13
- package/dist/core/ForgeSQLORM.d.ts.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.d.ts +243 -15
- package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/drizzle/extensions/additionalActions.d.ts +42 -0
- package/dist/lib/drizzle/extensions/additionalActions.d.ts.map +1 -0
- package/dist/utils/cacheContextUtils.d.ts +123 -0
- package/dist/utils/cacheContextUtils.d.ts.map +1 -0
- package/dist/utils/cacheUtils.d.ts +56 -0
- package/dist/utils/cacheUtils.d.ts.map +1 -0
- package/dist/utils/sqlUtils.d.ts +8 -0
- package/dist/utils/sqlUtils.d.ts.map +1 -1
- package/dist/webtriggers/clearCacheSchedulerTrigger.d.ts +46 -0
- package/dist/webtriggers/clearCacheSchedulerTrigger.d.ts.map +1 -0
- package/dist/webtriggers/index.d.ts +1 -0
- package/dist/webtriggers/index.d.ts.map +1 -1
- package/package.json +15 -12
- package/src/core/ForgeSQLAnalyseOperations.ts +1 -1
- package/src/core/ForgeSQLCacheOperations.ts +195 -0
- package/src/core/ForgeSQLCrudOperations.ts +49 -40
- package/src/core/ForgeSQLORM.ts +443 -34
- package/src/core/ForgeSQLQueryBuilder.ts +291 -20
- package/src/index.ts +1 -1
- package/src/lib/drizzle/extensions/additionalActions.ts +548 -0
- package/src/lib/drizzle/extensions/types.d.ts +68 -10
- package/src/utils/cacheContextUtils.ts +210 -0
- package/src/utils/cacheUtils.ts +403 -0
- package/src/utils/sqlUtils.ts +16 -0
- package/src/webtriggers/clearCacheSchedulerTrigger.ts +79 -0
- package/src/webtriggers/index.ts +1 -0
- package/dist/lib/drizzle/extensions/selectAliased.d.ts +0 -9
- package/dist/lib/drizzle/extensions/selectAliased.d.ts.map +0 -1
- package/src/lib/drizzle/extensions/selectAliased.ts +0 -72
package/src/webtriggers/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./dropMigrationWebTrigger";
|
|
|
2
2
|
export * from "./applyMigrationsWebTrigger";
|
|
3
3
|
export * from "./fetchSchemaWebTrigger";
|
|
4
4
|
export * from "./dropTablesMigrationWebTrigger";
|
|
5
|
+
export * from "./clearCacheSchedulerTrigger";
|
|
5
6
|
|
|
6
7
|
export interface TriggerResponse<BODY> {
|
|
7
8
|
body?: BODY;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { MySqlRemoteDatabase } from "drizzle-orm/mysql-proxy";
|
|
2
|
-
import type { SelectedFields } from "drizzle-orm/mysql-core/query-builders/select.types";
|
|
3
|
-
import { MySqlSelectBuilder } from "drizzle-orm/mysql-core";
|
|
4
|
-
import { MySqlRemotePreparedQueryHKT } from "drizzle-orm/mysql-proxy";
|
|
5
|
-
export declare function patchDbWithSelectAliased(db: MySqlRemoteDatabase<any>): MySqlRemoteDatabase<any> & {
|
|
6
|
-
selectAliased: <TSelection extends SelectedFields>(fields: TSelection) => MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
7
|
-
selectAliasedDistinct: <TSelection extends SelectedFields>(fields: TSelection) => MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=selectAliased.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selectAliased.d.ts","sourceRoot":"","sources":["../../../../src/lib/drizzle/extensions/selectAliased.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAkDtE,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG;IACjG,aAAa,EAAE,CAAC,UAAU,SAAS,cAAc,EAC/C,MAAM,EAAE,UAAU,KACf,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;IACjE,qBAAqB,EAAE,CAAC,UAAU,SAAS,cAAc,EACvD,MAAM,EAAE,UAAU,KACf,kBAAkB,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;CAClE,CAUA"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { MySqlRemoteDatabase } from "drizzle-orm/mysql-proxy";
|
|
2
|
-
import type { SelectedFields } from "drizzle-orm/mysql-core/query-builders/select.types";
|
|
3
|
-
import { applyFromDriverTransform, mapSelectFieldsWithAlias } from "../../..";
|
|
4
|
-
import { MySqlSelectBuilder } from "drizzle-orm/mysql-core";
|
|
5
|
-
import { MySqlRemotePreparedQueryHKT } from "drizzle-orm/mysql-proxy";
|
|
6
|
-
|
|
7
|
-
function createAliasedSelectBuilder<TSelection extends SelectedFields>(
|
|
8
|
-
db: MySqlRemoteDatabase<any>,
|
|
9
|
-
fields: TSelection,
|
|
10
|
-
selectFn: (selections: any) => MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>,
|
|
11
|
-
): MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT> {
|
|
12
|
-
const { selections, aliasMap } = mapSelectFieldsWithAlias(fields);
|
|
13
|
-
const builder = selectFn(selections);
|
|
14
|
-
|
|
15
|
-
const wrapBuilder = (rawBuilder: any): any => {
|
|
16
|
-
return new Proxy(rawBuilder, {
|
|
17
|
-
get(target, prop, receiver) {
|
|
18
|
-
if (prop === "execute") {
|
|
19
|
-
return async (...args: any[]) => {
|
|
20
|
-
const rows = await target.execute(...args);
|
|
21
|
-
return applyFromDriverTransform(rows, selections, aliasMap);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (prop === "then") {
|
|
26
|
-
return (onfulfilled: any, onrejected: any) =>
|
|
27
|
-
target.execute().then((rows: unknown[]) => {
|
|
28
|
-
const transformed = applyFromDriverTransform(rows, selections, aliasMap);
|
|
29
|
-
return onfulfilled?.(transformed);
|
|
30
|
-
}, onrejected);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const value = Reflect.get(target, prop, receiver);
|
|
34
|
-
|
|
35
|
-
if (typeof value === "function") {
|
|
36
|
-
return (...args: any[]) => {
|
|
37
|
-
const result = value.apply(target, args);
|
|
38
|
-
|
|
39
|
-
if (typeof result === "object" && result !== null && "execute" in result) {
|
|
40
|
-
return wrapBuilder(result);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return value;
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
return wrapBuilder(builder);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function patchDbWithSelectAliased(db: MySqlRemoteDatabase<any>): MySqlRemoteDatabase<any> & {
|
|
56
|
-
selectAliased: <TSelection extends SelectedFields>(
|
|
57
|
-
fields: TSelection,
|
|
58
|
-
) => MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
59
|
-
selectAliasedDistinct: <TSelection extends SelectedFields>(
|
|
60
|
-
fields: TSelection,
|
|
61
|
-
) => MySqlSelectBuilder<TSelection, MySqlRemotePreparedQueryHKT>;
|
|
62
|
-
} {
|
|
63
|
-
db.selectAliased = function <TSelection extends SelectedFields>(fields: TSelection) {
|
|
64
|
-
return createAliasedSelectBuilder(db, fields, (selections) => db.select(selections));
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
db.selectAliasedDistinct = function <TSelection extends SelectedFields>(fields: TSelection) {
|
|
68
|
-
return createAliasedSelectBuilder(db, fields, (selections) => db.selectDistinct(selections));
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
return db;
|
|
72
|
-
}
|