prostgles-server 4.2.599 → 4.2.600
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 +26 -0
- package/dist/DBSchemaBuilder/getServerFunctionReturnTypes.external.fixture.d.ts +2 -2
- package/dist/DBSchemaBuilder/getServerFunctionReturnTypes.fixture.d.ts +8 -8
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts +8 -5
- package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/TableHandler.js +1 -0
- package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/delete.js +1 -0
- package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js +2 -0
- package/dist/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +2 -2
- package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/ViewHandler.js.map +1 -1
- package/dist/Prostgles.d.ts +13 -8
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +57 -4
- package/dist/Prostgles.js.map +1 -1
- package/dist/ProstglesContext.spec.d.ts +2 -0
- package/dist/ProstglesContext.spec.d.ts.map +1 -0
- package/dist/ProstglesContext.spec.js +73 -0
- package/dist/ProstglesContext.spec.js.map +1 -0
- package/dist/ProstglesTypes.d.ts +11 -5
- package/dist/ProstglesTypes.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.d.ts +2 -2
- package/dist/PublishParser/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser/PublishParser.js +2 -0
- package/dist/PublishParser/PublishParser.js.map +1 -1
- package/dist/PublishParser/defineServerFunction.d.ts +21 -16
- package/dist/PublishParser/defineServerFunction.d.ts.map +1 -1
- package/dist/PublishParser/defineServerFunction.js +7 -1
- package/dist/PublishParser/defineServerFunction.js.map +1 -1
- package/dist/PublishParser/defineServerFunction.spec.js +38 -0
- package/dist/PublishParser/defineServerFunction.spec.js.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.d.ts +6 -3
- package/dist/PublishParser/publishTypesAndUtils.d.ts.map +1 -1
- package/dist/PublishParser/publishTypesAndUtils.js.map +1 -1
- package/dist/StorageClient/getFileTableConfig.d.ts +1 -1
- package/dist/StorageClient/getFileTableConfig.d.ts.map +1 -1
- package/dist/StorageClient/getFileTableConfig.js.map +1 -1
- package/dist/TableConfig/TableConfigTypes.d.ts.map +1 -1
- package/dist/TableConfig/initTableConfig.js +3 -3
- package/dist/TableHooks/TableHooks.d.ts +26 -20
- package/dist/TableHooks/TableHooks.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/initProstgles.d.ts +22 -13
- package/dist/initProstgles.d.ts.map +1 -1
- package/dist/initProstgles.js +11 -2
- package/dist/initProstgles.js.map +1 -1
- package/dist/updateConfiguration.d.ts +1 -1
- package/dist/updateConfiguration.d.ts.map +1 -1
- package/dist/updateConfiguration.js.map +1 -1
- package/lib/DboBuilder/TableHandler/TableHandler.ts +2 -1
- package/lib/DboBuilder/TableHandler/delete.ts +1 -0
- package/lib/DboBuilder/TableHandler/executeAfterHooksCheckAndPostValidation.ts +2 -0
- package/lib/DboBuilder/ViewHandler/ViewHandler.ts +2 -2
- package/lib/Prostgles.ts +63 -8
- package/lib/ProstglesContext.spec.ts +76 -0
- package/lib/ProstglesTypes.ts +16 -5
- package/lib/PublishParser/PublishParser.ts +6 -4
- package/lib/PublishParser/defineServerFunction.spec.ts +48 -0
- package/lib/PublishParser/defineServerFunction.ts +61 -21
- package/lib/PublishParser/publishTypesAndUtils.ts +6 -3
- package/lib/StorageClient/getFileTableConfig.ts +2 -2
- package/lib/TableConfig/TableConfigTypes.ts +2 -13
- package/lib/TableConfig/initTableConfig.ts +3 -3
- package/lib/TableHooks/TableHooks.ts +33 -20
- package/lib/index.ts +25 -5
- package/lib/initProstgles.ts +57 -19
- package/lib/updateConfiguration.ts +1 -1
- package/package.json +1 -1
- package/tsconfig.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableConfigTypes.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfigTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableConfigTypes.d.ts","sourceRoot":"","sources":["../../lib/TableConfig/TableConfigTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ const initTableConfig = async function () {
|
|
|
126
126
|
}
|
|
127
127
|
if (queries.length) {
|
|
128
128
|
await runQueries(queries);
|
|
129
|
-
await this.prostgles.
|
|
129
|
+
await this.prostgles.rebuildDBO();
|
|
130
130
|
}
|
|
131
131
|
/* Create/Alter columns */
|
|
132
132
|
for (const [tableName, tableConf] of Object.entries(this.config)) {
|
|
@@ -288,10 +288,10 @@ const initTableConfig = async function () {
|
|
|
288
288
|
if (failedQueries.length) {
|
|
289
289
|
console.error("Table config failed queries: ", failedQueries);
|
|
290
290
|
}
|
|
291
|
-
await this.prostgles.
|
|
291
|
+
await this.prostgles.rebuildDBO();
|
|
292
292
|
await this.setTableOnMounts();
|
|
293
293
|
/** Needed in case some onMounts change schema */
|
|
294
|
-
await this.prostgles.
|
|
294
|
+
await this.prostgles.rebuildDBO();
|
|
295
295
|
};
|
|
296
296
|
exports.initTableConfig = initTableConfig;
|
|
297
297
|
//# sourceMappingURL=initTableConfig.js.map
|
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
2
|
import type { AnyObject, DBSchema } from "prostgles-types";
|
|
3
|
-
import type { DbTxTableHandlers
|
|
3
|
+
import type { DbTxTableHandlers } from "../DboBuilder/DboBuilderTypes";
|
|
4
4
|
import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
5
|
-
import type { AfterAllTsTrigger, AfterEachTsTrigger, BeforeEachTsTrigger
|
|
6
|
-
export type TableHooks<S = void> = S extends DBSchema ? Partial<{
|
|
7
|
-
[tableName in keyof S]: TableHooksDefinition<Required<S[tableName]["columns"]>, DBOFullyTyped<S
|
|
8
|
-
}> : Record<string, TableHooksDefinition
|
|
9
|
-
export type TableHooksDefinition<
|
|
5
|
+
import type { AfterAllTsTrigger, AfterEachTsTrigger, BeforeEachTsTrigger } from "../PublishParser/PublishParser";
|
|
6
|
+
export type TableHooks<S = void, Context = undefined> = S extends DBSchema ? Partial<{
|
|
7
|
+
[tableName in keyof S]: TableHooksDefinition<Required<S[tableName]["columns"]>, DBOFullyTyped<S>, Context>;
|
|
8
|
+
}> : Record<string, TableHooksDefinition<AnyObject, DbTxTableHandlers, Context>>;
|
|
9
|
+
export type TableHooksDefinition<RowDataType = AnyObject, DBX = DbTxTableHandlers, Context = undefined> = {
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Runs sequentially before validation and SQL for each insert row, or once per update request.
|
|
12
|
+
* May replace the pending data and pass `hookContext` to the next hook.
|
|
13
|
+
* `onInserted` also runs for updates, is not awaited, and runs before the transaction commits.
|
|
14
|
+
*/
|
|
15
|
+
beforeEach?: BeforeEachTsTrigger<RowDataType, DBX, Context>[];
|
|
16
|
+
/**
|
|
17
|
+
* Runs once per affected row after SQL, inside the same transaction.
|
|
18
|
+
* `row` is the inserted/updated row or the deleted row's pre-delete state. Throwing rolls back.
|
|
19
|
+
*/
|
|
20
|
+
afterEach?: AfterEachTsTrigger<RowDataType, DBX, Context>[];
|
|
21
|
+
/**
|
|
22
|
+
* Runs once after all applicable `afterEach` hooks, inside the same transaction.
|
|
23
|
+
* Receives all affected `rows`; throwing rolls back the operation.
|
|
24
|
+
* Same-table, same-command writes from after-hooks do not retrigger after-hooks.
|
|
25
|
+
*/
|
|
26
|
+
afterAll?: AfterAllTsTrigger<RowDataType, DBX, Context>[];
|
|
27
|
+
/**
|
|
28
|
+
* Replaces the generated DELETE. Must perform the mutation and shape its return value using
|
|
29
|
+
* the prepared filter and returning arguments. Delete `afterEach`/`afterAll` hooks do not run.
|
|
13
30
|
*/
|
|
14
|
-
getPreInsertRow?: (args: PreInsertRowArgs) => Promise<{
|
|
15
|
-
row: AnyObject;
|
|
16
|
-
onInserted: Promise<void>;
|
|
17
|
-
}>;
|
|
18
|
-
beforeEach?: BeforeEachTsTrigger<R, DBX>[];
|
|
19
|
-
afterEach?: AfterEachTsTrigger<R, DBX>[];
|
|
20
|
-
afterAll?: AfterAllTsTrigger<R, DBX>[];
|
|
21
31
|
onInsteadOfDelete?: (args: {
|
|
32
|
+
context: Context;
|
|
22
33
|
dbx: DBX;
|
|
23
34
|
tx: pgPromise.ITask<{}>;
|
|
24
35
|
returningQuery: string;
|
|
@@ -30,9 +41,4 @@ export type TableHooksDefinition<R = AnyObject, DBX = DbTxTableHandlers> = {
|
|
|
30
41
|
};
|
|
31
42
|
}) => Promise<AnyObject[] | undefined>;
|
|
32
43
|
};
|
|
33
|
-
type PreInsertRowArgs = Omit<ValidateRowArgsCommon, "localParams"> & {
|
|
34
|
-
validate: InsertRule["validate"];
|
|
35
|
-
localParams: LocalParams | undefined;
|
|
36
|
-
};
|
|
37
|
-
export {};
|
|
38
44
|
//# sourceMappingURL=TableHooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHooks.d.ts","sourceRoot":"","sources":["../../lib/TableHooks/TableHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"TableHooks.d.ts","sourceRoot":"","sources":["../../lib/TableHooks/TableHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,GAAG,SAAS,IAClD,CAAC,SAAS,QAAQ,GAChB,OAAO,CAAC;KACL,SAAS,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAC1C,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,EACjC,aAAa,CAAC,CAAC,CAAC,EAChB,OAAO,CACR;CACF,CAAC,GACF,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhF,MAAM,MAAM,oBAAoB,CAC9B,WAAW,GAAG,SAAS,EACvB,GAAG,GAAG,iBAAiB,EACvB,OAAO,GAAG,SAAS,IACjB;IACF;;;;OAIG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE9D;;;OAGG;IACH,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE5D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE1D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,GAAG,CAAC;QACT,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;QAC1B,UAAU,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,SAAS,CAAC;SACnB,CAAC;KACH,KAAK,OAAO,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;CACxC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { SessionUser } from "./Auth/AuthTypes";
|
|
2
2
|
import type { InitResult } from "./initProstgles";
|
|
3
3
|
import type { ProstglesInitOptions } from "./ProstglesTypes";
|
|
4
|
-
declare function prostgles<S = void, SUser extends SessionUser = SessionUser>(params: ProstglesInitOptions<S, SUser>): Promise<InitResult<S, SUser>>;
|
|
4
|
+
declare function prostgles<S = void, SUser extends SessionUser = SessionUser, Context = undefined>(params: ProstglesInitOptions<S, SUser, Context>): Promise<InitResult<S, SUser, Context>>;
|
|
5
|
+
/** Creates a schema-bound Prostgles initializer while allowing context inference. */
|
|
6
|
+
export declare const createProstgles: <S = void, SUser extends SessionUser = SessionUser>() => <Context = undefined>(params: ProstglesInitOptions<S, SUser, Context>) => Promise<InitResult<S, SUser, Context>>;
|
|
5
7
|
export * from "./PublishParser/defineServerFunction";
|
|
6
8
|
export * from "./Auth/AuthTypes";
|
|
7
9
|
export type { PublishParams } from "./PublishParser/publishTypesAndUtils";
|
|
@@ -9,7 +11,8 @@ export type { DBOFullyTyped } from "./DBSchemaBuilder/DBSchemaBuilder";
|
|
|
9
11
|
export type { DBHandlerServer } from "./Prostgles";
|
|
10
12
|
export type { StorageClient as CloudClient } from "./StorageClient/StorageClientTypes";
|
|
11
13
|
export * from "./StorageClient/getLocalStorageClient";
|
|
12
|
-
export type { DB } from "./initProstgles";
|
|
14
|
+
export type { ContextCleanup, CreateContext, CreateContextParams, DB, InitResult, OnReadyParams, } from "./initProstgles";
|
|
15
|
+
export type { ProstglesInitOptions } from "./ProstglesTypes";
|
|
13
16
|
export type * from "./TableConfig/TableConfigTypes";
|
|
14
17
|
export type * from "./TableHooks/TableHooks";
|
|
15
18
|
export * from "./Auth/utils/upsertNamedExpressMiddleware";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,iBAAS,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,iBAAS,SAAS,CAChB,CAAC,GAAG,IAAI,EACR,KAAK,SAAS,WAAW,GAAG,WAAW,EACvC,OAAO,GAAG,SAAS,EAEnB,MAAM,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAO9B,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CACxD;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,IAAI,EAAE,KAAK,SAAS,WAAW,GAAG,WAAW,QACvE,OAAO,GAAG,SAAS,EAAE,QAAQ,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,2CAE7E,CAAC;AACF,cAAc,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACvF,cAAc,uCAAuC,CAAC;AACtD,YAAY,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,EAAE,EACF,UAAU,EACV,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,yBAAyB,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,eAAe,SAAS,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.createProstgles = void 0;
|
|
17
18
|
const Prostgles_1 = require("./Prostgles");
|
|
18
19
|
function prostgles(params) {
|
|
19
20
|
const prgl = new Prostgles_1.Prostgles(params);
|
|
@@ -21,6 +22,11 @@ function prostgles(params) {
|
|
|
21
22
|
type: "init",
|
|
22
23
|
});
|
|
23
24
|
}
|
|
25
|
+
/** Creates a schema-bound Prostgles initializer while allowing context inference. */
|
|
26
|
+
const createProstgles = () => {
|
|
27
|
+
return (params) => prostgles(params);
|
|
28
|
+
};
|
|
29
|
+
exports.createProstgles = createProstgles;
|
|
24
30
|
__exportStar(require("./PublishParser/defineServerFunction"), exports);
|
|
25
31
|
__exportStar(require("./Auth/AuthTypes"), exports);
|
|
26
32
|
__exportStar(require("./StorageClient/getLocalStorageClient"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAwC;AAGxC,SAAS,SAAS,CAKhB,MAA+C;IAE/C,MAAM,IAAI,GAAG,IAAI,qBAAS,CACxB,MAAiE,CAClE,CAAC;IACF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAA0C,EAAE;QAClE,IAAI,EAAE,MAAM;KACb,CAAsD,CAAC;AAC1D,CAAC;AAED,qFAAqF;AAC9E,MAAM,eAAe,GAAG,GAAsD,EAAE;IACrF,OAAO,CAAsB,MAA+C,EAAE,EAAE,CAC9E,SAAS,CAAoB,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,eAAe,mBAG1B;AACF,uEAAqD;AACrD,mDAAiC;AAKjC,wEAAsD;AAYtD,4EAA0D;AAE1D,kBAAe,SAAS,CAAC"}
|
package/dist/initProstgles.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
2
|
import type pg from "pg-promise/typescript/pg-subset";
|
|
3
|
-
import type { SQLHandler, TableSchema } from "prostgles-types";
|
|
3
|
+
import type { MaybePromise, SQLHandler, TableSchema } from "prostgles-types";
|
|
4
4
|
import type { AuthClientRequest, SessionUser } from "./Auth/AuthTypes";
|
|
5
5
|
import type { DboBuilder } from "./DboBuilder/DboBuilder";
|
|
6
6
|
import type { DBOFullyTyped } from "./DBSchemaBuilder/DBSchemaBuilder";
|
|
@@ -20,16 +20,16 @@ string | pg.IConnectionParameters<pg.IClient>;
|
|
|
20
20
|
export type DbConnectionOpts = pg.IDefaults;
|
|
21
21
|
export type PGP = pgPromise.IMain<{}, pg.IClient>;
|
|
22
22
|
export type DB = pgPromise.IDatabase<{}, pg.IClient>;
|
|
23
|
-
export type UpdatableOptions<S = void, SUser extends SessionUser = SessionUser> = Pick<ProstglesInitOptions<S, SUser>, "io" | "fileTable" | "restApi" | "tableHooks" | "tableConfig" | "schemaFilter" | "auth" | "publish" | "functions" | "publishRawSQL" | "tsGeneratedTypesDir" | "tsGeneratedTypesFunctionsPath" | "modifyClientSchema">;
|
|
23
|
+
export type UpdatableOptions<S = void, SUser extends SessionUser = SessionUser, Context = undefined> = Pick<ProstglesInitOptions<S, SUser, Context>, "io" | "fileTable" | "restApi" | "tableHooks" | "tableConfig" | "schemaFilter" | "auth" | "publish" | "functions" | "publishRawSQL" | "tsGeneratedTypesDir" | "tsGeneratedTypesFunctionsPath" | "modifyClientSchema" | "createContext">;
|
|
24
24
|
export type OnInitReason = {
|
|
25
25
|
type: "schema change";
|
|
26
26
|
query: string;
|
|
27
27
|
command: string | undefined;
|
|
28
28
|
} | {
|
|
29
29
|
type: "prgl.update";
|
|
30
|
-
newOpts: Omit<UpdatableOptions, (typeof clientOnlyUpdateKeys)[number]>;
|
|
30
|
+
newOpts: Omit<UpdatableOptions<void, SessionUser, any>, (typeof clientOnlyUpdateKeys)[number]>;
|
|
31
31
|
} | {
|
|
32
|
-
type: "init" | "prgl.restart" | "TableConfig";
|
|
32
|
+
type: "init" | "prgl.restart" | "TableConfig" | "dbo.refresh";
|
|
33
33
|
};
|
|
34
34
|
type OnReadyParamsCommon = {
|
|
35
35
|
db: DB;
|
|
@@ -39,18 +39,27 @@ type OnReadyParamsCommon = {
|
|
|
39
39
|
};
|
|
40
40
|
export type OnReadyParamsBasic = OnReadyParamsCommon & {
|
|
41
41
|
dbo: DBHandlerServer;
|
|
42
|
+
context: any;
|
|
42
43
|
};
|
|
43
|
-
export type OnReadyParams<S> = OnReadyParamsCommon & {
|
|
44
|
+
export type OnReadyParams<S, Context = undefined> = OnReadyParamsCommon & {
|
|
44
45
|
dbo: DBOFullyTyped<S>;
|
|
46
|
+
context: Context;
|
|
45
47
|
};
|
|
46
|
-
export type
|
|
47
|
-
export type
|
|
48
|
-
|
|
48
|
+
export type ContextCleanup = () => MaybePromise<void>;
|
|
49
|
+
export type CreateContextParams<S> = OnReadyParamsCommon & {
|
|
50
|
+
dbo: DBOFullyTyped<S>;
|
|
51
|
+
onCleanup: (cleanup: ContextCleanup) => void;
|
|
52
|
+
};
|
|
53
|
+
export type CreateContext<S, Context> = (params: CreateContextParams<S>) => MaybePromise<Context>;
|
|
54
|
+
export type OnReadyCallback<S, SUser extends SessionUser, Context = undefined> = (params: OnReadyParams<S, Context>, update: (newOpts: UpdatableOptions<S, SUser, Context>, force?: true) => Promise<void>) => void | Promise<void>;
|
|
55
|
+
export type OnReadyCallbackBasic = (params: OnReadyParamsBasic, update: (newOpts: UpdatableOptions<void, SessionUser, any>, force?: true) => Promise<void>) => void | Promise<void>;
|
|
56
|
+
export type InitResult<S = void, SUser extends SessionUser = SessionUser, Context = undefined> = {
|
|
49
57
|
db: DBOFullyTyped<S>;
|
|
58
|
+
context: Context;
|
|
50
59
|
sql: SQLHandler;
|
|
51
60
|
_db: DB;
|
|
52
61
|
pgp: PGP;
|
|
53
|
-
io: ProstglesInitOptions<S, SUser>["io"];
|
|
62
|
+
io: ProstglesInitOptions<S, SUser, Context>["io"];
|
|
54
63
|
destroy: () => Promise<boolean>;
|
|
55
64
|
/**
|
|
56
65
|
* Generated database public schema TS types for all tables and views
|
|
@@ -58,12 +67,12 @@ export type InitResult<S = void, SUser extends SessionUser = SessionUser> = {
|
|
|
58
67
|
getTSSchema: typeof DboBuilder.prototype.getTsDefinitions;
|
|
59
68
|
getSchema: typeof DboBuilder.prototype.getSchema;
|
|
60
69
|
reWriteDBSchema: () => void;
|
|
61
|
-
update: (newOpts: UpdatableOptions<S, SUser>, force?: true) => Promise<void>;
|
|
62
|
-
restart: () => Promise<InitResult<S, SUser>>;
|
|
63
|
-
options: ProstglesInitOptions<S, SUser>;
|
|
70
|
+
update: (newOpts: UpdatableOptions<S, SUser, Context>, force?: true) => Promise<void>;
|
|
71
|
+
restart: () => Promise<InitResult<S, SUser, Context>>;
|
|
72
|
+
options: ProstglesInitOptions<S, SUser, Context>;
|
|
64
73
|
getClientDBHandlers: (clientReq: AuthClientRequest, scope: PermissionScope | undefined) => ReturnType<typeof getClientHandlers<S>>;
|
|
65
74
|
getFieldsWithTypes: typeof DboBuilder.prototype.getDetailedFieldInfo;
|
|
66
75
|
};
|
|
67
|
-
export declare const initProstgles: (this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason) => Promise<InitResult
|
|
76
|
+
export declare const initProstgles: (this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason) => Promise<InitResult<void, SessionUser, any>>;
|
|
68
77
|
export {};
|
|
69
78
|
//# sourceMappingURL=initProstgles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"initProstgles.d.ts","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
|
package/dist/initProstgles.js
CHANGED
|
@@ -81,11 +81,13 @@ const initProstgles = async function (onReady, reason) {
|
|
|
81
81
|
const db = this.db;
|
|
82
82
|
const pgp = this.pgp;
|
|
83
83
|
try {
|
|
84
|
+
await this.cleanupContext();
|
|
84
85
|
/* 2. Execute any SQL file if provided */
|
|
85
86
|
await (0, runSQLFile_1.runSQLFile)(this);
|
|
86
|
-
await this.
|
|
87
|
+
await this.rebuildDBO();
|
|
87
88
|
await this.initTableConfig(reason);
|
|
88
|
-
await this.
|
|
89
|
+
await this.rebuildDBO();
|
|
90
|
+
await this.createContext(reason);
|
|
89
91
|
this.initRestApi();
|
|
90
92
|
this.schemaWatch = await SchemaWatch_1.SchemaWatch.create(this.dboBuilder);
|
|
91
93
|
if (this.opts.publish) {
|
|
@@ -115,6 +117,7 @@ const initProstgles = async function (onReady, reason) {
|
|
|
115
117
|
db: this.db,
|
|
116
118
|
tables: this.dboBuilder.tables,
|
|
117
119
|
reason,
|
|
120
|
+
context: this.context,
|
|
118
121
|
}, async (...args) => {
|
|
119
122
|
await (0, updateConfiguration_1.updateConfiguration)(this, onReady, ...args);
|
|
120
123
|
});
|
|
@@ -123,8 +126,12 @@ const initProstgles = async function (onReady, reason) {
|
|
|
123
126
|
console.error("Prostgles: Error within onReady: \n", err);
|
|
124
127
|
}
|
|
125
128
|
this.loaded = true;
|
|
129
|
+
const getContext = () => this.context;
|
|
126
130
|
const initResult = {
|
|
127
131
|
db: this.dbo,
|
|
132
|
+
get context() {
|
|
133
|
+
return getContext();
|
|
134
|
+
},
|
|
128
135
|
sql: this.dboBuilder.sql,
|
|
129
136
|
_db: db,
|
|
130
137
|
pgp,
|
|
@@ -155,6 +162,7 @@ const initProstgles = async function (onReady, reason) {
|
|
|
155
162
|
this.opts.io.engine.close();
|
|
156
163
|
}
|
|
157
164
|
}
|
|
165
|
+
await this.cleanupContext();
|
|
158
166
|
await this.dboBuilder.destroy();
|
|
159
167
|
this.authHandler.destroy();
|
|
160
168
|
await this.tableConfigurator?.destroy();
|
|
@@ -171,6 +179,7 @@ const initProstgles = async function (onReady, reason) {
|
|
|
171
179
|
return initResult;
|
|
172
180
|
}
|
|
173
181
|
catch (e) {
|
|
182
|
+
await this.cleanupContext();
|
|
174
183
|
console.trace(e);
|
|
175
184
|
throw "init issues: " + e.toString();
|
|
176
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":";;;AAIA,wEAA0E;AAC1E,uDAAoD;AAGpD,uDAAoD;AAEpD,2CAA6C;AAE7C,iEAAoF;AACpF,2DAAwD;AACxD,yDAAsD;AACtD,+DAAuF;AACvF,yCAAsC;AACtC,wEAAqE;AACrE,uEAAoE;
|
|
1
|
+
{"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":";;;AAIA,wEAA0E;AAC1E,uDAAoD;AAGpD,uDAAoD;AAEpD,2CAA6C;AAE7C,iEAAoF;AACpF,2DAAwD;AACxD,yDAAsD;AACtD,+DAAuF;AACvF,yCAAsC;AACtC,wEAAqE;AACrE,uEAAoE;AAuH7D,MAAM,aAAa,GAAG,KAAK,WAEhC,OAA6B,EAC7B,MAAoB;IAEpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,MAAM,UAAU,GACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,CAAC;IAEzC,2EAA2E;IAC3E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAA,4CAAuB,EAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC/C,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;YACnD,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChC,eAAe;oBACb,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC9F,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GACV,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;YAC1C,EAAE,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3B,MAAM,gBAAgB,GAAG,aAAa,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;QAEtE,sBAAsB;QACtB,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAA,iCAAe,EAAC;YAClC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAC9C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,EAAE,GAAG,MAAM,EAAE,gBAAgB,EAAE;YAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;gBACnB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,CAAC,CAAC;QAE5C,0BAA0B;QAC1B,MAAM,EAAE;aACL,GAAG,CACF;;;;;;;;;OASD,EACC,CAAC,IAAI,CAAC,KAAK,CAAC,CACb;aACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,WAAW,GAAG,MAAM,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;IAEf,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAI,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,yCAAyC;QACzC,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,WAAW,GAAG,MAAM,yBAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAC1E,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAEnD,uCAAuC;YACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,2CAA2C,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,iCAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,2CAA2C;QAC3C,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,OAAO,CACV;gBACE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;gBACxB,GAAG,EAAE,IAAI,CAAC,GAAI;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,EACD,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;gBAChB,MAAM,IAAA,yCAAmB,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACpD,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QACtC,MAAM,UAAU,GAAuC;YACrD,EAAE,EAAE,IAAI,CAAC,GAAoB;YAC7B,IAAI,OAAO;gBACT,OAAO,UAAU,EAAE,CAAC;YACtB,CAAC;YACD,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG;YACxB,GAAG,EAAE,EAAE;YACP,GAAG;YACH,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YAChB,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;YAC7C,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;YACpC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAC/C,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;gBACxB,MAAM,IAAA,yCAAmB,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YACpD,CAAC;YACD,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,oBAAoB;YACxD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAC3D,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;wBACjC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;oBAEH,mDAAmD;oBACnD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBAC1D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;4BAC3D,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACtD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;gBACpB,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,mBAAmB,EAAE,CAAC,SAA4B,EAAE,KAAkC,EAAE,EAAE,CACxF,IAAA,qCAAiB,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;SAC5C,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,eAAe,GAAI,CAAW,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AAvMW,QAAA,aAAa,iBAuMxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { OnReadyCallbackBasic, UpdatableOptions } from "./initProstgles";
|
|
2
2
|
import type { Prostgles } from "./Prostgles";
|
|
3
|
-
export declare const updateConfiguration: (prgl: Prostgles, onReady: OnReadyCallbackBasic, newOpts: UpdatableOptions, force?: true) => Promise<void>;
|
|
3
|
+
export declare const updateConfiguration: (prgl: Prostgles, onReady: OnReadyCallbackBasic, newOpts: UpdatableOptions<void, any, any>, force?: true) => Promise<void>;
|
|
4
4
|
/**
|
|
5
5
|
* Changes that do not affect the server so onReady does not need to be called again
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateConfiguration.d.ts","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,SAAS,oBAAoB,EAC7B,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"updateConfiguration.d.ts","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,eAAO,MAAM,mBAAmB,GAC9B,MAAM,SAAS,EACf,SAAS,oBAAoB,EAC7B,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EACzC,QAAQ,IAAI,kBAoEb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,+EAOc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateConfiguration.js","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":";;;AAAA,qDAAiF;AAI1E,MAAM,mBAAmB,GAAG,KAAK,EACtC,IAAe,EACf,OAA6B,EAC7B,
|
|
1
|
+
{"version":3,"file":"updateConfiguration.js","sourceRoot":"","sources":["../lib/updateConfiguration.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ export class TableHandler extends ViewHandler {
|
|
|
63
63
|
tableOrViewInfo: TableSchema;
|
|
64
64
|
dboBuilder: DboBuilder;
|
|
65
65
|
config: TableDefinition<any> | undefined;
|
|
66
|
-
hooks: TableHooksDefinition | undefined;
|
|
66
|
+
hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
|
|
67
67
|
tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers };
|
|
68
68
|
joinPaths?: JoinPaths;
|
|
69
69
|
}) {
|
|
@@ -98,6 +98,7 @@ export class TableHandler extends ViewHandler {
|
|
|
98
98
|
if (!isApplicable) continue;
|
|
99
99
|
const hookResult = await hook.validate({
|
|
100
100
|
command,
|
|
101
|
+
context: this.dboBuilder.prostgles.context,
|
|
101
102
|
data: newRow,
|
|
102
103
|
dbx: this.getFinalDbo(localParams),
|
|
103
104
|
localParams,
|
|
@@ -69,6 +69,7 @@ export const executeAfterHooksCheckAndPostValidation = async ({
|
|
|
69
69
|
...txParams,
|
|
70
70
|
command,
|
|
71
71
|
data,
|
|
72
|
+
context: tableHandler.dboBuilder.prostgles.context,
|
|
72
73
|
} as const;
|
|
73
74
|
|
|
74
75
|
for (const hook of applicableHooks) {
|
|
@@ -121,6 +122,7 @@ export const executeAfterHooksCheckAndPostValidation = async ({
|
|
|
121
122
|
data: applicableData,
|
|
122
123
|
rows: applicableRows,
|
|
123
124
|
localParams,
|
|
125
|
+
context: tableHandler.dboBuilder.prostgles.context,
|
|
124
126
|
});
|
|
125
127
|
}
|
|
126
128
|
}
|
|
@@ -55,7 +55,7 @@ export class ViewHandler {
|
|
|
55
55
|
joinPaths?: JoinPaths;
|
|
56
56
|
dboBuilder: DboBuilder;
|
|
57
57
|
config: TableDefinition<any> | undefined;
|
|
58
|
-
hooks: TableHooksDefinition | undefined;
|
|
58
|
+
hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
|
|
59
59
|
|
|
60
60
|
tx?: {
|
|
61
61
|
t: pgPromise.ITask<{}>;
|
|
@@ -83,7 +83,7 @@ export class ViewHandler {
|
|
|
83
83
|
tableOrViewInfo: TableSchema;
|
|
84
84
|
dboBuilder: DboBuilder;
|
|
85
85
|
config: TableDefinition<any> | undefined;
|
|
86
|
-
hooks: TableHooksDefinition | undefined;
|
|
86
|
+
hooks: TableHooksDefinition<AnyObject, TableHandlers, any> | undefined;
|
|
87
87
|
tx?: { t: pgPromise.ITask<{}>; dbTX: TableHandlers };
|
|
88
88
|
joinPaths?: JoinPaths;
|
|
89
89
|
}) {
|
package/lib/Prostgles.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type pgPromise from "pg-promise";
|
|
2
2
|
import { AuthHandler } from "./Auth/AuthHandler";
|
|
3
|
-
import type {
|
|
3
|
+
import type { SessionUser } from "./Auth/AuthTypes";
|
|
4
|
+
import type { ContextCleanup, OnInitReason } from "./initProstgles";
|
|
4
5
|
import { initProstgles } from "./initProstgles";
|
|
5
6
|
import type { SchemaWatch } from "./SchemaWatch/SchemaWatch";
|
|
6
7
|
import { getClientSchema } from "./WebsocketAPI/getClientSchema";
|
|
@@ -68,7 +69,7 @@ export class Prostgles {
|
|
|
68
69
|
* Used to manage concurrent prostgles connections to the same database
|
|
69
70
|
*/
|
|
70
71
|
readonly appId = randomUUID();
|
|
71
|
-
opts: ProstglesInitOptions = {
|
|
72
|
+
opts: ProstglesInitOptions<void, SessionUser, any> = {
|
|
72
73
|
DEBUG_MODE: false,
|
|
73
74
|
dbConnection: {
|
|
74
75
|
host: "localhost",
|
|
@@ -121,8 +122,8 @@ export class Prostgles {
|
|
|
121
122
|
return this.opts.fileTable?.tableName === tableName;
|
|
122
123
|
}
|
|
123
124
|
|
|
124
|
-
constructor(params: ProstglesInitOptions) {
|
|
125
|
-
const config: Record<keyof ProstglesInitOptions, 1> = {
|
|
125
|
+
constructor(params: ProstglesInitOptions<void, SessionUser, any>) {
|
|
126
|
+
const config: Record<keyof ProstglesInitOptions<void, SessionUser, any>, 1> = {
|
|
126
127
|
transactions: 1,
|
|
127
128
|
joins: 1,
|
|
128
129
|
tsGeneratedTypesDir: 1,
|
|
@@ -153,6 +154,7 @@ export class Prostgles {
|
|
|
153
154
|
restApi: 1,
|
|
154
155
|
testRulesOnConnect: 1,
|
|
155
156
|
modifyClientSchema: 1,
|
|
157
|
+
createContext: 1,
|
|
156
158
|
};
|
|
157
159
|
const unknownParams = Object.keys(params).filter(
|
|
158
160
|
(key: string) => !Object.keys(config).includes(key),
|
|
@@ -211,10 +213,55 @@ export class Prostgles {
|
|
|
211
213
|
}
|
|
212
214
|
}
|
|
213
215
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
context: unknown;
|
|
217
|
+
private contextCleanups: ContextCleanup[] = [];
|
|
218
|
+
|
|
219
|
+
cleanupContext = async () => {
|
|
220
|
+
const cleanups = this.contextCleanups.splice(0).reverse();
|
|
221
|
+
this.context = undefined;
|
|
222
|
+
for (const cleanup of cleanups) {
|
|
223
|
+
try {
|
|
224
|
+
await cleanup();
|
|
225
|
+
} catch (error) {
|
|
226
|
+
console.error("Prostgles: Context cleanup failed", error);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
createContext = async (reason: OnInitReason) => {
|
|
232
|
+
const createContext = this.opts.createContext;
|
|
233
|
+
if (!createContext) {
|
|
234
|
+
this.context = undefined;
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
if (!this.db || !this.dbo) throw new Error("Cannot create context before the DBO is ready");
|
|
238
|
+
|
|
239
|
+
const cleanups: ContextCleanup[] = [];
|
|
240
|
+
try {
|
|
241
|
+
const context = await createContext({
|
|
242
|
+
db: this.db,
|
|
243
|
+
dbo: this.dbo as any,
|
|
244
|
+
sql: this.dboBuilder.sql,
|
|
245
|
+
tables: this.dboBuilder.tables,
|
|
246
|
+
reason,
|
|
247
|
+
onCleanup: (cleanup) => cleanups.push(cleanup),
|
|
248
|
+
});
|
|
249
|
+
this.context = context;
|
|
250
|
+
this.contextCleanups = cleanups;
|
|
251
|
+
} catch (error) {
|
|
252
|
+
for (const cleanup of cleanups.reverse()) {
|
|
253
|
+
try {
|
|
254
|
+
await cleanup();
|
|
255
|
+
} catch (cleanupError) {
|
|
256
|
+
console.error("Prostgles: Context cleanup failed", cleanupError);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
/** Rebuilds the DBO without changing the application context. */
|
|
264
|
+
rebuildDBO = async () => {
|
|
218
265
|
await this.opts.onLog?.({
|
|
219
266
|
type: "debug",
|
|
220
267
|
command: "refreshDBO.start",
|
|
@@ -236,6 +283,14 @@ export class Prostgles {
|
|
|
236
283
|
return this.dbo;
|
|
237
284
|
};
|
|
238
285
|
|
|
286
|
+
/** Rebuilds the DBO and replaces the application context. */
|
|
287
|
+
refreshDBO = async () => {
|
|
288
|
+
await this.cleanupContext();
|
|
289
|
+
const dbo = await this.rebuildDBO();
|
|
290
|
+
await this.createContext({ type: "dbo.refresh" });
|
|
291
|
+
return dbo;
|
|
292
|
+
};
|
|
293
|
+
|
|
239
294
|
initRestApi = () => {
|
|
240
295
|
this.restApi?.destroy();
|
|
241
296
|
this.restApi = this.opts.restApi && new RestApi({ prostgles: this, ...this.opts.restApi });
|