@instantdb/core 0.22.86-experimental.split-store.20249342206.1 → 0.22.86-experimental.split-store.20250097559.1
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/__tests__/src/store.test.ts +11 -4
- package/dist/commonjs/Reactor.d.ts +8 -8
- package/dist/commonjs/Reactor.d.ts.map +1 -1
- package/dist/commonjs/Reactor.js +15 -16
- package/dist/commonjs/Reactor.js.map +1 -1
- package/dist/commonjs/store.d.ts.map +1 -1
- package/dist/commonjs/store.js +1 -0
- package/dist/commonjs/store.js.map +1 -1
- package/dist/esm/Reactor.d.ts +8 -8
- package/dist/esm/Reactor.d.ts.map +1 -1
- package/dist/esm/Reactor.js +15 -16
- package/dist/esm/Reactor.js.map +1 -1
- package/dist/esm/store.d.ts.map +1 -1
- package/dist/esm/store.js +1 -0
- package/dist/esm/store.js.map +1 -1
- package/dist/standalone/index.js +70 -70
- package/dist/standalone/index.umd.cjs +1 -1
- package/package.json +2 -2
- package/src/Reactor.js +16 -17
- package/src/store.ts +1 -0
|
@@ -64,8 +64,13 @@ function checkIndexIntegrity({
|
|
|
64
64
|
const aevTriples = allMapValues(store.aev, 3).sort(tripleSort);
|
|
65
65
|
const vaeTriples = allMapValues(store.vae, 3);
|
|
66
66
|
|
|
67
|
-
// Check eav and aev have all the same
|
|
68
|
-
|
|
67
|
+
// Check eav and aev have all the same triples
|
|
68
|
+
for (let i = 0; i < eavTriples.length; i++) {
|
|
69
|
+
const et = eavTriples[i];
|
|
70
|
+
const at = aevTriples[i];
|
|
71
|
+
expect(et).toEqual(at);
|
|
72
|
+
}
|
|
73
|
+
expect(eavTriples.length).toEqual(aevTriples.length);
|
|
69
74
|
|
|
70
75
|
// Check vae doesn't have extra triples
|
|
71
76
|
for (const triple of vaeTriples) {
|
|
@@ -512,6 +517,8 @@ test('deepMerge', () => {
|
|
|
512
517
|
),
|
|
513
518
|
);
|
|
514
519
|
|
|
520
|
+
checkIndexIntegrity(gameCtx);
|
|
521
|
+
|
|
515
522
|
const updatedCtx = transact(
|
|
516
523
|
gameCtx.store,
|
|
517
524
|
gameCtx.attrsStore,
|
|
@@ -537,6 +544,7 @@ test('deepMerge', () => {
|
|
|
537
544
|
}),
|
|
538
545
|
),
|
|
539
546
|
);
|
|
547
|
+
|
|
540
548
|
const updatedGame = query(updatedCtx, {
|
|
541
549
|
games: { $: { where: { id: gameId } } },
|
|
542
550
|
}).data.games[0];
|
|
@@ -551,8 +559,7 @@ test('deepMerge', () => {
|
|
|
551
559
|
inventory: ['shield'],
|
|
552
560
|
locations: ['forest', undefined, 'castle'],
|
|
553
561
|
});
|
|
554
|
-
|
|
555
|
-
//checkIndexIntegrity(updatedCtx);
|
|
562
|
+
checkIndexIntegrity(updatedCtx);
|
|
556
563
|
});
|
|
557
564
|
|
|
558
565
|
test('recursive links w same id', () => {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export default class Reactor<RoomSchema extends import("./presence.ts").RoomSchemaShape = {}> {
|
|
5
5
|
constructor(config: any, Storage: typeof IndexedDBStorage | undefined, NetworkListener: typeof WindowNetworkListener | undefined, versions: any, EventSourceConstructor: any);
|
|
6
|
-
/** @type {
|
|
7
|
-
attrs:
|
|
6
|
+
/** @type {s.AttrsStore | undefined} */
|
|
7
|
+
attrs: s.AttrsStore | undefined;
|
|
8
8
|
_isOnline: boolean;
|
|
9
9
|
_isShutdown: boolean;
|
|
10
10
|
status: string;
|
|
@@ -79,7 +79,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
79
79
|
queryCacheLimit: any;
|
|
80
80
|
versions: any;
|
|
81
81
|
_beforeUnload(): void;
|
|
82
|
-
ensureAttrs():
|
|
82
|
+
ensureAttrs(): s.AttrsStore;
|
|
83
83
|
updateSchema(schema: any): void;
|
|
84
84
|
_reactorStats(): {
|
|
85
85
|
inFlightMutationCount: number;
|
|
@@ -143,16 +143,16 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
143
143
|
_cleanupQuery(q: any, hash: any): void;
|
|
144
144
|
/**
|
|
145
145
|
*
|
|
146
|
-
* @param {
|
|
146
|
+
* @param {s.AttrsStore} attrs
|
|
147
147
|
* @param {any} muts
|
|
148
148
|
* @param {number} [processedTxId]
|
|
149
149
|
*/
|
|
150
|
-
_rewriteMutations(attrs:
|
|
150
|
+
_rewriteMutations(attrs: s.AttrsStore, muts: any, processedTxId?: number): any;
|
|
151
151
|
_rewriteMutationsSorted(attrs: any, muts: any): any[];
|
|
152
152
|
/**
|
|
153
|
-
* @returns {
|
|
153
|
+
* @returns {s.AttrsStore}
|
|
154
154
|
*/
|
|
155
|
-
optimisticAttrs():
|
|
155
|
+
optimisticAttrs(): s.AttrsStore;
|
|
156
156
|
/** Runs instaql on a query and a store */
|
|
157
157
|
dataForQuery(hash: any): any;
|
|
158
158
|
_applyOptimisticUpdates(store: any, attrsStore: any, mutations: any, processedTxId: any): {
|
|
@@ -354,7 +354,7 @@ export type TransportType = import("./Connection.ts").TransportType;
|
|
|
354
354
|
export type EventSourceConstructor = import("./Connection.ts").EventSourceConstructor;
|
|
355
355
|
export type QuerySub = import("./reactorTypes.ts").QuerySub;
|
|
356
356
|
export type QuerySubInStorage = import("./reactorTypes.ts").QuerySubInStorage;
|
|
357
|
-
import * as
|
|
357
|
+
import * as s from './store.ts';
|
|
358
358
|
import { PersistedObject } from './utils/PersistedObject.ts';
|
|
359
359
|
import { SyncTable } from './SyncTable.ts';
|
|
360
360
|
import { Deferred } from './utils/Deferred.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"AAyMA;;GAEG;AACH,6BAFwD,UAAU,SAArD,OAAQ,eAAe,EAAE,eAAgB;IAmEpD,8KAiHC;IAjLD,
|
|
1
|
+
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"AAyMA;;GAEG;AACH,6BAFwD,UAAU,SAArD,OAAQ,eAAe,EAAE,eAAgB;IAmEpD,8KAiHC;IAjLD,uCAAuC;IACvC,OADW,CAAC,CAAC,UAAU,GAAG,SAAS,CAC7B;IACN,mBAAiB;IACjB,qBAAoB;IACpB,eAA2B;IAE3B,mEAAmE;IACnE,WADW,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CACrD;IAEV,8BAA8B;IAC9B,mCAAG;IAEH,wBAAwB;IACxB,YADW,SAAS,CACT;IAEX,wEAAwE;IACxE,UADW,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAAC,CAAC,CACtD;IACd,gFAAgF;IAChF,eADW,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CACzD;IACnB,eAAa;IACb,gBAAc;IACd,wBAAsB;IACtB,2BAAyB;IACzB,YAAO;IACP,qCAAkC;IAClC,0BAA2B;IAC3B,4BAAwB;IACxB,yBAAyB;IACzB,YADW,UAAU,CACV;IACX,4BAA4B;IAC5B,gBADW,aAAa,CACF;IAEtB,qCAAqC;IACrC,cADW,sBAAsB,CACpB;IACb,6BAA6B;IAC7B,OADW,OAAO,GAAG,IAAI,CACZ;IACb,qBAAsB;IACtB,oBAAqB;IACrB,gEAAgE;IAChE,wBADW,OAAO,CAAC,IAAI,GAAG;QAAC,KAAK,EAAE;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC,GAAG,IAAI,CAC9B;IAE9B,+DAA+D;IAC/D,YADW,IAAI,GAAG,OAAO,sBAAsB,EAAE,SAAS,CACxC;IAElB,yCAAyC;IACzC,mBADU,gBAAgB,GAAG,SAAS,CACpB;IAElB,iEAAiE;IACjE,QADW,MAAM,CAAC,MAAM,EAAE;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAC,CAAC,CACjD;IACZ,sCAAsC;IACtC,oBADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACV;IACxB,cAAe;IACf,uBAAqB;IACrB,mBAAoB;IACpB,kFAAkF;IAClF,oBADW;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;KAAC,CACF;IAC5E,wBAAsB;IACtB,uBAAwB;IACxB,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,8BAAyB;IACzB,sCAAiC;IACjC,oCAAsC;IAYpC,qBAAwD;IAYxD,cAAmE;IAuKrE,sBAKC;IA/ED,4BAKC;IAED,gCAOC;IAED;;;;MAMC;IAED,mCAIC;IAED,iCA0CC;IASD;;;;OAIG;IACH,2BAJW,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAI,OAAO,WACxD,MAAM,aACN;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC,QAoC5E;IAED,wCAIC;IAED,aAAc,QAAG,EAAE,aAAQ,EAAE,cAAS,SAmBpC;IAEF,0CAgBC;IAED,4CAuQC;IArPK,gBAAmC;IAuPzC,yBAEC;IAED,sCAMC;IAED;;;;OAIG;IACH,6BAJW,SAAS,GAAG,OAAO,WACnB,MAAM,YACN;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC,QAoB5E;IAED,oCAqEC;IAED,oEAKC;IAED,4BAUC;IAKD,oBAAqB,MAAC,SAGpB;IAEF,0CASC;IAED;wBA/fiC,CAAC;kCAigBjC;IAED;;;;;;;;;OASG;IACH,uDAuBC;IAED,2CAwCC;IAED,sDAQC;IAED,8CAMC;IAED,uCAEC;IAED,uCASC;IAaD;;;;;OAKG;IACH,yBAJW,CAAC,CAAC,UAAU,QACZ,GAAG,kBACH,MAAM,OAgFhB;IAED,sDAEC;IAKD;;OAEG;IACH,mBAFa,CAAC,CAAC,UAAU,CAuCxB;IAED,0CAA0C;IAC1C,6BAqCC;IAED;;;MASC;IAED,0DAA0D;IAC1D,YAAa,SAAI,UAUf;IAEF,qBAAsB,SAAI,UAQxB;IAEF,mBAAoB,SAAI,EAAE,UAAK,UAG7B;IAEF,mCAAmC;IACnC,kBAOC;IAED,wBAKC;IAED,wEAAwE;IACxE,SAAU,WAAM,kBAqBd;IAEF;;;;OAIG;IACH,UAAW,SAJA,GAIO,EAAE,QAHT,GAGc,kBAsBvB;IAEF,iBAIC;IAED;;;;;;OAMG;IACH,iDAqCC;IAKD,4DAA4D;IAC5D,8BA4BC;IAED;;OAEG;IACH,wCAeC;IAED;;;;OAIG;IACH,wCAiBC;IAED,qCAKC;IAED,kDAkBC;IAED,mBAAoB,MAAC,UA+BnB;IAEF,sBAAuB,MAAC,UAyBtB;IAEF,oBAAqB,MAAC,UAWpB;IAEF,+BAsBE;IAEF,oBAAqB,MAAC,UAgCpB;IAEF,qBAqDC;IAED;;;;;;;OAOG;IACH,oCAgBC;IAID,8BAoDC;IAED;;;OAGG;IACH;;;;cA+CC;IAED;eAtkDkC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC;cAwkDlD;IAED,+CAMC;IAED,mCAgBC;IAED,wBAMC;IAED,+CAQC;IAED,oCAUC;IAED,gCAEC;IAED,0CAEC;IAED,wBAIC;IAED,8CAEC;IAED,yCAKC;IAED;mBA3oDuB,OAAO;eAAS,GAAG,GAAG,SAAS;cAAQ,GAAG,GAAG,SAAS;MA6oD5E;IAED,gCAGC;IAED;;qBApqD4C,MAAM;;;;;;;;;;;;OA0rDjD;IAED,oCAGC;IAED,+CAiBC;IAED,+BAaC;IAED;;+CAMC;IAED;;;wCAYC;IAED,uEAQC;IAED,iDAOC;IAED,8DAoBC;IAED,kCAIC;IAED;;;;;;;OAOG;IACH,oDAJG;QAAuB,UAAU,EAAzB,MAAM;QACS,WAAW,EAA1B,MAAM;KACd,GAAU,MAAM,CAKlB;IAED;;;;OAIG;IACH,6CAHG;QAAuB,IAAI,EAAnB,MAAM;QACU,YAAY;KACtC,mCAaA;IAED,oBAGC;IAED;;;;;OAKG;IACH,kDAJG;QAAuB,UAAU,EAAzB,MAAM;QACS,OAAO,EAAtB,MAAM;QAC6B,KAAK,GAAxC,MAAM,GAAG,IAAI,GAAG,SAAS;KACnC,mCAeA;IAKD;;;;OAIG;IACH,iBAJW,MAAM,oBACN,GAAG,GAAG,IAAI,GAAG,SAAS,cA4BhC;IAED,gCAiBC;IAMD;;;;;;;;;;;aAUC;IAGD,oEAsBC;IAED,8CAMC;IAED,2CAGC;IAED,iCAEC;IAED,0DAKC;IAGD,8EAuBC;IAED,uCAIC;IAED,oDAaC;IAED,mDAyBC;IAED,gDAWC;IAKD;;;;;aAeC;IAED,uEAQC;IAED,6DAoBC;IAED,4DAWC;IAKD,oFAWC;IAED,8DAWC;IAKD,+CAaC;IAED,wCAWC;CACF;qBA93Ea,OAAO,gBAAgB,EAAE,MAAM;;4BAE/B,OAAO,iBAAiB,EAAE,aAAa;qCACvC,OAAO,iBAAiB,EAAE,sBAAsB;uBAChD,OAAO,mBAAmB,EAAE,QAAQ;gCACpC,OAAO,mBAAmB,EAAE,iBAAiB;mBAnCxC,YAAY;gCASC,4BAA4B;0BAmBlC,gBAAgB;yBApBjB,qBAAqB;yBAJrB,cAAc;4BACX,iBAAiB;6BAHhB,uBAAuB;kCAClB,4BAA4B"}
|
package/dist/commonjs/Reactor.js
CHANGED
|
@@ -60,7 +60,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
60
60
|
const weakHash_ts_1 = __importDefault(require("./utils/weakHash.js"));
|
|
61
61
|
const instaql_ts_1 = __importDefault(require("./instaql.js"));
|
|
62
62
|
const instaml = __importStar(require("./instaml.js"));
|
|
63
|
-
const
|
|
63
|
+
const s = __importStar(require("./store.js"));
|
|
64
64
|
const uuid_ts_1 = __importDefault(require("./utils/uuid.js"));
|
|
65
65
|
const IndexedDBStorage_ts_1 = __importDefault(require("./IndexedDBStorage.js"));
|
|
66
66
|
const WindowNetworkListener_js_1 = __importDefault(require("./WindowNetworkListener.js"));
|
|
@@ -150,10 +150,10 @@ function querySubFromStorage(x, useDateObjects) {
|
|
|
150
150
|
var _a;
|
|
151
151
|
const v = typeof x === 'string' ? JSON.parse(x) : x;
|
|
152
152
|
if ((_a = v === null || v === void 0 ? void 0 : v.result) === null || _a === void 0 ? void 0 : _a.store) {
|
|
153
|
-
const attrsStore =
|
|
153
|
+
const attrsStore = s.attrsStoreFromJSON(v.result.attrsStore, v.result.store);
|
|
154
154
|
if (attrsStore) {
|
|
155
155
|
const storeJSON = v.result.store;
|
|
156
|
-
v.result.store =
|
|
156
|
+
v.result.store = s.fromJSON(attrsStore, Object.assign(Object.assign({}, storeJSON), { useDateObjects: useDateObjects }));
|
|
157
157
|
v.result.attrsStore = attrsStore;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -170,7 +170,7 @@ function querySubToStorage(_key, sub) {
|
|
|
170
170
|
const jsonSub = /** @type {import('./reactorTypes.ts').QuerySubInStorage} */ (rest);
|
|
171
171
|
if (result) {
|
|
172
172
|
/** @type {import('./reactorTypes.ts').QuerySubResultInStorage} */
|
|
173
|
-
const jsonResult = Object.assign(Object.assign({}, result), { store:
|
|
173
|
+
const jsonResult = Object.assign(Object.assign({}, result), { store: s.toJSON(result.store), attrsStore: result.attrsStore.toJSON() });
|
|
174
174
|
jsonSub.result = jsonResult;
|
|
175
175
|
}
|
|
176
176
|
return jsonSub;
|
|
@@ -483,7 +483,7 @@ class Reactor {
|
|
|
483
483
|
this._syncTable = new SyncTable_ts_1.SyncTable(this._trySendAuthed.bind(this), new Storage(this.config.appId, 'syncSubs'), {
|
|
484
484
|
useDateObjects: this.config.useDateObjects,
|
|
485
485
|
}, this._log, (triples) => {
|
|
486
|
-
return
|
|
486
|
+
return s.createStore(this.ensureAttrs(), triples, this.config.enableCardinalityInference, this.config.useDateObjects);
|
|
487
487
|
}, () => this.ensureAttrs());
|
|
488
488
|
this._oauthCallbackResponse = this._oauthLoginInit();
|
|
489
489
|
// kick off a request to cache it
|
|
@@ -678,7 +678,7 @@ class Reactor {
|
|
|
678
678
|
const aggregate = (_f = (_e = result === null || result === void 0 ? void 0 : result[0]) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f['aggregate'];
|
|
679
679
|
const triples = (0, instaqlResult_js_1.extractTriples)(result);
|
|
680
680
|
const attrsStore = this.ensureAttrs();
|
|
681
|
-
const store =
|
|
681
|
+
const store = s.createStore(attrsStore, triples, enableCardinalityInference, this.config.useDateObjects);
|
|
682
682
|
this.querySubs.updateInPlace((prev) => {
|
|
683
683
|
if (!prev[hash]) {
|
|
684
684
|
this._log.info('Missing value in querySubs', { hash, q });
|
|
@@ -738,7 +738,7 @@ class Reactor {
|
|
|
738
738
|
const hash = (0, weakHash_ts_1.default)(q);
|
|
739
739
|
const triples = (0, instaqlResult_js_1.extractTriples)(result);
|
|
740
740
|
const attrsStore = this.ensureAttrs();
|
|
741
|
-
const store =
|
|
741
|
+
const store = s.createStore(attrsStore, triples, enableCardinalityInference, this.config.useDateObjects);
|
|
742
742
|
const { store: newStore, attrsStore: newAttrsStore } = this._applyOptimisticUpdates(store, attrsStore, mutations, processedTxId);
|
|
743
743
|
const pageInfo = (_b = (_a = result === null || result === void 0 ? void 0 : result[0]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b['page-info'];
|
|
744
744
|
const aggregate = (_d = (_c = result === null || result === void 0 ? void 0 : result[0]) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d['aggregate'];
|
|
@@ -794,7 +794,6 @@ class Reactor {
|
|
|
794
794
|
if (newAttrs.length) {
|
|
795
795
|
const existingAttrs = Object.values(this.ensureAttrs().attrs);
|
|
796
796
|
this._setAttrs([...existingAttrs, ...newAttrs]);
|
|
797
|
-
this._setAttrs(newAttrs);
|
|
798
797
|
}
|
|
799
798
|
this._finishTransaction('synced', eventId);
|
|
800
799
|
this._cleanupPendingMutationsTimeout();
|
|
@@ -956,7 +955,7 @@ class Reactor {
|
|
|
956
955
|
this._completeQueryOnce(q, hash, r.dfd);
|
|
957
956
|
}
|
|
958
957
|
_setAttrs(attrs) {
|
|
959
|
-
this.attrs = new
|
|
958
|
+
this.attrs = new s.AttrsStoreClass(attrs.reduce((acc, attr) => {
|
|
960
959
|
acc[attr.id] = attr;
|
|
961
960
|
return acc;
|
|
962
961
|
}, {}), this._linkIndex);
|
|
@@ -1067,7 +1066,7 @@ class Reactor {
|
|
|
1067
1066
|
// server attr-ids.
|
|
1068
1067
|
/**
|
|
1069
1068
|
*
|
|
1070
|
-
* @param {
|
|
1069
|
+
* @param {s.AttrsStore} attrs
|
|
1071
1070
|
* @param {any} muts
|
|
1072
1071
|
* @param {number} [processedTxId]
|
|
1073
1072
|
*/
|
|
@@ -1078,12 +1077,12 @@ class Reactor {
|
|
|
1078
1077
|
return new Map();
|
|
1079
1078
|
const findExistingAttr = (attr) => {
|
|
1080
1079
|
const [_, etype, label] = attr['forward-identity'];
|
|
1081
|
-
const existing =
|
|
1080
|
+
const existing = s.getAttrByFwdIdentName(attrs, etype, label);
|
|
1082
1081
|
return existing;
|
|
1083
1082
|
};
|
|
1084
1083
|
const findReverseAttr = (attr) => {
|
|
1085
1084
|
const [_, etype, label] = attr['forward-identity'];
|
|
1086
|
-
const revAttr =
|
|
1085
|
+
const revAttr = s.getAttrByReverseIdentName(attrs, etype, label);
|
|
1087
1086
|
return revAttr;
|
|
1088
1087
|
};
|
|
1089
1088
|
const mapping = { attrIdMap: {}, refSwapAttrIds: new Set() };
|
|
@@ -1147,7 +1146,7 @@ class Reactor {
|
|
|
1147
1146
|
// ---------------------------
|
|
1148
1147
|
// Transact
|
|
1149
1148
|
/**
|
|
1150
|
-
* @returns {
|
|
1149
|
+
* @returns {s.AttrsStore}
|
|
1151
1150
|
*/
|
|
1152
1151
|
optimisticAttrs() {
|
|
1153
1152
|
var _a, _b;
|
|
@@ -1169,7 +1168,7 @@ class Reactor {
|
|
|
1169
1168
|
}
|
|
1170
1169
|
}
|
|
1171
1170
|
if (!deletedAttrIds.size && !pendingAttrs.length) {
|
|
1172
|
-
return this.attrs || new
|
|
1171
|
+
return this.attrs || new s.AttrsStoreClass({}, this._linkIndex);
|
|
1173
1172
|
}
|
|
1174
1173
|
const attrs = Object.assign({}, (((_b = this.attrs) === null || _b === void 0 ? void 0 : _b.attrs) || {}));
|
|
1175
1174
|
for (const attr of pendingAttrs) {
|
|
@@ -1178,7 +1177,7 @@ class Reactor {
|
|
|
1178
1177
|
for (const id of deletedAttrIds) {
|
|
1179
1178
|
delete attrs[id];
|
|
1180
1179
|
}
|
|
1181
|
-
return new
|
|
1180
|
+
return new s.AttrsStoreClass(attrs, this._linkIndex);
|
|
1182
1181
|
}
|
|
1183
1182
|
/** Runs instaql on a query and a store */
|
|
1184
1183
|
dataForQuery(hash) {
|
|
@@ -1212,7 +1211,7 @@ class Reactor {
|
|
|
1212
1211
|
_applyOptimisticUpdates(store, attrsStore, mutations, processedTxId) {
|
|
1213
1212
|
for (const [_, mut] of mutations) {
|
|
1214
1213
|
if (!mut['tx-id'] || (processedTxId && mut['tx-id'] > processedTxId)) {
|
|
1215
|
-
const result =
|
|
1214
|
+
const result = s.transact(store, attrsStore, mut['tx-steps']);
|
|
1216
1215
|
store = result.store;
|
|
1217
1216
|
attrsStore = result.attrsStore;
|
|
1218
1217
|
}
|