liwi-subscribe-store 10.3.2 → 11.0.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/CHANGELOG.md +22 -0
- package/dist/definitions/AbstractSubscribableStoreQuery.d.ts.map +1 -1
- package/dist/definitions/SubscribeStore.d.ts +3 -3
- package/dist/definitions/SubscribeStore.d.ts.map +1 -1
- package/dist/index-browser.es.js +202 -229
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-browsermodern.es.js +2 -0
- package/dist/index-browsermodern.es.js.map +1 -1
- package/dist/{index-node16.mjs → index-node18.mjs} +3 -1
- package/dist/index-node18.mjs.map +1 -0
- package/package.json +22 -20
- package/src/AbstractSubscribableStoreQuery.ts +1 -0
- package/src/SubscribeStore.ts +3 -3
- package/dist/index-node16.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [11.0.0](https://github.com/liwijs/liwi/compare/v10.5.0...v11.0.0) (2023-07-29)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### ⚠ BREAKING CHANGES
|
|
10
|
+
|
|
11
|
+
* drop node 16
|
|
12
|
+
|
|
13
|
+
### Code Refactoring
|
|
14
|
+
|
|
15
|
+
* update to node 18 ([e2dcbf8](https://github.com/liwijs/liwi/commit/e2dcbf8f5f6f32da6daa583fe352a453231c0c40))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [10.4.0](https://github.com/liwijs/liwi/compare/v10.3.3...v10.4.0) (2023-07-28)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* add types in exports for typescript 5 ([0630185](https://github.com/liwijs/liwi/commit/0630185dee33a72b43b29848d6001bb54cb4c4b9))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [10.3.2](https://github.com/liwijs/liwi/compare/v10.3.1...v10.3.2) (2023-01-31)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package liwi-subscribe-store
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSubscribableStoreQuery.d.ts","sourceRoot":"","sources":["../../src/AbstractSubscribableStoreQuery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSubscribableStoreQuery.d.ts","sourceRoot":"","sources":["../../src/AbstractSubscribableStoreQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,8BAA8B,CAC1D,OAAO,SAAS,MAAM,KAAK,EAC3B,QAAQ,SAAS,eAAe,EAChC,KAAK,SAAS,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EACnD,eAAe,SAAS,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,EAClD,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,EAC1C,MAAM,GAAG,KAAK,CACd,YAAW,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IAE1C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAInC,mBAAmB,CACjB,MAAM,EAAE,MAAM,SAAS,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GACzD,KAAK;IAIR,OAAO,CAAC,eAAe,CAAC,CAOtB;IAEF,iBAAiB,CACf,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,GACzE,IAAI;IAIP,iBAAiB,IAAI,cAAc,CACjC,OAAO,EACP,QAAQ,EACR,KAAK,EACL,eAAe,EACf,GAAG,EACH,GAAG,CACJ;IAOD,QAAQ,CAAC,KAAK,CAAC,CAAC,EACd,WAAW,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAC9C,OAAO,CAAC,CAAC,CAAC;IAEb,iBAAiB,CACf,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAC5C,iBAAiB;IAIpB,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,iBAAiB;IAI3E,QAAQ,CAAC,UAAU,CACjB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAC7C,eAAe,EAAE,OAAO,GACvB,iBAAiB;CACrB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { Store as StoreInterface, AbstractConnection, UpsertResult, SubscribableStoreQuery, AbstractStoreCursor, SubscribableStore, QueryParams, UpsertPartialObject, BaseModel, InsertType, Update, Criteria, Sort, QueryOptions, Transformer, AllowedKeyValue, OptionalBaseModelKeysForInsert } from 'liwi-store';
|
|
2
2
|
export type Actions<Model> = {
|
|
3
|
+
type: 'deleted';
|
|
4
|
+
prev: Model[];
|
|
5
|
+
} | {
|
|
3
6
|
type: 'inserted';
|
|
4
7
|
next: Model[];
|
|
5
8
|
} | {
|
|
6
9
|
type: 'updated';
|
|
7
10
|
changes: [Model, Model][];
|
|
8
|
-
} | {
|
|
9
|
-
type: 'deleted';
|
|
10
|
-
prev: Model[];
|
|
11
11
|
};
|
|
12
12
|
export type Listener<Model> = (action: Actions<Model>) => unknown;
|
|
13
13
|
export default class SubscribeStore<KeyPath extends keyof Model, KeyValue extends AllowedKeyValue, Model extends BaseModel & Record<KeyPath, KeyValue>, ModelInsertType extends InsertType<Model, KeyPath>, Connection extends AbstractConnection, Store extends SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>> implements StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscribeStore.d.ts","sourceRoot":"","sources":["../../src/SubscribeStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,IAAI,cAAc,EACvB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,OAAO,CAAC,KAAK,IACrB;IAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"SubscribeStore.d.ts","sourceRoot":"","sources":["../../src/SubscribeStore.ts"],"names":[],"mappings":"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"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -14,7 +14,7 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
14
14
|
_proto.subscribe = function subscribe(callback) {
|
|
15
15
|
this.listeners.add(callback);
|
|
16
16
|
return function () {
|
|
17
|
-
return this.listeners
|
|
17
|
+
return this.listeners.delete(callback);
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
_proto.callSubscribed = function callSubscribed(action) {
|
|
@@ -45,22 +45,20 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
45
45
|
var _insertOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(object) {
|
|
46
46
|
var inserted;
|
|
47
47
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
48
|
-
while (1) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return _context.stop();
|
|
63
|
-
}
|
|
48
|
+
while (1) switch (_context.prev = _context.next) {
|
|
49
|
+
case 0:
|
|
50
|
+
_context.next = 2;
|
|
51
|
+
return this.store.insertOne(object);
|
|
52
|
+
case 2:
|
|
53
|
+
inserted = _context.sent;
|
|
54
|
+
this.callSubscribed({
|
|
55
|
+
type: 'inserted',
|
|
56
|
+
next: [inserted]
|
|
57
|
+
});
|
|
58
|
+
return _context.abrupt("return", inserted);
|
|
59
|
+
case 5:
|
|
60
|
+
case "end":
|
|
61
|
+
return _context.stop();
|
|
64
62
|
}
|
|
65
63
|
}, _callee, this);
|
|
66
64
|
}));
|
|
@@ -72,22 +70,20 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
72
70
|
var _replaceOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(object) {
|
|
73
71
|
var replaced;
|
|
74
72
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
75
|
-
while (1) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return _context2.stop();
|
|
90
|
-
}
|
|
73
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
_context2.next = 2;
|
|
76
|
+
return this.store.replaceOne(object);
|
|
77
|
+
case 2:
|
|
78
|
+
replaced = _context2.sent;
|
|
79
|
+
this.callSubscribed({
|
|
80
|
+
type: 'updated',
|
|
81
|
+
changes: [[object, replaced]]
|
|
82
|
+
});
|
|
83
|
+
return _context2.abrupt("return", replaced);
|
|
84
|
+
case 5:
|
|
85
|
+
case "end":
|
|
86
|
+
return _context2.stop();
|
|
91
87
|
}
|
|
92
88
|
}, _callee2, this);
|
|
93
89
|
}));
|
|
@@ -99,24 +95,22 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
99
95
|
var _replaceSeveral = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(objects) {
|
|
100
96
|
var replacedObjects;
|
|
101
97
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
102
|
-
while (1) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return _context3.stop();
|
|
119
|
-
}
|
|
98
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
99
|
+
case 0:
|
|
100
|
+
_context3.next = 2;
|
|
101
|
+
return this.store.replaceSeveral(objects);
|
|
102
|
+
case 2:
|
|
103
|
+
replacedObjects = _context3.sent;
|
|
104
|
+
this.callSubscribed({
|
|
105
|
+
type: 'updated',
|
|
106
|
+
changes: objects.map(function (prev, index) {
|
|
107
|
+
return [prev, replacedObjects[index]];
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
return _context3.abrupt("return", replacedObjects);
|
|
111
|
+
case 5:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context3.stop();
|
|
120
114
|
}
|
|
121
115
|
}, _callee3, this);
|
|
122
116
|
}));
|
|
@@ -128,18 +122,16 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
128
122
|
var _upsertOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(object, setOnInsertPartialObject) {
|
|
129
123
|
var result;
|
|
130
124
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
131
|
-
while (1) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
return _context4.stop();
|
|
142
|
-
}
|
|
125
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
126
|
+
case 0:
|
|
127
|
+
_context4.next = 2;
|
|
128
|
+
return this.upsertOneWithInfo(object, setOnInsertPartialObject);
|
|
129
|
+
case 2:
|
|
130
|
+
result = _context4.sent;
|
|
131
|
+
return _context4.abrupt("return", result.object);
|
|
132
|
+
case 4:
|
|
133
|
+
case "end":
|
|
134
|
+
return _context4.stop();
|
|
143
135
|
}
|
|
144
136
|
}, _callee4, this);
|
|
145
137
|
}));
|
|
@@ -151,31 +143,29 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
151
143
|
var _upsertOneWithInfo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(object, setOnInsertPartialObject) {
|
|
152
144
|
var upsertedWithInfo;
|
|
153
145
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
154
|
-
while (1) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
_context5.next = 7;
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
this.callSubscribed({
|
|
166
|
-
type: 'inserted',
|
|
167
|
-
next: [upsertedWithInfo.object]
|
|
168
|
-
});
|
|
169
|
-
_context5.next = 8;
|
|
146
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
147
|
+
case 0:
|
|
148
|
+
_context5.next = 2;
|
|
149
|
+
return this.store.upsertOneWithInfo(object, setOnInsertPartialObject);
|
|
150
|
+
case 2:
|
|
151
|
+
upsertedWithInfo = _context5.sent;
|
|
152
|
+
if (!upsertedWithInfo.inserted) {
|
|
153
|
+
_context5.next = 7;
|
|
170
154
|
break;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
155
|
+
}
|
|
156
|
+
this.callSubscribed({
|
|
157
|
+
type: 'inserted',
|
|
158
|
+
next: [upsertedWithInfo.object]
|
|
159
|
+
});
|
|
160
|
+
_context5.next = 8;
|
|
161
|
+
break;
|
|
162
|
+
case 7:
|
|
163
|
+
throw new Error('TODO');
|
|
164
|
+
case 8:
|
|
165
|
+
return _context5.abrupt("return", upsertedWithInfo);
|
|
166
|
+
case 9:
|
|
167
|
+
case "end":
|
|
168
|
+
return _context5.stop();
|
|
179
169
|
}
|
|
180
170
|
}, _callee5, this);
|
|
181
171
|
}));
|
|
@@ -187,20 +177,18 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
187
177
|
var _partialUpdateByKey = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(key, partialUpdate, criteria) {
|
|
188
178
|
var _extends2;
|
|
189
179
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
190
|
-
while (1) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return _context6.stop();
|
|
203
|
-
}
|
|
180
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
181
|
+
case 0:
|
|
182
|
+
_context6.t0 = this;
|
|
183
|
+
_context6.next = 3;
|
|
184
|
+
return this.findOne(_extends((_extends2 = {}, _extends2[this.store.keyPath] = key, _extends2), criteria));
|
|
185
|
+
case 3:
|
|
186
|
+
_context6.t1 = _context6.sent;
|
|
187
|
+
_context6.t2 = partialUpdate;
|
|
188
|
+
return _context6.abrupt("return", _context6.t0.partialUpdateOne.call(_context6.t0, _context6.t1, _context6.t2));
|
|
189
|
+
case 6:
|
|
190
|
+
case "end":
|
|
191
|
+
return _context6.stop();
|
|
204
192
|
}
|
|
205
193
|
}, _callee6, this);
|
|
206
194
|
}));
|
|
@@ -212,22 +200,20 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
212
200
|
var _partialUpdateOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(object, partialUpdate) {
|
|
213
201
|
var updated;
|
|
214
202
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
215
|
-
while (1) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
return _context7.stop();
|
|
230
|
-
}
|
|
203
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
204
|
+
case 0:
|
|
205
|
+
_context7.next = 2;
|
|
206
|
+
return this.store.partialUpdateOne(object, partialUpdate);
|
|
207
|
+
case 2:
|
|
208
|
+
updated = _context7.sent;
|
|
209
|
+
this.callSubscribed({
|
|
210
|
+
type: 'updated',
|
|
211
|
+
changes: [[object, updated]]
|
|
212
|
+
});
|
|
213
|
+
return _context7.abrupt("return", updated);
|
|
214
|
+
case 5:
|
|
215
|
+
case "end":
|
|
216
|
+
return _context7.stop();
|
|
231
217
|
}
|
|
232
218
|
}, _callee7, this);
|
|
233
219
|
}));
|
|
@@ -240,48 +226,44 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
240
226
|
var _this2 = this;
|
|
241
227
|
var cursor, changes;
|
|
242
228
|
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
243
|
-
while (1) {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
var
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
case 7:
|
|
282
|
-
case "end":
|
|
283
|
-
return _context9.stop();
|
|
284
|
-
}
|
|
229
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
230
|
+
case 0:
|
|
231
|
+
_context9.next = 2;
|
|
232
|
+
return this.store.cursor(criteria);
|
|
233
|
+
case 2:
|
|
234
|
+
cursor = _context9.sent;
|
|
235
|
+
changes = [];
|
|
236
|
+
_context9.next = 6;
|
|
237
|
+
return cursor.forEach( /*#__PURE__*/function () {
|
|
238
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(model) {
|
|
239
|
+
var key, updated;
|
|
240
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
241
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
242
|
+
case 0:
|
|
243
|
+
key = model[_this2.store.keyPath];
|
|
244
|
+
_context8.next = 3;
|
|
245
|
+
return _this2.store.partialUpdateByKey(key, partialUpdate, criteria);
|
|
246
|
+
case 3:
|
|
247
|
+
updated = _context8.sent;
|
|
248
|
+
changes.push([model, updated]);
|
|
249
|
+
case 5:
|
|
250
|
+
case "end":
|
|
251
|
+
return _context8.stop();
|
|
252
|
+
}
|
|
253
|
+
}, _callee8);
|
|
254
|
+
}));
|
|
255
|
+
return function () {
|
|
256
|
+
return _ref.apply(this, arguments);
|
|
257
|
+
};
|
|
258
|
+
}());
|
|
259
|
+
case 6:
|
|
260
|
+
this.callSubscribed({
|
|
261
|
+
type: 'updated',
|
|
262
|
+
changes: changes
|
|
263
|
+
});
|
|
264
|
+
case 7:
|
|
265
|
+
case "end":
|
|
266
|
+
return _context9.stop();
|
|
285
267
|
}
|
|
286
268
|
}, _callee9, this);
|
|
287
269
|
}));
|
|
@@ -292,19 +274,17 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
292
274
|
_proto.deleteByKey = /*#__PURE__*/function () {
|
|
293
275
|
var _deleteByKey = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(key, criteria) {
|
|
294
276
|
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
295
|
-
while (1) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
return _context10.stop();
|
|
307
|
-
}
|
|
277
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
278
|
+
case 0:
|
|
279
|
+
_context10.t0 = this;
|
|
280
|
+
_context10.next = 3;
|
|
281
|
+
return this.findByKey(key, criteria);
|
|
282
|
+
case 3:
|
|
283
|
+
_context10.t1 = _context10.sent;
|
|
284
|
+
return _context10.abrupt("return", _context10.t0.deleteOne.call(_context10.t0, _context10.t1));
|
|
285
|
+
case 5:
|
|
286
|
+
case "end":
|
|
287
|
+
return _context10.stop();
|
|
308
288
|
}
|
|
309
289
|
}, _callee10, this);
|
|
310
290
|
}));
|
|
@@ -315,20 +295,18 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
315
295
|
_proto.deleteOne = /*#__PURE__*/function () {
|
|
316
296
|
var _deleteOne = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee11(object) {
|
|
317
297
|
return _regeneratorRuntime().wrap(function _callee11$(_context11) {
|
|
318
|
-
while (1) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
return _context11.stop();
|
|
331
|
-
}
|
|
298
|
+
while (1) switch (_context11.prev = _context11.next) {
|
|
299
|
+
case 0:
|
|
300
|
+
_context11.next = 2;
|
|
301
|
+
return this.store.deleteOne(object);
|
|
302
|
+
case 2:
|
|
303
|
+
this.callSubscribed({
|
|
304
|
+
type: 'deleted',
|
|
305
|
+
prev: [object]
|
|
306
|
+
});
|
|
307
|
+
case 3:
|
|
308
|
+
case "end":
|
|
309
|
+
return _context11.stop();
|
|
332
310
|
}
|
|
333
311
|
}, _callee11, this);
|
|
334
312
|
}));
|
|
@@ -340,28 +318,26 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
340
318
|
var _deleteMany = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee12(criteria) {
|
|
341
319
|
var cursor, prev;
|
|
342
320
|
return _regeneratorRuntime().wrap(function _callee12$(_context12) {
|
|
343
|
-
while (1) {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
return _context12.stop();
|
|
364
|
-
}
|
|
321
|
+
while (1) switch (_context12.prev = _context12.next) {
|
|
322
|
+
case 0:
|
|
323
|
+
_context12.next = 2;
|
|
324
|
+
return this.store.cursor(criteria);
|
|
325
|
+
case 2:
|
|
326
|
+
cursor = _context12.sent;
|
|
327
|
+
_context12.next = 5;
|
|
328
|
+
return cursor.toArray();
|
|
329
|
+
case 5:
|
|
330
|
+
prev = _context12.sent;
|
|
331
|
+
_context12.next = 8;
|
|
332
|
+
return this.store.deleteMany(criteria);
|
|
333
|
+
case 8:
|
|
334
|
+
this.callSubscribed({
|
|
335
|
+
type: 'deleted',
|
|
336
|
+
prev: prev
|
|
337
|
+
});
|
|
338
|
+
case 9:
|
|
339
|
+
case "end":
|
|
340
|
+
return _context12.stop();
|
|
365
341
|
}
|
|
366
342
|
}, _callee12, this);
|
|
367
343
|
}));
|
|
@@ -372,14 +348,12 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
372
348
|
_proto.count = /*#__PURE__*/function () {
|
|
373
349
|
var _count = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee13(criteria) {
|
|
374
350
|
return _regeneratorRuntime().wrap(function _callee13$(_context13) {
|
|
375
|
-
while (1) {
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
return _context13.stop();
|
|
382
|
-
}
|
|
351
|
+
while (1) switch (_context13.prev = _context13.next) {
|
|
352
|
+
case 0:
|
|
353
|
+
return _context13.abrupt("return", this.store.count(criteria));
|
|
354
|
+
case 1:
|
|
355
|
+
case "end":
|
|
356
|
+
return _context13.stop();
|
|
383
357
|
}
|
|
384
358
|
}, _callee13, this);
|
|
385
359
|
}));
|
|
@@ -391,19 +365,17 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
391
365
|
var _cursor = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee14(criteria, sort) {
|
|
392
366
|
var cursor;
|
|
393
367
|
return _regeneratorRuntime().wrap(function _callee14$(_context14) {
|
|
394
|
-
while (1) {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
return _context14.stop();
|
|
406
|
-
}
|
|
368
|
+
while (1) switch (_context14.prev = _context14.next) {
|
|
369
|
+
case 0:
|
|
370
|
+
_context14.next = 2;
|
|
371
|
+
return this.store.cursor(criteria, sort);
|
|
372
|
+
case 2:
|
|
373
|
+
cursor = _context14.sent;
|
|
374
|
+
cursor.overrideStore(this);
|
|
375
|
+
return _context14.abrupt("return", cursor);
|
|
376
|
+
case 5:
|
|
377
|
+
case "end":
|
|
378
|
+
return _context14.stop();
|
|
407
379
|
}
|
|
408
380
|
}, _callee14, this);
|
|
409
381
|
}));
|
|
@@ -420,6 +392,7 @@ var SubscribeStore = /*#__PURE__*/function () {
|
|
|
420
392
|
return SubscribeStore;
|
|
421
393
|
}();
|
|
422
394
|
|
|
395
|
+
/* eslint-disable @typescript-eslint/class-methods-use-this */
|
|
423
396
|
var AbstractSubscribableStoreQuery = /*#__PURE__*/function () {
|
|
424
397
|
function AbstractSubscribableStoreQuery() {}
|
|
425
398
|
var _proto = AbstractSubscribableStoreQuery.prototype;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browser.es.js","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] }\n | { type: 'deleted'; prev: Model[] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners: Set<Listener<Model>> = new Set();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","import type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","store","listeners","Set","keyPath","subscribe","callback","add","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","object","inserted","type","next","replaceOne","replaced","changes","replaceSeveral","objects","replacedObjects","map","prev","index","upsertOne","setOnInsertPartialObject","upsertOneWithInfo","result","upsertedWithInfo","Error","partialUpdateByKey","partialUpdate","partialUpdateOne","updated","partialUpdateMany","cursor","model","push","deleteByKey","deleteOne","deleteMany","toArray","count","overrideStore","connection","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browser.es.js","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'deleted'; prev: Model[] }\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners = new Set<Listener<Model>>();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","/* eslint-disable @typescript-eslint/class-methods-use-this */\nimport type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","store","listeners","Set","keyPath","_proto","prototype","subscribe","callback","add","delete","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","_insertOne","_asyncToGenerator","_regeneratorRuntime","mark","_callee","object","inserted","wrap","_callee$","_context","prev","next","sent","type","abrupt","stop","apply","arguments","replaceOne","_replaceOne","_callee2","replaced","_callee2$","_context2","changes","replaceSeveral","_replaceSeveral","_callee3","objects","replacedObjects","_callee3$","_context3","map","index","upsertOne","_upsertOne","_callee4","setOnInsertPartialObject","result","_callee4$","_context4","upsertOneWithInfo","_upsertOneWithInfo","_callee5","upsertedWithInfo","_callee5$","_context5","Error","partialUpdateByKey","_partialUpdateByKey","_callee6","partialUpdate","_extends2","_callee6$","_context6","t0","_extends","t1","t2","partialUpdateOne","call","_partialUpdateOne","_callee7","updated","_callee7$","_context7","partialUpdateMany","_partialUpdateMany","_callee9","_this2","cursor","_callee9$","_context9","_ref","_callee8","model","_callee8$","_context8","push","deleteByKey","_deleteByKey","_callee10","_callee10$","_context10","deleteOne","_deleteOne","_callee11","_callee11$","_context11","deleteMany","_deleteMany","_callee12","_callee12$","_context12","toArray","count","_count","_callee13","_callee13$","_context13","_cursor","_callee14","_callee14$","_context14","overrideStore","_createClass","get","connection","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-browsermodern.es.js","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] }\n | { type: 'deleted'; prev: Model[] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners: Set<Listener<Model>> = new Set();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","import type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","listeners","Set","constructor","store","keyPath","connection","subscribe","callback","add","delete","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","object","inserted","type","next","replaceOne","replaced","changes","replaceSeveral","objects","replacedObjects","map","prev","index","upsertOne","setOnInsertPartialObject","result","upsertOneWithInfo","upsertedWithInfo","Error","partialUpdateByKey","partialUpdate","partialUpdateOne","updated","partialUpdateMany","cursor","model","push","deleteByKey","deleteOne","deleteMany","toArray","count","overrideStore","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-browsermodern.es.js","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'deleted'; prev: Model[] }\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners = new Set<Listener<Model>>();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","/* eslint-disable @typescript-eslint/class-methods-use-this */\nimport type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","listeners","Set","constructor","store","keyPath","connection","subscribe","callback","add","delete","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","object","inserted","type","next","replaceOne","replaced","changes","replaceSeveral","objects","replacedObjects","map","prev","index","upsertOne","setOnInsertPartialObject","result","upsertOneWithInfo","upsertedWithInfo","Error","partialUpdateByKey","partialUpdate","partialUpdateOne","updated","partialUpdateMany","cursor","model","push","deleteByKey","deleteOne","deleteMany","toArray","count","overrideStore","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|
|
@@ -131,6 +131,8 @@ class SubscribeStore {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
/* eslint-disable @typescript-eslint/class-methods-use-this */
|
|
135
|
+
|
|
134
136
|
class AbstractSubscribableStoreQuery {
|
|
135
137
|
changeParams() {
|
|
136
138
|
throw new Error('Method not supported. Please create a new query.');
|
|
@@ -156,4 +158,4 @@ class AbstractSubscribableStoreQuery {
|
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
export { AbstractSubscribableStoreQuery, SubscribeStore };
|
|
159
|
-
//# sourceMappingURL=index-
|
|
161
|
+
//# sourceMappingURL=index-node18.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-node18.mjs","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'deleted'; prev: Model[] }\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners = new Set<Listener<Model>>();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","/* eslint-disable @typescript-eslint/class-methods-use-this */\nimport type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","listeners","Set","constructor","store","keyPath","connection","subscribe","callback","add","delete","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","object","inserted","type","next","replaceOne","replaced","changes","replaceSeveral","objects","replacedObjects","map","prev","index","upsertOne","setOnInsertPartialObject","result","upsertOneWithInfo","upsertedWithInfo","Error","partialUpdateByKey","partialUpdate","partialUpdateOne","updated","partialUpdateMany","cursor","model","push","deleteByKey","deleteOne","deleteMany","toArray","count","overrideStore","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "liwi-subscribe-store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0",
|
|
4
4
|
"description": "subscribe store proxy",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "Christophe Hurpeau <christophe@hurpeau.com> (https://christophe.hurpeau.com)",
|
|
@@ -13,24 +13,27 @@
|
|
|
13
13
|
"homepage": "https://github.com/liwijs/liwi",
|
|
14
14
|
"type": "module",
|
|
15
15
|
"engines": {
|
|
16
|
-
"node": ">=
|
|
16
|
+
"node": ">=18.12.0"
|
|
17
17
|
},
|
|
18
|
-
"browserslist":
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
"browserslist": {
|
|
19
|
+
"production": [
|
|
20
|
+
"defaults",
|
|
21
|
+
"> 0.2%",
|
|
22
|
+
"not ie < 12",
|
|
23
|
+
"not safari < 10",
|
|
24
|
+
"not ios_saf < 10"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"main": "./dist/index-node18.mjs",
|
|
26
28
|
"types": "./dist/definitions/index.d.ts",
|
|
27
29
|
"module": "./dist/index-browser.es.js",
|
|
28
30
|
"browser": "./dist/index-browser.es.js",
|
|
29
31
|
"exports": {
|
|
30
32
|
"./package.json": "./package.json",
|
|
31
33
|
".": {
|
|
34
|
+
"types": "./dist/definitions/index.d.ts",
|
|
32
35
|
"node": {
|
|
33
|
-
"import": "./dist/index-
|
|
36
|
+
"import": "./dist/index-node18.mjs"
|
|
34
37
|
},
|
|
35
38
|
"browser": {
|
|
36
39
|
"browser:modern": {
|
|
@@ -55,7 +58,7 @@
|
|
|
55
58
|
"babelEnvs": [
|
|
56
59
|
{
|
|
57
60
|
"target": "node",
|
|
58
|
-
"version": "
|
|
61
|
+
"version": "18"
|
|
59
62
|
},
|
|
60
63
|
{
|
|
61
64
|
"target": "browser",
|
|
@@ -70,15 +73,14 @@
|
|
|
70
73
|
]
|
|
71
74
|
},
|
|
72
75
|
"dependencies": {
|
|
73
|
-
"@babel/runtime": "^7.
|
|
74
|
-
"liwi-store": "
|
|
76
|
+
"@babel/runtime": "^7.22.6",
|
|
77
|
+
"liwi-store": "11.0.0"
|
|
75
78
|
},
|
|
76
79
|
"devDependencies": {
|
|
77
|
-
"@babel/core": "7.
|
|
78
|
-
"@babel/preset-env": "7.
|
|
79
|
-
"babel
|
|
80
|
-
"
|
|
81
|
-
"typescript": "4.9.5"
|
|
80
|
+
"@babel/core": "7.22.9",
|
|
81
|
+
"@babel/preset-env": "7.22.9",
|
|
82
|
+
"pob-babel": "36.2.0",
|
|
83
|
+
"typescript": "5.1.6"
|
|
82
84
|
},
|
|
83
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "12e1134c31e88de9e7b5f6abf1630969a1951ba0"
|
|
84
86
|
}
|
package/src/SubscribeStore.ts
CHANGED
|
@@ -20,9 +20,9 @@ import type {
|
|
|
20
20
|
} from 'liwi-store';
|
|
21
21
|
|
|
22
22
|
export type Actions<Model> =
|
|
23
|
+
| { type: 'deleted'; prev: Model[] }
|
|
23
24
|
| { type: 'inserted'; next: Model[] }
|
|
24
|
-
| { type: 'updated'; changes: [Model, Model][] }
|
|
25
|
-
| { type: 'deleted'; prev: Model[] };
|
|
25
|
+
| { type: 'updated'; changes: [Model, Model][] };
|
|
26
26
|
|
|
27
27
|
export type Listener<Model> = (action: Actions<Model>) => unknown;
|
|
28
28
|
|
|
@@ -44,7 +44,7 @@ export default class SubscribeStore<
|
|
|
44
44
|
{
|
|
45
45
|
private readonly store: Store;
|
|
46
46
|
|
|
47
|
-
private readonly listeners
|
|
47
|
+
private readonly listeners = new Set<Listener<Model>>();
|
|
48
48
|
|
|
49
49
|
readonly keyPath: KeyPath;
|
|
50
50
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-node16.mjs","sources":["../src/SubscribeStore.ts","../src/AbstractSubscribableStoreQuery.ts"],"sourcesContent":["/* eslint-disable max-lines */\nimport type {\n Store as StoreInterface,\n AbstractConnection,\n UpsertResult,\n SubscribableStoreQuery,\n AbstractStoreCursor,\n SubscribableStore,\n QueryParams,\n UpsertPartialObject,\n BaseModel,\n InsertType,\n Update,\n Criteria,\n Sort,\n QueryOptions,\n Transformer,\n AllowedKeyValue,\n OptionalBaseModelKeysForInsert,\n} from 'liwi-store';\n\nexport type Actions<Model> =\n | { type: 'inserted'; next: Model[] }\n | { type: 'updated'; changes: [Model, Model][] }\n | { type: 'deleted'; prev: Model[] };\n\nexport type Listener<Model> = (action: Actions<Model>) => unknown;\n\nexport default class SubscribeStore<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Connection extends AbstractConnection,\n Store extends SubscribableStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n Connection\n >,\n> implements\n StoreInterface<KeyPath, KeyValue, Model, ModelInsertType, Connection>\n{\n private readonly store: Store;\n\n private readonly listeners: Set<Listener<Model>> = new Set();\n\n readonly keyPath: KeyPath;\n\n constructor(store: Store) {\n this.store = store;\n this.keyPath = store.keyPath;\n }\n\n get connection(): Connection {\n return this.store.connection;\n }\n\n subscribe(callback: Listener<Model>): () => void {\n this.listeners.add(callback);\n return () => this.listeners.delete(callback);\n }\n\n callSubscribed(action: Actions<Model>): void {\n this.listeners.forEach((listener) => listener(action));\n }\n\n createQuerySingleItem<\n Result extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Result>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Result,\n Params\n > = this.store.createQuerySingleItem<Result, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n createQueryCollection<\n Item extends Record<KeyPath, KeyValue>,\n Params extends QueryParams<Params>,\n >(\n options: QueryOptions<Model>,\n transformer?: Transformer<Model, Item>,\n ): SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > {\n const query: SubscribableStoreQuery<\n KeyPath,\n KeyValue,\n Model,\n SubscribableStore<KeyPath, KeyValue, Model, ModelInsertType, Connection>,\n Item[],\n Params\n > = this.store.createQueryCollection<Item, Params>(options, transformer);\n query.setSubscribeStore(this);\n return query;\n }\n\n findAll(criteria?: Criteria<Model>, sort?: Sort<Model>): Promise<Model[]> {\n return this.store.findAll(criteria, sort);\n }\n\n findByKey(\n key: KeyValue,\n criteria?: Criteria<Model>,\n ): Promise<Model | undefined> {\n return this.store.findByKey(key, criteria);\n }\n\n findOne(\n criteria: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<Model | undefined> {\n return this.store.findOne(criteria, sort);\n }\n\n async insertOne(object: ModelInsertType): Promise<Model> {\n const inserted = await this.store.insertOne(object);\n this.callSubscribed({ type: 'inserted', next: [inserted] });\n return inserted;\n }\n\n async replaceOne(object: Model): Promise<Model> {\n const replaced = await this.store.replaceOne(object);\n this.callSubscribed({ type: 'updated', changes: [[object, replaced]] });\n return replaced;\n }\n\n async replaceSeveral(objects: Model[]): Promise<Model[]> {\n const replacedObjects = await this.store.replaceSeveral(objects);\n this.callSubscribed({\n type: 'updated',\n changes: objects.map((prev, index) => [prev, replacedObjects[index]]),\n });\n return replacedObjects;\n }\n\n async upsertOne<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<Model> {\n const result = await this.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n return result.object;\n }\n\n async upsertOneWithInfo<\n K extends Exclude<keyof Model, KeyPath | OptionalBaseModelKeysForInsert>,\n >(\n object: UpsertPartialObject<KeyPath, KeyValue, Model, K>,\n setOnInsertPartialObject?: Update<Model>['$setOnInsert'],\n ): Promise<UpsertResult<Model>> {\n const upsertedWithInfo = await this.store.upsertOneWithInfo(\n object,\n setOnInsertPartialObject,\n );\n if (upsertedWithInfo.inserted) {\n this.callSubscribed({\n type: 'inserted',\n next: [upsertedWithInfo.object],\n });\n } else {\n throw new Error('TODO');\n }\n return upsertedWithInfo;\n }\n\n async partialUpdateByKey(\n key: KeyValue,\n partialUpdate: Update<Model>,\n criteria?: Criteria<Model>,\n ): Promise<Model> {\n return this.partialUpdateOne(\n (await this.findOne({\n [this.store.keyPath]: key,\n ...criteria,\n } as Criteria<Model>))!,\n partialUpdate,\n );\n }\n\n async partialUpdateOne(\n object: Model,\n partialUpdate: Update<Model>,\n ): Promise<Model> {\n const updated = await this.store.partialUpdateOne(object, partialUpdate);\n this.callSubscribed({ type: 'updated', changes: [[object, updated]] });\n return updated;\n }\n\n async partialUpdateMany(\n criteria: Criteria<Model>,\n partialUpdate: Update<Model>,\n ): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const changes: [Model, Model][] = [];\n\n await cursor.forEach(async (model) => {\n const key = model[this.store.keyPath];\n const updated = await this.store.partialUpdateByKey(\n key,\n partialUpdate,\n criteria,\n );\n changes.push([model, updated]);\n });\n this.callSubscribed({ type: 'updated', changes });\n }\n\n async deleteByKey(key: KeyValue, criteria?: Criteria<Model>): Promise<void> {\n return this.deleteOne((await this.findByKey(key, criteria))!);\n }\n\n async deleteOne(object: Model): Promise<void> {\n await this.store.deleteOne(object);\n this.callSubscribed({ type: 'deleted', prev: [object] });\n }\n\n async deleteMany(criteria: Criteria<Model>): Promise<void> {\n const cursor = await this.store.cursor(criteria);\n const prev: Model[] = await cursor.toArray();\n await this.store.deleteMany(criteria);\n this.callSubscribed({ type: 'deleted', prev });\n }\n\n async count(criteria?: Criteria<Model>): Promise<number> {\n return this.store.count(criteria);\n }\n\n async cursor<Result extends Partial<Model> = Model>(\n criteria?: Criteria<Model>,\n sort?: Sort<Model>,\n ): Promise<AbstractStoreCursor<any, KeyValue, Model, Result>> {\n const cursor = await this.store.cursor<Result>(criteria, sort);\n cursor.overrideStore(this);\n return cursor;\n }\n}\n","import type {\n Query,\n SubscribeCallback,\n QuerySubscription,\n QueryResult,\n QueryParams,\n BaseModel,\n InsertType,\n AllowedKeyValue,\n} from 'liwi-store';\nimport type SubscribeStore from './SubscribeStore';\n\nexport default abstract class AbstractSubscribableStoreQuery<\n KeyPath extends keyof Model,\n KeyValue extends AllowedKeyValue,\n Model extends BaseModel & Record<KeyPath, KeyValue>,\n ModelInsertType extends InsertType<Model, KeyPath>,\n Params extends QueryParams<Params> = never,\n Result = Model,\n> implements Query<Result, Params, KeyValue>\n{\n changeParams(params: Params): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n changePartialParams(\n params: Params extends undefined ? never : Partial<Params>,\n ): never {\n throw new Error('Method not supported. Please create a new query.');\n }\n\n private _subscribeStore?: SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n >;\n\n setSubscribeStore(\n store: SubscribeStore<KeyPath, KeyValue, Model, ModelInsertType, any, any>,\n ): void {\n this._subscribeStore = store;\n }\n\n getSubscribeStore(): SubscribeStore<\n KeyPath,\n KeyValue,\n Model,\n ModelInsertType,\n any,\n any\n > {\n if (!this._subscribeStore) {\n throw new Error('_subscribeStore is not initialized');\n }\n return this._subscribeStore;\n }\n\n abstract fetch<T>(\n onFulfilled: (result: QueryResult<Result>) => T,\n ): Promise<T>;\n\n fetchAndSubscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n ): QuerySubscription {\n return this._subscribe(callback, true);\n }\n\n subscribe(callback: SubscribeCallback<KeyValue, Result>): QuerySubscription {\n return this._subscribe(callback, false);\n }\n\n abstract _subscribe(\n callback: SubscribeCallback<KeyValue, Result>,\n _includeInitial: boolean,\n ): QuerySubscription;\n}\n"],"names":["SubscribeStore","listeners","Set","constructor","store","keyPath","connection","subscribe","callback","add","delete","callSubscribed","action","forEach","listener","createQuerySingleItem","options","transformer","query","setSubscribeStore","createQueryCollection","findAll","criteria","sort","findByKey","key","findOne","insertOne","object","inserted","type","next","replaceOne","replaced","changes","replaceSeveral","objects","replacedObjects","map","prev","index","upsertOne","setOnInsertPartialObject","result","upsertOneWithInfo","upsertedWithInfo","Error","partialUpdateByKey","partialUpdate","partialUpdateOne","updated","partialUpdateMany","cursor","model","push","deleteByKey","deleteOne","deleteMany","toArray","count","overrideStore","AbstractSubscribableStoreQuery","changeParams","changePartialParams","_subscribeStore","getSubscribeStore","fetchAndSubscribe","_subscribe"],"mappings":"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"}
|