@decaf-ts/for-nano 0.8.0 → 0.10.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/lib/cjs/NanoDispatch.cjs +1 -0
- package/lib/cjs/NanoDispatch.cjs.map +1 -0
- package/lib/cjs/NanoRepository.cjs +1 -0
- package/lib/cjs/NanoRepository.cjs.map +1 -0
- package/lib/cjs/adapter.cjs +10 -9
- package/lib/cjs/adapter.cjs.map +1 -0
- package/lib/cjs/constants.cjs +1 -0
- package/lib/cjs/constants.cjs.map +1 -0
- package/lib/cjs/index.cjs +4 -3
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/types.cjs +1 -0
- package/lib/cjs/types.cjs.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/types/NanoDispatch.d.cts +119 -0
- package/lib/types/NanoDispatch.d.mts +119 -0
- package/lib/types/NanoRepository.d.cts +17 -0
- package/lib/types/NanoRepository.d.mts +17 -0
- package/lib/types/adapter.d.cts +449 -0
- package/lib/types/adapter.d.mts +449 -0
- package/lib/types/constants.d.cts +7 -0
- package/lib/types/constants.d.mts +7 -0
- package/lib/types/index.d.cts +23 -0
- package/lib/types/index.d.mts +23 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/types.d.cts +39 -0
- package/lib/types/types.d.mts +39 -0
- package/package.json +4 -4
- package/lib/cjs/NanoDispatch.js.map +0 -1
- package/lib/cjs/NanoRepository.js.map +0 -1
- package/lib/cjs/adapter.js.map +0 -1
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/types.js.map +0 -1
package/lib/cjs/NanoDispatch.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NanoDispatch.js","sourceRoot":"","sources":["NanoDispatch.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NanoRepository.js","sourceRoot":"","sources":["NanoRepository.js"],"names":[],"mappings":";;;AAAA,uDAA0D;AAC1D;;;;;;;GAOG;AACH,MAAa,cAAe,SAAQ,+BAAiB;IACjD,YAAY,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;QACrC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACJ;AAPD,wCAOC;AACD,0CAA0C"}
|
package/lib/cjs/adapter.cjs
CHANGED
|
@@ -10,9 +10,9 @@ const for_couchdb_1 = require("@decaf-ts/for-couchdb");
|
|
|
10
10
|
const nano_1 = __importDefault(require("nano"));
|
|
11
11
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
12
12
|
const core_1 = require("@decaf-ts/core");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
13
|
+
const constants_js_1 = require("./constants.cjs");
|
|
14
|
+
const NanoRepository_js_1 = require("./NanoRepository.cjs");
|
|
15
|
+
const NanoDispatch_js_1 = require("./NanoDispatch.cjs");
|
|
16
16
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
17
17
|
/**
|
|
18
18
|
* @description Sets the creator or updater field in a model based on the user in the context
|
|
@@ -108,7 +108,7 @@ async function createdByOnNanoCreateUpdate(context, data, key, model) {
|
|
|
108
108
|
*/
|
|
109
109
|
class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
110
110
|
constructor(scope, alias) {
|
|
111
|
-
super(scope,
|
|
111
|
+
super(scope, constants_js_1.NanoFlavour, alias);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* @description Shuts down the adapter instance
|
|
@@ -155,10 +155,10 @@ class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
|
155
155
|
* @return {NanoDispatch} A new NanoDispatch instance
|
|
156
156
|
*/
|
|
157
157
|
Dispatch() {
|
|
158
|
-
return new
|
|
158
|
+
return new NanoDispatch_js_1.NanoDispatch();
|
|
159
159
|
}
|
|
160
160
|
repository() {
|
|
161
|
-
return
|
|
161
|
+
return NanoRepository_js_1.NanoRepository;
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
164
|
* @description Creates database indexes for models
|
|
@@ -759,16 +759,17 @@ class NanoAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
|
759
759
|
*/
|
|
760
760
|
static decoration() {
|
|
761
761
|
super.decoration();
|
|
762
|
-
decoration_1.Decoration.flavouredAs(
|
|
762
|
+
decoration_1.Decoration.flavouredAs(constants_js_1.NanoFlavour)
|
|
763
763
|
.for(core_1.PersistenceKeys.CREATED_BY)
|
|
764
764
|
.define((0, db_decorators_1.onCreate)(createdByOnNanoCreateUpdate), (0, decoration_1.propMetadata)(core_1.PersistenceKeys.CREATED_BY, {}))
|
|
765
765
|
.apply();
|
|
766
|
-
decoration_1.Decoration.flavouredAs(
|
|
766
|
+
decoration_1.Decoration.flavouredAs(constants_js_1.NanoFlavour)
|
|
767
767
|
.for(core_1.PersistenceKeys.UPDATED_BY)
|
|
768
768
|
.define((0, db_decorators_1.onCreateUpdate)(createdByOnNanoCreateUpdate), (0, decoration_1.propMetadata)(core_1.PersistenceKeys.UPDATED_BY, {}))
|
|
769
769
|
.apply();
|
|
770
770
|
}
|
|
771
771
|
}
|
|
772
772
|
exports.NanoAdapter = NanoAdapter;
|
|
773
|
-
core_1.Adapter.setCurrent(
|
|
773
|
+
core_1.Adapter.setCurrent(constants_js_1.NanoFlavour);
|
|
774
|
+
//# sourceMappingURL=adapter.js.map
|
|
774
775
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["adapter.js"],"names":[],"mappings":"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"}
|
package/lib/cjs/constants.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.js"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,WAAW,GAAG,MAAM,CAAC;AAClC,qCAAqC"}
|
package/lib/cjs/index.cjs
CHANGED
|
@@ -15,10 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.PACKAGE_NAME = exports.VERSION = void 0;
|
|
18
|
-
const
|
|
18
|
+
const adapter_js_1 = require("./adapter.cjs");
|
|
19
19
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
20
20
|
// Forces override for Nano Decoration
|
|
21
|
-
|
|
21
|
+
adapter_js_1.NanoAdapter.decoration();
|
|
22
22
|
__exportStar(require("./constants.cjs"), exports);
|
|
23
23
|
__exportStar(require("./NanoRepository.cjs"), exports);
|
|
24
24
|
__exportStar(require("./types.cjs"), exports);
|
|
@@ -35,7 +35,7 @@ __exportStar(require("./adapter.cjs"), exports);
|
|
|
35
35
|
* @const VERSION
|
|
36
36
|
* @memberOf module:for-nano
|
|
37
37
|
*/
|
|
38
|
-
exports.VERSION = "0.
|
|
38
|
+
exports.VERSION = "0.9.0";
|
|
39
39
|
/**
|
|
40
40
|
* @description Package version identifier
|
|
41
41
|
* @summary Stores the current package version string for the for-nano module
|
|
@@ -44,4 +44,5 @@ exports.VERSION = "0.7.6";
|
|
|
44
44
|
*/
|
|
45
45
|
exports.PACKAGE_NAME = "@decaf-ts/for-nano";
|
|
46
46
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
47
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA2C;AAC3C,qDAAgD;AAChD,sCAAsC;AACtC,wBAAW,CAAC,UAAU,EAAE,CAAC;AACzB,iDAA+B;AAC/B,sDAAoC;AACpC,6CAA2B;AAC3B,6BAA6B;AAC7B,+CAA6B;AAC7B;;;;GAIG;AACH;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACrC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAC1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,iCAAiC"}
|
package/lib/cjs/types.cjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.js"],"names":[],"mappings":";;AACA,iCAAiC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -18,7 +18,7 @@ export * from "./adapter.js";
|
|
|
18
18
|
* @const VERSION
|
|
19
19
|
* @memberOf module:for-nano
|
|
20
20
|
*/
|
|
21
|
-
export const VERSION = "0.
|
|
21
|
+
export const VERSION = "0.9.0";
|
|
22
22
|
/**
|
|
23
23
|
* @description Package version identifier
|
|
24
24
|
* @summary Stores the current package version string for the for-nano module
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Adapter, Context, ContextualArgs, Dispatch } from "@decaf-ts/core";
|
|
2
|
+
import { DatabaseChangesResponse, DatabaseChangesResultItem, DocumentScope, RequestError } from "nano";
|
|
3
|
+
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
4
|
+
import { NanoConfig, NanoFlags } from "./types.cjs";
|
|
5
|
+
/**
|
|
6
|
+
* @description Dispatcher for Nano database change events
|
|
7
|
+
* @summary Handles the subscription to and processing of database change events from a Nano database,
|
|
8
|
+
* notifying observers when documents are created, updated, or deleted
|
|
9
|
+
* @template DocumentScope - The Nano document scope type
|
|
10
|
+
* @param {number} [timeout=5000] - Timeout in milliseconds for change feed requests
|
|
11
|
+
* @class NanoDispatch
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Create a dispatcher for a Nano database
|
|
15
|
+
* const db = server.db.use('my_database');
|
|
16
|
+
* const adapter = new NanoAdapter(db);
|
|
17
|
+
* const dispatch = new NanoDispatch();
|
|
18
|
+
*
|
|
19
|
+
* // The dispatcher will automatically subscribe to changes
|
|
20
|
+
* // and notify observers when documents change
|
|
21
|
+
* ```
|
|
22
|
+
* @mermaid
|
|
23
|
+
* classDiagram
|
|
24
|
+
* class Dispatch {
|
|
25
|
+
* +initialize()
|
|
26
|
+
* +updateObservers()
|
|
27
|
+
* }
|
|
28
|
+
* class NanoDispatch {
|
|
29
|
+
* -observerLastUpdate?: string
|
|
30
|
+
* -attemptCounter: number
|
|
31
|
+
* -timeout: number
|
|
32
|
+
* +constructor(timeout)
|
|
33
|
+
* #changeHandler()
|
|
34
|
+
* #initialize()
|
|
35
|
+
* }
|
|
36
|
+
* Dispatch <|-- NanoDispatch
|
|
37
|
+
*/
|
|
38
|
+
export declare class NanoDispatch extends Dispatch<Adapter<NanoConfig, DocumentScope<any>, MangoQuery, Context<NanoFlags>>> {
|
|
39
|
+
private timeout;
|
|
40
|
+
private observerLastUpdate?;
|
|
41
|
+
private attemptCounter;
|
|
42
|
+
private active;
|
|
43
|
+
private changeFeed?;
|
|
44
|
+
constructor(timeout?: number);
|
|
45
|
+
/**
|
|
46
|
+
* @description Closes the dispatcher
|
|
47
|
+
* @summary Stops the dispatcher and cleans up any active subscriptions or resources
|
|
48
|
+
* @return {Promise<void>} A promise that resolves when the dispatcher has been closed
|
|
49
|
+
*/
|
|
50
|
+
close(...args: ContextualArgs<Context<NanoFlags>>): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* @description Processes database change events
|
|
53
|
+
* @summary Handles the response from the Nano changes feed, processes the changes,
|
|
54
|
+
* and notifies observers about document changes
|
|
55
|
+
* @param {RequestError | null} error - Error object if the request failed
|
|
56
|
+
* @param response - The changes response from Nano
|
|
57
|
+
* @param {any} [headers] - Response headers (unused)
|
|
58
|
+
* @return {Promise<void>} A promise that resolves when all changes have been processed
|
|
59
|
+
* @mermaid
|
|
60
|
+
* sequenceDiagram
|
|
61
|
+
* participant D as NanoDispatch
|
|
62
|
+
* participant L as Logger
|
|
63
|
+
* participant O as Observers
|
|
64
|
+
* Note over D: Receive changes from Nano
|
|
65
|
+
* alt Error in response
|
|
66
|
+
* D->>L: Log error
|
|
67
|
+
* D-->>D: Return early
|
|
68
|
+
* end
|
|
69
|
+
* alt Response is string
|
|
70
|
+
* D->>D: Parse JSON from string
|
|
71
|
+
* end
|
|
72
|
+
* D->>D: Process changes
|
|
73
|
+
* D->>D: Group changes by table and operation
|
|
74
|
+
* loop For each table
|
|
75
|
+
* loop For each operation
|
|
76
|
+
* D->>O: updateObservers(table, operation, ids)
|
|
77
|
+
* D->>D: Update observerLastUpdate
|
|
78
|
+
* D->>L: Log successful dispatch
|
|
79
|
+
* end
|
|
80
|
+
* end
|
|
81
|
+
*/
|
|
82
|
+
protected changeHandler(error: RequestError | null, response: (DatabaseChangesResponse | DatabaseChangesResultItem)[] | string, headers?: any, ctxArg?: Context<NanoFlags>): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* @description Initializes the dispatcher and subscribes to database changes
|
|
85
|
+
* @summary Sets up the continuous changes feed subscription to the Nano database
|
|
86
|
+
* and handles reconnection attempts if the connection fails
|
|
87
|
+
* @return {Promise<void>} A promise that resolves when the subscription is established
|
|
88
|
+
* @mermaid
|
|
89
|
+
* sequenceDiagram
|
|
90
|
+
* participant D as NanoDispatch
|
|
91
|
+
* participant S as subscribeToCouch
|
|
92
|
+
* participant DB as Nano Database
|
|
93
|
+
* participant L as Logger
|
|
94
|
+
* D->>S: Call subscribeToCouch
|
|
95
|
+
* S->>S: Check adapter and native
|
|
96
|
+
* alt No adapter or native
|
|
97
|
+
* S-->>S: throw InternalError
|
|
98
|
+
* end
|
|
99
|
+
* S->>DB: changes(options, changeHandler)
|
|
100
|
+
* alt Success
|
|
101
|
+
* DB-->>S: Subscription established
|
|
102
|
+
* S-->>D: Promise resolves
|
|
103
|
+
* D->>L: Log successful subscription
|
|
104
|
+
* else Error
|
|
105
|
+
* DB-->>S: Error
|
|
106
|
+
* S->>S: Increment attemptCounter
|
|
107
|
+
* alt attemptCounter > 3
|
|
108
|
+
* S->>L: Log error
|
|
109
|
+
* S-->>D: Promise rejects
|
|
110
|
+
* else attemptCounter <= 3
|
|
111
|
+
* S->>L: Log retry
|
|
112
|
+
* S->>S: Wait timeout
|
|
113
|
+
* S->>S: Recursive call to subscribeToCouch
|
|
114
|
+
* end
|
|
115
|
+
* end
|
|
116
|
+
*/
|
|
117
|
+
protected initialize(): Promise<void>;
|
|
118
|
+
private disposeChangeFeed;
|
|
119
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Adapter, Context, ContextualArgs, Dispatch } from "@decaf-ts/core";
|
|
2
|
+
import { DatabaseChangesResponse, DatabaseChangesResultItem, DocumentScope, RequestError } from "nano";
|
|
3
|
+
import { MangoQuery } from "@decaf-ts/for-couchdb";
|
|
4
|
+
import { NanoConfig, NanoFlags } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* @description Dispatcher for Nano database change events
|
|
7
|
+
* @summary Handles the subscription to and processing of database change events from a Nano database,
|
|
8
|
+
* notifying observers when documents are created, updated, or deleted
|
|
9
|
+
* @template DocumentScope - The Nano document scope type
|
|
10
|
+
* @param {number} [timeout=5000] - Timeout in milliseconds for change feed requests
|
|
11
|
+
* @class NanoDispatch
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // Create a dispatcher for a Nano database
|
|
15
|
+
* const db = server.db.use('my_database');
|
|
16
|
+
* const adapter = new NanoAdapter(db);
|
|
17
|
+
* const dispatch = new NanoDispatch();
|
|
18
|
+
*
|
|
19
|
+
* // The dispatcher will automatically subscribe to changes
|
|
20
|
+
* // and notify observers when documents change
|
|
21
|
+
* ```
|
|
22
|
+
* @mermaid
|
|
23
|
+
* classDiagram
|
|
24
|
+
* class Dispatch {
|
|
25
|
+
* +initialize()
|
|
26
|
+
* +updateObservers()
|
|
27
|
+
* }
|
|
28
|
+
* class NanoDispatch {
|
|
29
|
+
* -observerLastUpdate?: string
|
|
30
|
+
* -attemptCounter: number
|
|
31
|
+
* -timeout: number
|
|
32
|
+
* +constructor(timeout)
|
|
33
|
+
* #changeHandler()
|
|
34
|
+
* #initialize()
|
|
35
|
+
* }
|
|
36
|
+
* Dispatch <|-- NanoDispatch
|
|
37
|
+
*/
|
|
38
|
+
export declare class NanoDispatch extends Dispatch<Adapter<NanoConfig, DocumentScope<any>, MangoQuery, Context<NanoFlags>>> {
|
|
39
|
+
private timeout;
|
|
40
|
+
private observerLastUpdate?;
|
|
41
|
+
private attemptCounter;
|
|
42
|
+
private active;
|
|
43
|
+
private changeFeed?;
|
|
44
|
+
constructor(timeout?: number);
|
|
45
|
+
/**
|
|
46
|
+
* @description Closes the dispatcher
|
|
47
|
+
* @summary Stops the dispatcher and cleans up any active subscriptions or resources
|
|
48
|
+
* @return {Promise<void>} A promise that resolves when the dispatcher has been closed
|
|
49
|
+
*/
|
|
50
|
+
close(...args: ContextualArgs<Context<NanoFlags>>): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* @description Processes database change events
|
|
53
|
+
* @summary Handles the response from the Nano changes feed, processes the changes,
|
|
54
|
+
* and notifies observers about document changes
|
|
55
|
+
* @param {RequestError | null} error - Error object if the request failed
|
|
56
|
+
* @param response - The changes response from Nano
|
|
57
|
+
* @param {any} [headers] - Response headers (unused)
|
|
58
|
+
* @return {Promise<void>} A promise that resolves when all changes have been processed
|
|
59
|
+
* @mermaid
|
|
60
|
+
* sequenceDiagram
|
|
61
|
+
* participant D as NanoDispatch
|
|
62
|
+
* participant L as Logger
|
|
63
|
+
* participant O as Observers
|
|
64
|
+
* Note over D: Receive changes from Nano
|
|
65
|
+
* alt Error in response
|
|
66
|
+
* D->>L: Log error
|
|
67
|
+
* D-->>D: Return early
|
|
68
|
+
* end
|
|
69
|
+
* alt Response is string
|
|
70
|
+
* D->>D: Parse JSON from string
|
|
71
|
+
* end
|
|
72
|
+
* D->>D: Process changes
|
|
73
|
+
* D->>D: Group changes by table and operation
|
|
74
|
+
* loop For each table
|
|
75
|
+
* loop For each operation
|
|
76
|
+
* D->>O: updateObservers(table, operation, ids)
|
|
77
|
+
* D->>D: Update observerLastUpdate
|
|
78
|
+
* D->>L: Log successful dispatch
|
|
79
|
+
* end
|
|
80
|
+
* end
|
|
81
|
+
*/
|
|
82
|
+
protected changeHandler(error: RequestError | null, response: (DatabaseChangesResponse | DatabaseChangesResultItem)[] | string, headers?: any, ctxArg?: Context<NanoFlags>): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* @description Initializes the dispatcher and subscribes to database changes
|
|
85
|
+
* @summary Sets up the continuous changes feed subscription to the Nano database
|
|
86
|
+
* and handles reconnection attempts if the connection fails
|
|
87
|
+
* @return {Promise<void>} A promise that resolves when the subscription is established
|
|
88
|
+
* @mermaid
|
|
89
|
+
* sequenceDiagram
|
|
90
|
+
* participant D as NanoDispatch
|
|
91
|
+
* participant S as subscribeToCouch
|
|
92
|
+
* participant DB as Nano Database
|
|
93
|
+
* participant L as Logger
|
|
94
|
+
* D->>S: Call subscribeToCouch
|
|
95
|
+
* S->>S: Check adapter and native
|
|
96
|
+
* alt No adapter or native
|
|
97
|
+
* S-->>S: throw InternalError
|
|
98
|
+
* end
|
|
99
|
+
* S->>DB: changes(options, changeHandler)
|
|
100
|
+
* alt Success
|
|
101
|
+
* DB-->>S: Subscription established
|
|
102
|
+
* S-->>D: Promise resolves
|
|
103
|
+
* D->>L: Log successful subscription
|
|
104
|
+
* else Error
|
|
105
|
+
* DB-->>S: Error
|
|
106
|
+
* S->>S: Increment attemptCounter
|
|
107
|
+
* alt attemptCounter > 3
|
|
108
|
+
* S->>L: Log error
|
|
109
|
+
* S-->>D: Promise rejects
|
|
110
|
+
* else attemptCounter <= 3
|
|
111
|
+
* S->>L: Log retry
|
|
112
|
+
* S->>S: Wait timeout
|
|
113
|
+
* S->>S: Recursive call to subscribeToCouch
|
|
114
|
+
* end
|
|
115
|
+
* end
|
|
116
|
+
*/
|
|
117
|
+
protected initialize(): Promise<void>;
|
|
118
|
+
private disposeChangeFeed;
|
|
119
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { CouchDBRepository } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { NanoAdapter } from "./adapter.cjs";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
5
|
+
import { ContextOf, FlagsOf } from "@decaf-ts/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description Type for Nano database repositories
|
|
8
|
+
* @summary A specialized repository type for working with Nano databases, extending the base Repository
|
|
9
|
+
* with Nano-specific adapter, flags, and context types
|
|
10
|
+
* @template M - Type extending Model that this repository will manage
|
|
11
|
+
* @typedef {Repository<M, MangoQuery, NanoAdapter, NanoFlags, Context<NanoFlags>>} NanoRepository
|
|
12
|
+
* @memberOf module:for-nano
|
|
13
|
+
*/
|
|
14
|
+
export declare class NanoRepository<M extends Model> extends CouchDBRepository<M, NanoAdapter> {
|
|
15
|
+
constructor(adapter: NanoAdapter, model: Constructor<M>, force?: boolean);
|
|
16
|
+
override(flags: Partial<FlagsOf<ContextOf<NanoAdapter>>>): this;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
|
+
import { CouchDBRepository } from "@decaf-ts/for-couchdb";
|
|
3
|
+
import { NanoAdapter } from "./adapter.js";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
5
|
+
import { ContextOf, FlagsOf } from "@decaf-ts/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description Type for Nano database repositories
|
|
8
|
+
* @summary A specialized repository type for working with Nano databases, extending the base Repository
|
|
9
|
+
* with Nano-specific adapter, flags, and context types
|
|
10
|
+
* @template M - Type extending Model that this repository will manage
|
|
11
|
+
* @typedef {Repository<M, MangoQuery, NanoAdapter, NanoFlags, Context<NanoFlags>>} NanoRepository
|
|
12
|
+
* @memberOf module:for-nano
|
|
13
|
+
*/
|
|
14
|
+
export declare class NanoRepository<M extends Model> extends CouchDBRepository<M, NanoAdapter> {
|
|
15
|
+
constructor(adapter: NanoAdapter, model: Constructor<M>, force?: boolean);
|
|
16
|
+
override(flags: Partial<FlagsOf<ContextOf<NanoAdapter>>>): this;
|
|
17
|
+
}
|