@decaf-ts/core 0.8.58 → 0.8.62

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.
@@ -22,7 +22,7 @@ export * from "./persistence";
22
22
  * @const VERSION
23
23
  * @memberOf module:core
24
24
  */
25
- export declare const VERSION = "0.8.57";
25
+ export declare const VERSION = "0.8.61";
26
26
  /**
27
27
  * @description Stores the current package version
28
28
  * @summary A constant representing the version of the core package
package/lib/esm/index.js CHANGED
@@ -32,7 +32,7 @@ export * from "./persistence/index.js";
32
32
  * @const VERSION
33
33
  * @memberOf module:core
34
34
  */
35
- export const VERSION = "0.8.57";
35
+ export const VERSION = "0.8.61";
36
36
  /**
37
37
  * @description Stores the current package version
38
38
  * @summary A constant representing the version of the core package
@@ -8,6 +8,7 @@ import type { Sequence } from "./Sequence";
8
8
  import { ErrorParser } from "../interfaces";
9
9
  import { Statement } from "../query/Statement";
10
10
  import { Impersonatable } from "@decaf-ts/logging";
11
+ import { Lock } from "@decaf-ts/transactional-decorators";
11
12
  import type { Dispatch } from "./Dispatch";
12
13
  import { AdapterDispatch, type AdapterFlags, AllOperationKeys, type EventIds, FlagsOf, type ObserverFilter, PersistenceObservable, PersistenceObserver, PreparedModel, RawResult } from "./types";
13
14
  import { ObserverHandler } from "./ObserverHandler";
@@ -119,9 +120,15 @@ export declare abstract class Adapter<CONF, CONN, QUERY, CONTEXT extends Context
119
120
  private static _baseRepository;
120
121
  private static _baseSequence;
121
122
  private static _baseDispatch;
122
- protected dispatch?: AdapterDispatch<typeof this>;
123
+ protected dispatch?: AdapterDispatch<Adapter<CONF, CONN, QUERY, CONTEXT>>;
123
124
  protected readonly observerHandler?: ObserverHandler;
124
125
  protected _client?: CONN;
126
+ protected shutdownPromise?: Promise<void>;
127
+ /**
128
+ * @summary Internal lock for shutdown mechanisms
129
+ * @private
130
+ */
131
+ protected internalLock: Lock;
125
132
  /**
126
133
  * @description Gets the native persistence config
127
134
  * @summary Provides access to the underlying persistence driver config
@@ -143,7 +150,8 @@ export declare abstract class Adapter<CONF, CONN, QUERY, CONTEXT extends Context
143
150
  */
144
151
  repository<R extends Repository<any, Adapter<CONF, CONN, QUERY, CONTEXT>>>(): Constructor<R>;
145
152
  transactionLock(...args: any[]): AdapterTransaction<this>;
146
- protected shutdownProxies(k?: string): Promise<void>;
153
+ protected shutdownProxies(...args: ContextualArgs<any>): Promise<void>;
154
+ protected shutdownProxies(k: string, ...args: ContextualArgs<any>): Promise<void>;
147
155
  /**
148
156
  * @description Shuts down the adapter
149
157
  * @summary Performs any necessary cleanup tasks, such as closing connections
@@ -11,6 +11,7 @@ import { BulkCrudOperationKeys, InternalError, ValidationError, } from "@decaf-t
11
11
  import { hashObj, Model, } from "@decaf-ts/decorator-validation";
12
12
  import { DefaultAdapterFlags, PersistenceKeys, TransactionOperationKeys, } from "./constants.js";
13
13
  import { final, Logging } from "@decaf-ts/logging";
14
+ import { Lock } from "@decaf-ts/transactional-decorators";
14
15
  import { ObserverHandler } from "./ObserverHandler.js";
15
16
  import { Context } from "./Context.js";
16
17
  import { Decoration, DefaultFlavour, Metadata, } from "@decaf-ts/decoration";
@@ -45,6 +46,7 @@ Decoration["flavourResolver"] = (obj) => {
45
46
  return DefaultFlavour;
46
47
  }
47
48
  };
49
+ const AdapterProxyCleanup = Symbol("AdapterProxyCleanup");
48
50
  function resolveBulkSequenceResult(result, continueOnError, log, operation) {
49
51
  if (!continueOnError) {
50
52
  return result;
@@ -193,18 +195,30 @@ export class Adapter extends AbsContextual {
193
195
  transactionLock(...args) {
194
196
  return new AdapterTransaction(this, ...args);
195
197
  }
196
- async shutdownProxies(k) {
198
+ async shutdownProxies(k, ...args) {
199
+ if (k && typeof k !== "string") {
200
+ args = [k, ...args];
201
+ k = undefined;
202
+ }
203
+ const { log } = this.logCtx(args, this.shutdownProxies);
197
204
  if (!this.proxies)
198
205
  return;
199
206
  if (k && !(k in this.proxies))
200
207
  throw new InternalError(`No proxy found for ${k}`);
208
+ const cleanupProxy = async (proxy) => {
209
+ if (!proxy)
210
+ return;
211
+ const cleanup = proxy[AdapterProxyCleanup];
212
+ if (typeof cleanup === "function")
213
+ await cleanup();
214
+ };
201
215
  if (!k) {
202
216
  for (const key in this.proxies) {
203
217
  try {
204
- await this.proxies[key].shutdown();
218
+ await cleanupProxy(this.proxies[key]);
205
219
  }
206
220
  catch (e) {
207
- this.log.error(`Failed to shutdown proxied adapter ${key}: ${e}`);
221
+ log.error(`Failed to cleanup proxied adapter ${key}`, e);
208
222
  continue;
209
223
  }
210
224
  delete this.proxies[key];
@@ -212,11 +226,11 @@ export class Adapter extends AbsContextual {
212
226
  }
213
227
  else {
214
228
  try {
215
- await this.proxies[k].shutdown();
229
+ await cleanupProxy(this.proxies[k]);
216
230
  delete this.proxies[k];
217
231
  }
218
232
  catch (e) {
219
- this.log.error(`Failed to shutdown proxied adapter ${k}: ${e}`);
233
+ log.error(`Failed to cleanup proxied adapter ${k}`, e);
220
234
  }
221
235
  }
222
236
  }
@@ -227,15 +241,36 @@ export class Adapter extends AbsContextual {
227
241
  * @return {Promise<void>} A promise that resolves when shutdown is complete
228
242
  */
229
243
  async shutdown(...args) {
230
- const {
231
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
232
- log,
233
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
234
- ctx, } = // TODO pass context along. it should go everywhere
235
- (await this.logCtx(args, PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
236
- await this.shutdownProxies();
237
- if (this.dispatch)
238
- await this.dispatch.close();
244
+ const { log, ctxArgs } = (await this.logCtx(args, PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
245
+ await this.internalLock.acquire(PersistenceKeys.SHUTDOWN);
246
+ try {
247
+ if (this.shutdownPromise)
248
+ return this.shutdownPromise;
249
+ this.shutdownPromise = (async () => {
250
+ const {
251
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
252
+ log, } = // TODO pass context along. it should go everywhere
253
+ (await this.logCtx(args, PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
254
+ await this.shutdownProxies(...ctxArgs);
255
+ if (this.dispatch)
256
+ await this.dispatch.close(...ctxArgs);
257
+ })();
258
+ }
259
+ catch (e) {
260
+ throw new InternalError(`Failed to create shutdown wrapper: ${e}`);
261
+ }
262
+ finally {
263
+ this.internalLock.release(PersistenceKeys.SHUTDOWN);
264
+ }
265
+ try {
266
+ await this.shutdownPromise;
267
+ }
268
+ catch (e) {
269
+ log.error(`Error during proxy shutdown`, e);
270
+ }
271
+ finally {
272
+ this.shutdownPromise = undefined;
273
+ }
239
274
  }
240
275
  /**
241
276
  * @description Creates a new adapter instance
@@ -246,6 +281,11 @@ export class Adapter extends AbsContextual {
246
281
  this._config = _config;
247
282
  this.flavour = flavour;
248
283
  this._alias = _alias;
284
+ /**
285
+ * @summary Internal lock for shutdown mechanisms
286
+ * @private
287
+ */
288
+ this.internalLock = new Lock();
249
289
  if (this.alias in Adapter._cache)
250
290
  throw new InternalError(`${this.alias} persistence adapter ${this._alias ? `(${this.flavour}) ` : ""} already registered`);
251
291
  Adapter._cache[this.alias] = this;
@@ -770,6 +810,30 @@ export class Adapter extends AbsContextual {
770
810
  return Reflect.set(target, p, value, receiver);
771
811
  },
772
812
  });
813
+ const cleanupProxyClient = async () => {
814
+ if (!client)
815
+ return;
816
+ const methods = ["cancel", "close", "destroy", "disconnect"];
817
+ for (const method of methods) {
818
+ const fn = client[method];
819
+ if (typeof fn !== "function")
820
+ continue;
821
+ try {
822
+ const result = fn.call(client);
823
+ if (result instanceof Promise)
824
+ await result;
825
+ }
826
+ catch {
827
+ // ignore cleanup errors
828
+ }
829
+ }
830
+ client = undefined;
831
+ };
832
+ Reflect.defineProperty(proxy, AdapterProxyCleanup, {
833
+ value: cleanupProxyClient,
834
+ configurable: true,
835
+ enumerable: false,
836
+ });
773
837
  this.proxies[key] = proxy;
774
838
  return proxy;
775
839
  }
@@ -783,12 +847,6 @@ export class Adapter extends AbsContextual {
783
847
  return super.logCtx(args, operation, allowCreate, overrides);
784
848
  }
785
849
  }
786
- __decorate([
787
- final(),
788
- __metadata("design:type", Function),
789
- __metadata("design:paramtypes", [String]),
790
- __metadata("design:returntype", Promise)
791
- ], Adapter.prototype, "shutdownProxies", null);
792
850
  __decorate([
793
851
  final(),
794
852
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"Adapter.js","sourceRoot":"","sources":["../../../src/persistence/Adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Adapter.js","sourceRoot":"","sources":["../../../src/persistence/Adapter.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,7 @@ export declare class Dispatch<A extends Adapter<any, any, any, any>> extends Con
92
92
  * @summary Performs any necessary cleanup when the dispatch is no longer needed
93
93
  * @return {Promise<void>} A promise that resolves when closing is complete
94
94
  */
95
- close(): Promise<void>;
95
+ close(...ctxArgs: ContextualArgs<ContextOf<A>>): Promise<void>;
96
96
  /**
97
97
  * @description Starts observing an adapter
98
98
  * @summary Connects this dispatch to an adapter to monitor its operations
@@ -156,7 +156,8 @@ export class Dispatch extends ContextualLoggedClass {
156
156
  * @summary Performs any necessary cleanup when the dispatch is no longer needed
157
157
  * @return {Promise<void>} A promise that resolves when closing is complete
158
158
  */
159
- async close() {
159
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
160
+ async close(...ctxArgs) {
160
161
  // to nothing in this instance but may be required for closing connections
161
162
  }
162
163
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../src/persistence/Dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAoB,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,qBAAkB;AACpC,OAAO,EAAE,gBAAgB,EAAE,oBAAiB;AAG5C,OAAO,EAGL,qBAAqB,GAGtB,4CAAuC;AACxC,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,QACX,SAAQ,qBAAmC;IAe3C;;;OAGG;IACH;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAmCkB,MAAM,CAIvB,IAA4C,EAC5C,SAAiB,EACjB,cAAuB,KAAK;QAc5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAkB,CAY5D,CAAC;IACR,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACO,KAAK,CAAC,UAAU,CACxB,GAAG,IAAsC;QAEzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,kEAAkE;YAClE,0EAA0E;YAC1E,qEAAqE;YACrE,IAAI,CAAC,GAAG;iBACL,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;iBACpB,OAAO,CAAC,2DAA2D,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,GAAG,CACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAsC,CAAC;QAE1D;YACE,aAAa,CAAC,MAAM;YACpB,aAAa,CAAC,MAAM;YACpB,aAAa,CAAC,MAAM;YACpB,qBAAqB,CAAC,UAAU;YAChC,qBAAqB,CAAC,UAAU;YAChC,qBAAqB,CAAC,UAAU;SAEnC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClB,MAAM,IAAI,aAAa,CACrB,UAAU,MAAM,iBAAiB,OAAO,CAAC,KAAK,uCAAuC,CACtF,CAAC;YAEJ,IAAI,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,KAAK,GAAQ,OAAO,CAAC;YACzB,OAAO,CAAC,UAAU,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBACjD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACrC,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CACZ,yBAAyB,MAAM,+BAA+B,CAC/D,CAAC;gBACF,OAAO;YACT,CAAC;YACD,SAAS,YAAY,CAAC,MAAc;gBAClC,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,qBAAqB,CAAC,UAAU;wBACnC,OAAO,aAAa,CAAC,MAAM,CAAC;oBAC9B,KAAK,qBAAqB,CAAC,UAAU;wBACnC,OAAO,aAAa,CAAC,MAAM,CAAC;oBAC9B,KAAK,qBAAqB,CAAC,UAAU;wBACnC,OAAO,aAAa,CAAC,MAAM,CAAC;oBAC9B;wBACE,OAAO,MAAM,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,0DAA0D;YAC1D,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3C,KAAK,EAAE,KAAK,EAAE,MAAW,EAAE,OAAU,EAAE,QAAe,EAAE,EAAE;oBACxD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAC7C,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1D,MAAM,CACP,CAAC;oBACF,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;oBAC3C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;wBACzC,SAAS;wBACT,GAAG;wBACH,OAAO;wBACP,GAAG,OAAO;qBACX,CAAC,CAAC;oBAEH,MAAM,UAAU,GAA+B;wBAC7C,SAAS;wBACT,YAAY,CAAC,MAAM,CAAC;wBACpB,GAAG;qBACJ,CAAC;oBAEF,IAAI,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACjC,UAAU,CAAC,IAAI,CACb,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;4BACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BACjC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CACtB,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CACnE,GAAG,CAAC,KAAK,CACP,2CAA2C,MAAM,OAAO,SAAS,CAAC,IAAI,IAAI,SAAS,QAAQ,GAAG,KAAK,CAAC,EAAE,CACvG,CACF,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,0EAA0E;IAC5E,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAW;QACjB,IAAI,CAAC,CAAC,QAAQ,YAAY,OAAO,CAAC;YAChC,MAAM,IAAI,gBAAgB,CAAC,2CAA2C,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CACd,4BAA4B,IAAI,CAAC,OAAQ,CAAC,KAAK,UAAU,CAC1D,CACF,CAAC;QAEF,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;YAC3B,MAAM,IAAI,gBAAgB,CACxB,6DAA6D,CAC9D,CAAC;QACJ,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,KAAgC,EAChC,KAAqD,EACrD,EAAY,EACZ,GAAG,IAAkC;QAErC,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,aAAa,CAAC,4CAA4C,CAAC,CAAC;QACxE,MAAM,KAAK,GACT,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,OAAO,CACT,kEAAkE,KAAK,IAAI,KAAK,EAAE,CACnF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,GAAG,CAAC,KAAK,CACP,oCAAoC,KAAK,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE,CACxH,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,iBAAiB,CAAC;IACtF,CAAC;CACF;AAED,IAAI,OAAO;IAAE,OAAO,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"Dispatch.js","sourceRoot":"","sources":["../../../src/persistence/Dispatch.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export type EventIds = string | number | bigint | string[] | number[] | bigint[]
48
48
  export type ObserverFilter = (table: Constructor | string, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<any>) => boolean;
49
49
  export type InferredAdapterConfig<A> = A extends Adapter<infer CONF, any, any> ? CONF : never;
50
50
  export interface AdapterDispatch<A extends Adapter<any, any, any, any>> extends PersistenceObservable<ContextOf<A>> {
51
- close(): Promise<void>;
51
+ close(...args: ContextualArgs<ContextOf<A>>): Promise<void>;
52
52
  updateObservers<M extends Model>(table: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<ContextOf<A>>): Promise<void>;
53
53
  }
54
54
  export type RepositoryFor<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, any> ? ReturnType<A["repository"]> : never;
package/lib/index.cjs CHANGED
@@ -49,7 +49,7 @@ __exportStar(require("./persistence/index.cjs"), exports);
49
49
  * @const VERSION
50
50
  * @memberOf module:core
51
51
  */
52
- exports.VERSION = "0.8.57";
52
+ exports.VERSION = "0.8.61";
53
53
  /**
54
54
  * @description Stores the current package version
55
55
  * @summary A constant representing the version of the core package
package/lib/index.d.ts CHANGED
@@ -22,7 +22,7 @@ export * from "./persistence";
22
22
  * @const VERSION
23
23
  * @memberOf module:core
24
24
  */
25
- export declare const VERSION = "0.8.57";
25
+ export declare const VERSION = "0.8.61";
26
26
  /**
27
27
  * @description Stores the current package version
28
28
  * @summary A constant representing the version of the core package
@@ -14,6 +14,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
14
14
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
15
15
  const constants_1 = require("./constants.cjs");
16
16
  const logging_1 = require("@decaf-ts/logging");
17
+ const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
17
18
  const ObserverHandler_1 = require("./ObserverHandler.cjs");
18
19
  const Context_1 = require("./Context.cjs");
19
20
  const decoration_1 = require("@decaf-ts/decoration");
@@ -48,6 +49,7 @@ decoration_1.Decoration["flavourResolver"] = (obj) => {
48
49
  return decoration_1.DefaultFlavour;
49
50
  }
50
51
  };
52
+ const AdapterProxyCleanup = Symbol("AdapterProxyCleanup");
51
53
  function resolveBulkSequenceResult(result, continueOnError, log, operation) {
52
54
  if (!continueOnError) {
53
55
  return result;
@@ -196,18 +198,30 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
196
198
  transactionLock(...args) {
197
199
  return new ContextLock_1.AdapterTransaction(this, ...args);
198
200
  }
199
- async shutdownProxies(k) {
201
+ async shutdownProxies(k, ...args) {
202
+ if (k && typeof k !== "string") {
203
+ args = [k, ...args];
204
+ k = undefined;
205
+ }
206
+ const { log } = this.logCtx(args, this.shutdownProxies);
200
207
  if (!this.proxies)
201
208
  return;
202
209
  if (k && !(k in this.proxies))
203
210
  throw new db_decorators_1.InternalError(`No proxy found for ${k}`);
211
+ const cleanupProxy = async (proxy) => {
212
+ if (!proxy)
213
+ return;
214
+ const cleanup = proxy[AdapterProxyCleanup];
215
+ if (typeof cleanup === "function")
216
+ await cleanup();
217
+ };
204
218
  if (!k) {
205
219
  for (const key in this.proxies) {
206
220
  try {
207
- await this.proxies[key].shutdown();
221
+ await cleanupProxy(this.proxies[key]);
208
222
  }
209
223
  catch (e) {
210
- this.log.error(`Failed to shutdown proxied adapter ${key}: ${e}`);
224
+ log.error(`Failed to cleanup proxied adapter ${key}`, e);
211
225
  continue;
212
226
  }
213
227
  delete this.proxies[key];
@@ -215,11 +229,11 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
215
229
  }
216
230
  else {
217
231
  try {
218
- await this.proxies[k].shutdown();
232
+ await cleanupProxy(this.proxies[k]);
219
233
  delete this.proxies[k];
220
234
  }
221
235
  catch (e) {
222
- this.log.error(`Failed to shutdown proxied adapter ${k}: ${e}`);
236
+ log.error(`Failed to cleanup proxied adapter ${k}`, e);
223
237
  }
224
238
  }
225
239
  }
@@ -230,15 +244,36 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
230
244
  * @return {Promise<void>} A promise that resolves when shutdown is complete
231
245
  */
232
246
  async shutdown(...args) {
233
- const {
234
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
235
- log,
236
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
237
- ctx, } = // TODO pass context along. it should go everywhere
238
- (await this.logCtx(args, constants_1.PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
239
- await this.shutdownProxies();
240
- if (this.dispatch)
241
- await this.dispatch.close();
247
+ const { log, ctxArgs } = (await this.logCtx(args, constants_1.PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
248
+ await this.internalLock.acquire(constants_1.PersistenceKeys.SHUTDOWN);
249
+ try {
250
+ if (this.shutdownPromise)
251
+ return this.shutdownPromise;
252
+ this.shutdownPromise = (async () => {
253
+ const {
254
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
255
+ log, } = // TODO pass context along. it should go everywhere
256
+ (await this.logCtx(args, constants_1.PersistenceKeys.SHUTDOWN, true)).for(this.shutdown);
257
+ await this.shutdownProxies(...ctxArgs);
258
+ if (this.dispatch)
259
+ await this.dispatch.close(...ctxArgs);
260
+ })();
261
+ }
262
+ catch (e) {
263
+ throw new db_decorators_1.InternalError(`Failed to create shutdown wrapper: ${e}`);
264
+ }
265
+ finally {
266
+ this.internalLock.release(constants_1.PersistenceKeys.SHUTDOWN);
267
+ }
268
+ try {
269
+ await this.shutdownPromise;
270
+ }
271
+ catch (e) {
272
+ log.error(`Error during proxy shutdown`, e);
273
+ }
274
+ finally {
275
+ this.shutdownPromise = undefined;
276
+ }
242
277
  }
243
278
  /**
244
279
  * @description Creates a new adapter instance
@@ -249,6 +284,11 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
249
284
  this._config = _config;
250
285
  this.flavour = flavour;
251
286
  this._alias = _alias;
287
+ /**
288
+ * @summary Internal lock for shutdown mechanisms
289
+ * @private
290
+ */
291
+ this.internalLock = new transactional_decorators_1.Lock();
252
292
  if (this.alias in Adapter._cache)
253
293
  throw new db_decorators_1.InternalError(`${this.alias} persistence adapter ${this._alias ? `(${this.flavour}) ` : ""} already registered`);
254
294
  Adapter._cache[this.alias] = this;
@@ -773,6 +813,30 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
773
813
  return Reflect.set(target, p, value, receiver);
774
814
  },
775
815
  });
816
+ const cleanupProxyClient = async () => {
817
+ if (!client)
818
+ return;
819
+ const methods = ["cancel", "close", "destroy", "disconnect"];
820
+ for (const method of methods) {
821
+ const fn = client[method];
822
+ if (typeof fn !== "function")
823
+ continue;
824
+ try {
825
+ const result = fn.call(client);
826
+ if (result instanceof Promise)
827
+ await result;
828
+ }
829
+ catch {
830
+ // ignore cleanup errors
831
+ }
832
+ }
833
+ client = undefined;
834
+ };
835
+ Reflect.defineProperty(proxy, AdapterProxyCleanup, {
836
+ value: cleanupProxyClient,
837
+ configurable: true,
838
+ enumerable: false,
839
+ });
776
840
  this.proxies[key] = proxy;
777
841
  return proxy;
778
842
  }
@@ -787,12 +851,6 @@ class Adapter extends ContextualLoggedClass_1.AbsContextual {
787
851
  }
788
852
  }
789
853
  exports.Adapter = Adapter;
790
- __decorate([
791
- (0, logging_1.final)(),
792
- __metadata("design:type", Function),
793
- __metadata("design:paramtypes", [String]),
794
- __metadata("design:returntype", Promise)
795
- ], Adapter.prototype, "shutdownProxies", null);
796
854
  __decorate([
797
855
  (0, logging_1.final)(),
798
856
  __metadata("design:type", Function),
@@ -8,6 +8,7 @@ import type { Sequence } from "./Sequence";
8
8
  import { ErrorParser } from "../interfaces";
9
9
  import { Statement } from "../query/Statement";
10
10
  import { Impersonatable } from "@decaf-ts/logging";
11
+ import { Lock } from "@decaf-ts/transactional-decorators";
11
12
  import type { Dispatch } from "./Dispatch";
12
13
  import { AdapterDispatch, type AdapterFlags, AllOperationKeys, type EventIds, FlagsOf, type ObserverFilter, PersistenceObservable, PersistenceObserver, PreparedModel, RawResult } from "./types";
13
14
  import { ObserverHandler } from "./ObserverHandler";
@@ -119,9 +120,15 @@ export declare abstract class Adapter<CONF, CONN, QUERY, CONTEXT extends Context
119
120
  private static _baseRepository;
120
121
  private static _baseSequence;
121
122
  private static _baseDispatch;
122
- protected dispatch?: AdapterDispatch<typeof this>;
123
+ protected dispatch?: AdapterDispatch<Adapter<CONF, CONN, QUERY, CONTEXT>>;
123
124
  protected readonly observerHandler?: ObserverHandler;
124
125
  protected _client?: CONN;
126
+ protected shutdownPromise?: Promise<void>;
127
+ /**
128
+ * @summary Internal lock for shutdown mechanisms
129
+ * @private
130
+ */
131
+ protected internalLock: Lock;
125
132
  /**
126
133
  * @description Gets the native persistence config
127
134
  * @summary Provides access to the underlying persistence driver config
@@ -143,7 +150,8 @@ export declare abstract class Adapter<CONF, CONN, QUERY, CONTEXT extends Context
143
150
  */
144
151
  repository<R extends Repository<any, Adapter<CONF, CONN, QUERY, CONTEXT>>>(): Constructor<R>;
145
152
  transactionLock(...args: any[]): AdapterTransaction<this>;
146
- protected shutdownProxies(k?: string): Promise<void>;
153
+ protected shutdownProxies(...args: ContextualArgs<any>): Promise<void>;
154
+ protected shutdownProxies(k: string, ...args: ContextualArgs<any>): Promise<void>;
147
155
  /**
148
156
  * @description Shuts down the adapter
149
157
  * @summary Performs any necessary cleanup tasks, such as closing connections