@bringg/dashboard-sdk 9.77.2 → 9.77.3-pre
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/dist/Data/storable-realtime-subscriptions.d.ts +1 -1
- package/dist/Data/storable-realtime-subscriptions.js +7 -0
- package/dist/Data/storable-realtime-subscriptions.js.map +1 -1
- package/dist/Data/storable-types.d.ts +3 -2
- package/dist/Vehicle/v2/vehicle-realtime-subscriptions.d.ts +17 -0
- package/dist/Vehicle/v2/vehicle-realtime-subscriptions.js +107 -0
- package/dist/Vehicle/v2/vehicle-realtime-subscriptions.js.map +1 -0
- package/dist/Vehicle/v2/vehicles-api.d.ts +5 -4
- package/dist/Vehicle/v2/vehicles-api.js +18 -12
- package/dist/Vehicle/v2/vehicles-api.js.map +1 -1
- package/dist/bringg-dashboard-sdk-cjs2.js +140 -13
- package/dist/bringg-dashboard-sdk-cjs2.js.map +1 -1
- package/dist/bringg-dashboard-sdk.js +14 -3
- package/dist/bringg-dashboard-sdk.min.js +1 -1
- package/dist/bringg-dashboard-sdk.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ export default class StorableRealtimeSubscriptions<TClient extends DataEntity, T
|
|
|
9
9
|
private readonly storableDataService;
|
|
10
10
|
private readonly eventCallbacks;
|
|
11
11
|
constructor(session: Session, dataStore: DataStore<TClient>, storableDataService: StorableDataService<TClient, TServer>);
|
|
12
|
-
updateStoreOnEvents(events: StorableEvent<TServer>[], subEntityEvents?: StorableSubEntityEvent<TClient>[]): void;
|
|
12
|
+
updateStoreOnEvents(events: StorableEvent<TServer, TClient>[], subEntityEvents?: StorableSubEntityEvent<TClient>[]): void;
|
|
13
13
|
onAnyEvent(event: string, callback: any): () => void;
|
|
14
14
|
onEvent(event: string, callback: (eventData: MappedStorableItem<TClient>) => void, options?: EventCallbackOptions): StorableEventUnsubscribe;
|
|
15
15
|
runEventCallbacks(event: string, data: MappedStorableItem<TClient>, meta?: {
|
|
@@ -40,6 +40,7 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
|
|
|
40
40
|
if (subEntityEvents === void 0) { subEntityEvents = []; }
|
|
41
41
|
var _loop_1 = function (event_1) {
|
|
42
42
|
this_1.realtimeSubscriptions.subscribe(event_1.name, function (item) {
|
|
43
|
+
var _a, _b;
|
|
43
44
|
item = event_1.itemExtractor ? event_1.itemExtractor(item) : item;
|
|
44
45
|
var data = event_1.extraDataFunc && event_1.extraDataFunc(item);
|
|
45
46
|
if (data === null || data === void 0 ? void 0 : data.ignore) {
|
|
@@ -56,10 +57,16 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
|
|
|
56
57
|
var skipStoreUpdate = !!(data === null || data === void 0 ? void 0 : data.skipStoreUpdate);
|
|
57
58
|
if (skipStoreUpdate) {
|
|
58
59
|
var mappedStorableItem = _this.storableDataService.mapItem(item, data === null || data === void 0 ? void 0 : data.params);
|
|
60
|
+
// Cache layer: reconcile dependent cached entities even when this entity itself is
|
|
61
|
+
// not stored (e.g. a not-yet-cached trailer moving between cached trucks).
|
|
62
|
+
(_a = event_1.onAfterStoreSync) === null || _a === void 0 ? void 0 : _a.call(event_1, mappedStorableItem);
|
|
59
63
|
_this.runEventCallbacks(event_1.name, mappedStorableItem, { skipStoreUpdate: skipStoreUpdate });
|
|
60
64
|
}
|
|
61
65
|
else {
|
|
62
66
|
var mappedStorableItem = _this.storableDataService.updateInStores(item, undefined, undefined, data === null || data === void 0 ? void 0 : data.params);
|
|
67
|
+
// Cache layer: let the entity reconcile dependent cached entities before any consumer
|
|
68
|
+
// is notified, so the whole store is consistent when store events fire.
|
|
69
|
+
(_b = event_1.onAfterStoreSync) === null || _b === void 0 ? void 0 : _b.call(event_1, mappedStorableItem);
|
|
63
70
|
_this.runEventCallbacks(event_1.name, mappedStorableItem);
|
|
64
71
|
}
|
|
65
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storable-realtime-subscriptions.js","sourceRoot":"","sources":["../../src/Data/storable-realtime-subscriptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qFAA8D;AAG9D,iDAA+C;AAS/C;IAWC,uCACC,OAAgB,EAChB,SAA6B,EAC7B,mBAA0D;QAE1D,IAAI,CAAC,qBAAqB,GAAG,IAAI,gCAAqB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEM,2DAAmB,GAA1B,UACC,
|
|
1
|
+
{"version":3,"file":"storable-realtime-subscriptions.js","sourceRoot":"","sources":["../../src/Data/storable-realtime-subscriptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qFAA8D;AAG9D,iDAA+C;AAS/C;IAWC,uCACC,OAAgB,EAChB,SAA6B,EAC7B,mBAA0D;QAE1D,IAAI,CAAC,qBAAqB,GAAG,IAAI,gCAAqB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEM,2DAAmB,GAA1B,UACC,MAAyC,EACzC,eAAuD;;QAFxD,iBAsIC;QApIA,gCAAA,EAAA,oBAAuD;gCAE5C,OAAK;YACf,OAAK,qBAAqB,CAAC,SAAS,CAAC,OAAK,CAAC,IAAI,EAAE,UAAC,IAAa;;gBAC9D,IAAI,GAAG,OAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE9D,IAAM,IAAI,GAAG,OAAK,CAAC,aAAa,IAAI,OAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBAE9D,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE;oBACjB,OAAO;iBACP;gBAED,IAAI,OAAK,CAAC,QAAQ,EAAE;oBACnB,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;wBACjC,OAAO;qBACP;oBAED,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEvE,KAAI,CAAC,iBAAiB,CAAC,OAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;iBAC1D;qBAAM;oBACN,IAAM,eAAe,GAAG,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAA,CAAC;oBAEhD,IAAI,eAAe,EAAE;wBACpB,IAAM,kBAAkB,GAAG,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,CAAC;wBAEhF,mFAAmF;wBACnF,2EAA2E;wBAC3E,MAAA,OAAK,CAAC,gBAAgB,wDAAG,kBAAkB,CAAC,CAAC;wBAE7C,KAAI,CAAC,iBAAiB,CAAC,OAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;qBAC5E;yBAAM;wBACN,IAAM,kBAAkB,GAAG,KAAI,CAAC,mBAAmB,CAAC,cAAc,CACjE,IAAI,EACJ,SAAS,EACT,SAAS,EACT,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CACZ,CAAC;wBAEF,sFAAsF;wBACtF,wEAAwE;wBACxE,MAAA,OAAK,CAAC,gBAAgB,wDAAG,kBAAkB,CAAC,CAAC;wBAE7C,KAAI,CAAC,iBAAiB,CAAC,OAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;qBACvD;iBACD;YACF,CAAC,CAAC,CAAC;;;;YA5CJ,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA;gBAArB,IAAM,OAAK,mBAAA;wBAAL,OAAK;aA6Cf;;;;;;;;;gCAEU,cAAc;YACxB,OAAK,qBAAqB,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,UAAA,kBAAkB;;;gBAC3E,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,EAAhC,CAAgC,CAAC,CAAC;gBAE/E,IAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAChE,IAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;gBACpE,IAAM,SAAS,GAAG,cAAM,OAAA,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAA5B,CAA4B,CAAC;gBACrD,IAAM,gBAAgB,GAAe,EAAE,CAAC;gBAExC,IAAI,cAAc,CAAC,MAAM,EAAE;oBAC1B,IAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC;wBAC/D,OAAA,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC;oBAA7C,CAA6C,CAC7C,CAAC;;wBAEF,KAAuB,IAAA,mCAAA,SAAA,eAAe,CAAA,CAAA,gDAAA,6EAAE;4BAAnC,IAAM,QAAQ,4BAAA;4BAClB,IAAM,MAAM,GAAG,MAAA,MAAA,QAAQ,CAAC,WAAW,yDAAG,kBAAkB,EAAE,SAAS,CAAC,mCAAI,IAAI,CAAC;4BAE7E,IAAI,MAAM,KAAK,IAAI,EAAE;gCACpB,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;6BAC1C;iCAAM;gCACN,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;6BAChC;yBACD;;;;;;;;;iBACD;gBAED,IAAM,eAAe,GAAG,KAAI,CAAC,eAAe,CAC3C,kBAAkB,EAClB,cAAc,CAAC,OAAO,IAAI,IAAI,EAC9B,cAAc,CAAC,WAAW,EAC1B,cAAc,CAAC,KAAK,EACpB,cAAc,CAAC,QAAQ,CACvB,CAAC;gBAEF,IAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,EAAE;oBAC7B,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;iBACrE;gBAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,IAAM,iBAAe,GAAG,UAAC,IAA6B;;;wBACrD,IAAM,MAAM,GAAG,KAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBAE5C,IAAI,CAAC,MAAM,EAAE;4BACZ,OAAO;yBACP;wBAED,IAAM,SAAS,GAAG,MAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAW,0CAAE,IAAI,CAC9D,UAAA,CAAC,IAAI,OAAA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAjC,CAAiC,CACtC,CAAC;wBAEF,IAAI,CAAC,SAAS,EAAE;4BACf,OAAO;yBACP;wBAED,IAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAArB,CAAqB,CAAC,CAAC,CAAC;wBAE1F,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;wBAC/B,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,YAAY,EAAE;4BACnD,OAAO,EAAE,MAAM;4BACf,IAAI,EAAE,CAAA,SAAE,GAAC,cAAc,CAAC,KAAK,IAAG,YAAG,EAAE,EAAE,QAAQ,IAAK,SAAS,EAAG,IAAwB,CAAA;yBACxF,CAAC,CAAC;oBACJ,CAAC,CAAC;oBAEF,qFAAqF;oBACrF,gFAAgF;oBAChF,gEAAgE;oBAChE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC,CAAC;yBACnF,IAAI,CAAC,UAAA,OAAO;wBACZ,IAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAC/B,UAAC,GAAG,EAAE,MAAM,IAAK,OAAA,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAApD,CAAoD,EACrE,EAAE,CACF,CAAC;wBAEF,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtC,iBAAe,CAAC,SAAS,CAAC,CAAC;yBAC3B;oBACF,CAAC,CAAC;yBACD,KAAK,CAAC,UAAA,GAAG;wBACT,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;wBACnF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,CAAC,CAAC;iBACJ;YACF,CAAC,CAAC,CAAC;;;;YAjFJ,KAA6B,IAAA,oBAAA,SAAA,eAAe,CAAA,gDAAA;gBAAvC,IAAM,cAAc,4BAAA;wBAAd,cAAc;aAkFxB;;;;;;;;;IACF,CAAC;IAEM,kDAAU,GAAjB,UAAkB,KAAa,EAAE,QAAQ;QACxC,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAEM,+CAAO,GAAd,UACC,KAAa,EACb,QAA0D,EAC1D,OAAkC;QAHnC,iBAoBC;QAjBA,wBAAA,EAAA,YAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAChC;QAED,IAAM,KAAK,GAAG,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,CAAC;QAEpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO;YACN,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACf,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5C;QACF,CAAC,CAAC;IACH,CAAC;IAEM,yDAAiB,GAAxB,UAAyB,KAAa,EAAE,IAAiC,EAAE,IAAoC;QAC9G,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;YAC/C,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,KAAI,KAAK,CAAC,OAAO,CAAC,0BAA0B,KAAK,IAAI,EAAE;gBAC/E,OAAO;aACP;YAED,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,uDAAe,GAAvB,UACC,SAAc,EACd,OAAe,EACf,WAAmB,EACnB,cAAwC,EACxC,QAAiB;;QAEjB,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC;QAET,IAAI,OAAO,EAAE;YACZ,IAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;gBAC5C,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,CAAC,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,EAAvC,CAAuC,CAAC;gBAC7F,CAAC,CAAC,CAAC,CAAC,CAAC;YAEN,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE;gBACvB,IAAI,QAAQ,EAAE;oBACb,IAAI,aAAK,GAAC,cAAc,IAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,KAAE,CAAC;oBAE3E,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpE,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACtD;oBAED,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;iBACjD;qBAAM;oBACN,IAAM,aAAa,GAAG,4BAAY,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;oBAEhG,IAAI;wBACH,GAAC,cAAc,IAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;2BAChF,CAAC;oBACF,IAAI,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;iBACpD;aACD;iBAAM,IAAI,CAAC,QAAQ,EAAE;gBACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oBAC7B,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;iBAC7B;gBAED,IAAI;oBACH,GAAC,cAAc,IAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;uBAChF,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACxC;SACD;QAED,IAAI,IAAI,EAAE;YACT,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,MAAA,EAAE,CAAC;SAClC;IACF,CAAC;IAEO,iEAAyB,GAAjC,UAAkC,MAAM;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,QAAA,EAAE,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,CAAC,CAAC;IAC3C,CAAC;IACF,oCAAC;AAAD,CAAC,AAxPD,IAwPC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DataEntity } from '../data-entity';
|
|
2
|
-
export type StorableEvent<TServer extends DataEntity> = {
|
|
1
|
+
import { DataEntity, MappedStorableItem } from '../data-entity';
|
|
2
|
+
export type StorableEvent<TServer extends DataEntity, TClient extends DataEntity = TServer> = {
|
|
3
3
|
name: string;
|
|
4
4
|
extraDataFunc?: (item: TServer) => {
|
|
5
5
|
ignore?: boolean;
|
|
@@ -8,6 +8,7 @@ export type StorableEvent<TServer extends DataEntity> = {
|
|
|
8
8
|
};
|
|
9
9
|
itemExtractor?: (item: any) => TServer;
|
|
10
10
|
isDelete: boolean;
|
|
11
|
+
onAfterStoreSync?: (mapped: MappedStorableItem<TClient>) => void;
|
|
11
12
|
};
|
|
12
13
|
export type Enricher<TParent = any, TPayload = any> = {
|
|
13
14
|
shouldEnrich: (payload: TPayload, getParent: () => TParent | undefined) => boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Vehicle } from '@bringg/types';
|
|
2
|
+
import type DataStore from '../../data-store';
|
|
3
|
+
import type Session from '../../Services/Identity/Session';
|
|
4
|
+
import type StorableDataService from '../../storable-data-service';
|
|
5
|
+
export default class VehicleRealtimeSubscriptions {
|
|
6
|
+
private vehiclesStore;
|
|
7
|
+
private storableDataService;
|
|
8
|
+
private readonly storableRealtimeSubscriptions;
|
|
9
|
+
constructor(session: Session, vehiclesStore: DataStore<Vehicle>, storableDataService: StorableDataService<Vehicle, Vehicle>);
|
|
10
|
+
updateStoreOnEvents(): void;
|
|
11
|
+
onUpdate(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
|
|
12
|
+
onDelete(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
|
|
13
|
+
onUnassigned(callback: (vehicle: Vehicle) => void): () => void;
|
|
14
|
+
private reconcileTrucksOnTrailerChange;
|
|
15
|
+
private findTruckHoldingTrailer;
|
|
16
|
+
private applyTrailerToTruck;
|
|
17
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var BringgDashboardSDK_1 = require("../../BringgDashboardSDK");
|
|
18
|
+
var storable_realtime_subscriptions_1 = __importDefault(require("../../Data/storable-realtime-subscriptions"));
|
|
19
|
+
var Vehicle_consts_1 = require("../Vehicle.consts");
|
|
20
|
+
var VehicleRealtimeSubscriptions = /** @class */ (function () {
|
|
21
|
+
function VehicleRealtimeSubscriptions(session, vehiclesStore, storableDataService) {
|
|
22
|
+
this.vehiclesStore = vehiclesStore;
|
|
23
|
+
this.storableDataService = storableDataService;
|
|
24
|
+
this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, vehiclesStore, storableDataService);
|
|
25
|
+
}
|
|
26
|
+
VehicleRealtimeSubscriptions.prototype.updateStoreOnEvents = function () {
|
|
27
|
+
var _this = this;
|
|
28
|
+
this.storableRealtimeSubscriptions.updateStoreOnEvents([
|
|
29
|
+
{
|
|
30
|
+
name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE,
|
|
31
|
+
isDelete: false,
|
|
32
|
+
extraDataFunc: function (vehicle) { return ({ skipStoreUpdate: !_this.vehiclesStore.get(vehicle.id) }); },
|
|
33
|
+
// Reconcile Trailer and affected Trucks after Truck-Trailer link is changed
|
|
34
|
+
// Remove if / when Trailer-Truck link changes trigger Truck/-s real-time updated events
|
|
35
|
+
onAfterStoreSync: function (mapped) { return _this.reconcileTrucksOnTrailerChange(mapped); }
|
|
36
|
+
},
|
|
37
|
+
{ name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, isDelete: true }
|
|
38
|
+
]);
|
|
39
|
+
};
|
|
40
|
+
VehicleRealtimeSubscriptions.prototype.onUpdate = function (callback) {
|
|
41
|
+
return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
|
|
42
|
+
};
|
|
43
|
+
VehicleRealtimeSubscriptions.prototype.onDelete = function (callback) {
|
|
44
|
+
return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.diff); });
|
|
45
|
+
};
|
|
46
|
+
VehicleRealtimeSubscriptions.prototype.onUnassigned = function (callback) {
|
|
47
|
+
return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
|
|
48
|
+
return callback(vehicle);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
// This should work as expected until Vehicle Update event sends full Vehicle structure
|
|
52
|
+
// and StorableDataService.mapper maps real-time payload to MappedStorableItem.current
|
|
53
|
+
VehicleRealtimeSubscriptions.prototype.reconcileTrucksOnTrailerChange = function (_a) {
|
|
54
|
+
var _this = this;
|
|
55
|
+
var _b, _c;
|
|
56
|
+
var trailer = _a.current;
|
|
57
|
+
// Only a trailer update can change a truck's derived `trailer` field.
|
|
58
|
+
if (!(trailer === null || trailer === void 0 ? void 0 : trailer.is_trailer)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// A partial trailer update may omit `truck_id`; only reconcile when the payload carries it
|
|
62
|
+
// (explicit null = detach, a value = attach). Absent = no connection info -> leave cache as-is,
|
|
63
|
+
// so a partial update can't be misread as detach and wrongly clear the truck's trailer.
|
|
64
|
+
if (!('truck_id' in trailer)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
var newTruckId = (_b = trailer.truck_id) !== null && _b !== void 0 ? _b : null;
|
|
68
|
+
var oldTruck = this.findTruckHoldingTrailer(trailer.id);
|
|
69
|
+
// No connection change relative to the cache - nothing to reconcile.
|
|
70
|
+
if (((_c = oldTruck === null || oldTruck === void 0 ? void 0 : oldTruck.id) !== null && _c !== void 0 ? _c : null) === newTruckId) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
(0, BringgDashboardSDK_1.getGlobals)().mobx.runInAction(function () {
|
|
74
|
+
if (oldTruck) {
|
|
75
|
+
_this.applyTrailerToTruck(oldTruck.id, null);
|
|
76
|
+
}
|
|
77
|
+
_this.applyTrailerToTruck(newTruckId, trailer);
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
VehicleRealtimeSubscriptions.prototype.findTruckHoldingTrailer = function (trailerId) {
|
|
81
|
+
return this.vehiclesStore
|
|
82
|
+
.getGroup(Vehicle_consts_1.VehicleGroup.IsTrailer, false)
|
|
83
|
+
.find(function (vehicle) { return vehicle.trailer && vehicle.trailer.id === trailerId; });
|
|
84
|
+
};
|
|
85
|
+
VehicleRealtimeSubscriptions.prototype.applyTrailerToTruck = function (truckId, trailerEntity) {
|
|
86
|
+
if (!truckId) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
var truck = this.vehiclesStore.get(truckId);
|
|
90
|
+
// Only reconcile trucks that are actually cached; missing trucks get the correct trailer on load.
|
|
91
|
+
if (!truck) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
var mobx = (0, BringgDashboardSDK_1.getGlobals)().mobx;
|
|
95
|
+
// Deep, plain, non-observable COPY of the trailerEntity.
|
|
96
|
+
// Drop the nested trailer's own `trailer` to avoid recursive nesting.
|
|
97
|
+
var trailerSnapshot = trailerEntity ? __assign(__assign({}, mobx.toJS(trailerEntity)), { trailer: null }) : null;
|
|
98
|
+
// toJS the truck too so we replace it with a fresh plain object instead of mutating the live
|
|
99
|
+
// observable in place; updateInStores re-observes it as the truck's own subtree.
|
|
100
|
+
var updatedTruck = __assign(__assign({}, mobx.toJS(truck)), { trailer: trailerSnapshot });
|
|
101
|
+
var mapped = this.storableDataService.updateInStores(updatedTruck);
|
|
102
|
+
this.storableRealtimeSubscriptions.runEventCallbacks(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, mapped);
|
|
103
|
+
};
|
|
104
|
+
return VehicleRealtimeSubscriptions;
|
|
105
|
+
}());
|
|
106
|
+
exports.default = VehicleRealtimeSubscriptions;
|
|
107
|
+
//# sourceMappingURL=vehicle-realtime-subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicle-realtime-subscriptions.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicle-realtime-subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export default class VehiclesApi {
|
|
|
10
10
|
private readonly vehiclesStore;
|
|
11
11
|
private readonly vehiclesService;
|
|
12
12
|
private readonly storableDataService;
|
|
13
|
-
private readonly
|
|
13
|
+
private readonly vehicleRealtimeSubscriptions;
|
|
14
14
|
constructor(session: Session);
|
|
15
15
|
load(id: number, options?: DataOptions): Promise<Vehicle>;
|
|
16
16
|
loadAll(options?: DataOptions): Promise<Vehicle[]>;
|
|
@@ -22,9 +22,10 @@ export default class VehiclesApi {
|
|
|
22
22
|
batchUpdate(vehicles: Partial<VehicleDTO[]>): Promise<Vehicle[]>;
|
|
23
23
|
create(vehicleData: Partial<VehicleDTO>): Promise<Vehicle>;
|
|
24
24
|
updateStoreOnEvents(): void;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
private mapVehicle;
|
|
26
|
+
onUpdate(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
|
|
27
|
+
onDelete(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
|
|
28
|
+
onUnassigned(callback: (vehicle: Vehicle) => void): () => void;
|
|
28
29
|
get(id: number): Vehicle;
|
|
29
30
|
getAll(): Vehicle[];
|
|
30
31
|
getGroup(group: VehicleGroup, groupValue: GroupValue): Vehicle[];
|
|
@@ -52,22 +52,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
var types_1 = require("@bringg/types");
|
|
54
54
|
var lodash_1 = require("lodash");
|
|
55
|
-
var storable_realtime_subscriptions_1 = __importDefault(require("../../Data/storable-realtime-subscriptions"));
|
|
56
55
|
var data_entity_1 = require("../../data-entity");
|
|
57
56
|
var data_store_1 = __importDefault(require("../../data-store"));
|
|
58
57
|
var storable_data_service_1 = __importDefault(require("../../storable-data-service"));
|
|
59
58
|
var Vehicle_consts_1 = require("../Vehicle.consts");
|
|
59
|
+
var vehicle_realtime_subscriptions_1 = __importDefault(require("./vehicle-realtime-subscriptions"));
|
|
60
60
|
var vehicles_service_1 = __importDefault(require("./vehicles-service"));
|
|
61
61
|
var VehiclesApi = /** @class */ (function () {
|
|
62
62
|
function VehiclesApi(session) {
|
|
63
|
+
var _this = this;
|
|
63
64
|
var groupFilters = [
|
|
64
65
|
{ groupType: Vehicle_consts_1.VehicleGroup.Team, keyFunc: function (vehicle) { return vehicle.team_id; } },
|
|
65
66
|
{ groupType: Vehicle_consts_1.VehicleGroup.IsTrailer, keyFunc: function (vehicle) { return !!vehicle.is_trailer; } }
|
|
66
67
|
];
|
|
67
68
|
this.vehiclesStore = new data_store_1.default(groupFilters);
|
|
68
69
|
this.vehiclesService = new vehicles_service_1.default(session);
|
|
69
|
-
this.storableDataService = new storable_data_service_1.default(this.vehiclesStore);
|
|
70
|
-
this.
|
|
70
|
+
this.storableDataService = new storable_data_service_1.default(this.vehiclesStore, function (vehicle) { return _this.mapVehicle(vehicle); });
|
|
71
|
+
this.vehicleRealtimeSubscriptions = new vehicle_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
|
|
71
72
|
}
|
|
72
73
|
VehiclesApi.prototype.load = function (id, options) {
|
|
73
74
|
var _this = this;
|
|
@@ -164,21 +165,26 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
164
165
|
return this.storableDataService.modify('create', function () { return _this.vehiclesService.create(vehicleData); });
|
|
165
166
|
};
|
|
166
167
|
VehiclesApi.prototype.updateStoreOnEvents = function () {
|
|
167
|
-
this.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
this.vehicleRealtimeSubscriptions.updateStoreOnEvents();
|
|
169
|
+
};
|
|
170
|
+
// `trailer` is a derived field the reconciler maintains on trucks. Realtime vehicle payloads don't
|
|
171
|
+
// carry it, so a plain truck update would otherwise REPLACE the cached truck and wipe its trailer.
|
|
172
|
+
// Preserve the cached `trailer` whenever the incoming payload omits the key; take it from the payload
|
|
173
|
+
// only when explicitly present (HTTP loads, PUT responses, reconciler writes).
|
|
174
|
+
VehiclesApi.prototype.mapVehicle = function (vehicle) {
|
|
175
|
+
var existing = this.vehiclesStore.get(vehicle.id);
|
|
176
|
+
var current = existing && 'trailer' in existing && !('trailer' in vehicle)
|
|
177
|
+
? __assign(__assign({}, vehicle), { trailer: existing.trailer }) : vehicle;
|
|
178
|
+
return { current: current, diff: existing };
|
|
171
179
|
};
|
|
172
180
|
VehiclesApi.prototype.onUpdate = function (callback) {
|
|
173
|
-
return this.
|
|
181
|
+
return this.vehicleRealtimeSubscriptions.onUpdate(callback);
|
|
174
182
|
};
|
|
175
183
|
VehiclesApi.prototype.onDelete = function (callback) {
|
|
176
|
-
return this.
|
|
184
|
+
return this.vehicleRealtimeSubscriptions.onDelete(callback);
|
|
177
185
|
};
|
|
178
186
|
VehiclesApi.prototype.onUnassigned = function (callback) {
|
|
179
|
-
return this.
|
|
180
|
-
return callback(vehicle);
|
|
181
|
-
});
|
|
187
|
+
return this.vehicleRealtimeSubscriptions.onUnassigned(callback);
|
|
182
188
|
};
|
|
183
189
|
VehiclesApi.prototype.get = function (id) {
|
|
184
190
|
return this.vehiclesStore.get(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAMuB;AACvB,iCAAyC;
|
|
1
|
+
{"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -8311,6 +8311,7 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
|
|
|
8311
8311
|
if (subEntityEvents === void 0) { subEntityEvents = []; }
|
|
8312
8312
|
var _loop_1 = function (event_1) {
|
|
8313
8313
|
this_1.realtimeSubscriptions.subscribe(event_1.name, function (item) {
|
|
8314
|
+
var _a, _b;
|
|
8314
8315
|
item = event_1.itemExtractor ? event_1.itemExtractor(item) : item;
|
|
8315
8316
|
var data = event_1.extraDataFunc && event_1.extraDataFunc(item);
|
|
8316
8317
|
if (data === null || data === void 0 ? void 0 : data.ignore) {
|
|
@@ -8327,10 +8328,16 @@ var StorableRealtimeSubscriptions = /** @class */ (function () {
|
|
|
8327
8328
|
var skipStoreUpdate = !!(data === null || data === void 0 ? void 0 : data.skipStoreUpdate);
|
|
8328
8329
|
if (skipStoreUpdate) {
|
|
8329
8330
|
var mappedStorableItem = _this.storableDataService.mapItem(item, data === null || data === void 0 ? void 0 : data.params);
|
|
8331
|
+
// Cache layer: reconcile dependent cached entities even when this entity itself is
|
|
8332
|
+
// not stored (e.g. a not-yet-cached trailer moving between cached trucks).
|
|
8333
|
+
(_a = event_1.onAfterStoreSync) === null || _a === void 0 ? void 0 : _a.call(event_1, mappedStorableItem);
|
|
8330
8334
|
_this.runEventCallbacks(event_1.name, mappedStorableItem, { skipStoreUpdate: skipStoreUpdate });
|
|
8331
8335
|
}
|
|
8332
8336
|
else {
|
|
8333
8337
|
var mappedStorableItem = _this.storableDataService.updateInStores(item, undefined, undefined, data === null || data === void 0 ? void 0 : data.params);
|
|
8338
|
+
// Cache layer: let the entity reconcile dependent cached entities before any consumer
|
|
8339
|
+
// is notified, so the whole store is consistent when store events fire.
|
|
8340
|
+
(_b = event_1.onAfterStoreSync) === null || _b === void 0 ? void 0 : _b.call(event_1, mappedStorableItem);
|
|
8334
8341
|
_this.runEventCallbacks(event_1.name, mappedStorableItem);
|
|
8335
8342
|
}
|
|
8336
8343
|
}
|
|
@@ -23841,7 +23848,7 @@ var lodash_1 = __webpack_require__(96486);
|
|
|
23841
23848
|
var BringgException_1 = __webpack_require__(43605);
|
|
23842
23849
|
var Logger_1 = __importDefault(__webpack_require__(55860));
|
|
23843
23850
|
var abort_1 = __webpack_require__(34179);
|
|
23844
|
-
var version = '9.77.
|
|
23851
|
+
var version = '9.77.3-pre';
|
|
23845
23852
|
function logErrorResponse(response) {
|
|
23846
23853
|
var data = response.data, status = response.status;
|
|
23847
23854
|
try {
|
|
@@ -33430,6 +33437,120 @@ exports["default"] = Vehicles;
|
|
|
33430
33437
|
|
|
33431
33438
|
/***/ }),
|
|
33432
33439
|
|
|
33440
|
+
/***/ 25240:
|
|
33441
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
33442
|
+
|
|
33443
|
+
"use strict";
|
|
33444
|
+
|
|
33445
|
+
var __assign = (this && this.__assign) || function () {
|
|
33446
|
+
__assign = Object.assign || function(t) {
|
|
33447
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
33448
|
+
s = arguments[i];
|
|
33449
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
33450
|
+
t[p] = s[p];
|
|
33451
|
+
}
|
|
33452
|
+
return t;
|
|
33453
|
+
};
|
|
33454
|
+
return __assign.apply(this, arguments);
|
|
33455
|
+
};
|
|
33456
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33457
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
33458
|
+
};
|
|
33459
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33460
|
+
var BringgDashboardSDK_1 = __webpack_require__(5655);
|
|
33461
|
+
var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
|
|
33462
|
+
var Vehicle_consts_1 = __webpack_require__(84010);
|
|
33463
|
+
var VehicleRealtimeSubscriptions = /** @class */ (function () {
|
|
33464
|
+
function VehicleRealtimeSubscriptions(session, vehiclesStore, storableDataService) {
|
|
33465
|
+
this.vehiclesStore = vehiclesStore;
|
|
33466
|
+
this.storableDataService = storableDataService;
|
|
33467
|
+
this.storableRealtimeSubscriptions = new storable_realtime_subscriptions_1.default(session, vehiclesStore, storableDataService);
|
|
33468
|
+
}
|
|
33469
|
+
VehicleRealtimeSubscriptions.prototype.updateStoreOnEvents = function () {
|
|
33470
|
+
var _this = this;
|
|
33471
|
+
this.storableRealtimeSubscriptions.updateStoreOnEvents([
|
|
33472
|
+
{
|
|
33473
|
+
name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE,
|
|
33474
|
+
isDelete: false,
|
|
33475
|
+
extraDataFunc: function (vehicle) { return ({ skipStoreUpdate: !_this.vehiclesStore.get(vehicle.id) }); },
|
|
33476
|
+
// Reconcile Trailer and affected Trucks after Truck-Trailer link is changed
|
|
33477
|
+
// Remove if / when Trailer-Truck link changes trigger Truck/-s real-time updated events
|
|
33478
|
+
onAfterStoreSync: function (mapped) { return _this.reconcileTrucksOnTrailerChange(mapped); }
|
|
33479
|
+
},
|
|
33480
|
+
{ name: Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, isDelete: true }
|
|
33481
|
+
]);
|
|
33482
|
+
};
|
|
33483
|
+
VehicleRealtimeSubscriptions.prototype.onUpdate = function (callback) {
|
|
33484
|
+
return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, function (item) { return callback(item.current); });
|
|
33485
|
+
};
|
|
33486
|
+
VehicleRealtimeSubscriptions.prototype.onDelete = function (callback) {
|
|
33487
|
+
return this.storableRealtimeSubscriptions.onEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_DELETE, function (item) { return callback(item.diff); });
|
|
33488
|
+
};
|
|
33489
|
+
VehicleRealtimeSubscriptions.prototype.onUnassigned = function (callback) {
|
|
33490
|
+
return this.storableRealtimeSubscriptions.onAnyEvent(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UNASSIGNED, function (vehicle) {
|
|
33491
|
+
return callback(vehicle);
|
|
33492
|
+
});
|
|
33493
|
+
};
|
|
33494
|
+
// This should work as expected until Vehicle Update event sends full Vehicle structure
|
|
33495
|
+
// and StorableDataService.mapper maps real-time payload to MappedStorableItem.current
|
|
33496
|
+
VehicleRealtimeSubscriptions.prototype.reconcileTrucksOnTrailerChange = function (_a) {
|
|
33497
|
+
var _this = this;
|
|
33498
|
+
var _b, _c;
|
|
33499
|
+
var trailer = _a.current;
|
|
33500
|
+
// Only a trailer update can change a truck's derived `trailer` field.
|
|
33501
|
+
if (!(trailer === null || trailer === void 0 ? void 0 : trailer.is_trailer)) {
|
|
33502
|
+
return;
|
|
33503
|
+
}
|
|
33504
|
+
// A partial trailer update may omit `truck_id`; only reconcile when the payload carries it
|
|
33505
|
+
// (explicit null = detach, a value = attach). Absent = no connection info -> leave cache as-is,
|
|
33506
|
+
// so a partial update can't be misread as detach and wrongly clear the truck's trailer.
|
|
33507
|
+
if (!('truck_id' in trailer)) {
|
|
33508
|
+
return;
|
|
33509
|
+
}
|
|
33510
|
+
var newTruckId = (_b = trailer.truck_id) !== null && _b !== void 0 ? _b : null;
|
|
33511
|
+
var oldTruck = this.findTruckHoldingTrailer(trailer.id);
|
|
33512
|
+
// No connection change relative to the cache - nothing to reconcile.
|
|
33513
|
+
if (((_c = oldTruck === null || oldTruck === void 0 ? void 0 : oldTruck.id) !== null && _c !== void 0 ? _c : null) === newTruckId) {
|
|
33514
|
+
return;
|
|
33515
|
+
}
|
|
33516
|
+
(0, BringgDashboardSDK_1.getGlobals)().mobx.runInAction(function () {
|
|
33517
|
+
if (oldTruck) {
|
|
33518
|
+
_this.applyTrailerToTruck(oldTruck.id, null);
|
|
33519
|
+
}
|
|
33520
|
+
_this.applyTrailerToTruck(newTruckId, trailer);
|
|
33521
|
+
});
|
|
33522
|
+
};
|
|
33523
|
+
VehicleRealtimeSubscriptions.prototype.findTruckHoldingTrailer = function (trailerId) {
|
|
33524
|
+
return this.vehiclesStore
|
|
33525
|
+
.getGroup(Vehicle_consts_1.VehicleGroup.IsTrailer, false)
|
|
33526
|
+
.find(function (vehicle) { return vehicle.trailer && vehicle.trailer.id === trailerId; });
|
|
33527
|
+
};
|
|
33528
|
+
VehicleRealtimeSubscriptions.prototype.applyTrailerToTruck = function (truckId, trailerEntity) {
|
|
33529
|
+
if (!truckId) {
|
|
33530
|
+
return;
|
|
33531
|
+
}
|
|
33532
|
+
var truck = this.vehiclesStore.get(truckId);
|
|
33533
|
+
// Only reconcile trucks that are actually cached; missing trucks get the correct trailer on load.
|
|
33534
|
+
if (!truck) {
|
|
33535
|
+
return;
|
|
33536
|
+
}
|
|
33537
|
+
var mobx = (0, BringgDashboardSDK_1.getGlobals)().mobx;
|
|
33538
|
+
// Deep, plain, non-observable COPY of the trailerEntity.
|
|
33539
|
+
// Drop the nested trailer's own `trailer` to avoid recursive nesting.
|
|
33540
|
+
var trailerSnapshot = trailerEntity ? __assign(__assign({}, mobx.toJS(trailerEntity)), { trailer: null }) : null;
|
|
33541
|
+
// toJS the truck too so we replace it with a fresh plain object instead of mutating the live
|
|
33542
|
+
// observable in place; updateInStores re-observes it as the truck's own subtree.
|
|
33543
|
+
var updatedTruck = __assign(__assign({}, mobx.toJS(truck)), { trailer: trailerSnapshot });
|
|
33544
|
+
var mapped = this.storableDataService.updateInStores(updatedTruck);
|
|
33545
|
+
this.storableRealtimeSubscriptions.runEventCallbacks(Vehicle_consts_1.REAL_TIME_EVENTS.VEHICLE_UPDATE, mapped);
|
|
33546
|
+
};
|
|
33547
|
+
return VehicleRealtimeSubscriptions;
|
|
33548
|
+
}());
|
|
33549
|
+
exports["default"] = VehicleRealtimeSubscriptions;
|
|
33550
|
+
//# sourceMappingURL=vehicle-realtime-subscriptions.js.map
|
|
33551
|
+
|
|
33552
|
+
/***/ }),
|
|
33553
|
+
|
|
33433
33554
|
/***/ 57020:
|
|
33434
33555
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
33435
33556
|
|
|
@@ -33488,22 +33609,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
33488
33609
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
33489
33610
|
var types_1 = __webpack_require__(63127);
|
|
33490
33611
|
var lodash_1 = __webpack_require__(96486);
|
|
33491
|
-
var storable_realtime_subscriptions_1 = __importDefault(__webpack_require__(1227));
|
|
33492
33612
|
var data_entity_1 = __webpack_require__(91083);
|
|
33493
33613
|
var data_store_1 = __importDefault(__webpack_require__(73135));
|
|
33494
33614
|
var storable_data_service_1 = __importDefault(__webpack_require__(45297));
|
|
33495
33615
|
var Vehicle_consts_1 = __webpack_require__(84010);
|
|
33616
|
+
var vehicle_realtime_subscriptions_1 = __importDefault(__webpack_require__(25240));
|
|
33496
33617
|
var vehicles_service_1 = __importDefault(__webpack_require__(87386));
|
|
33497
33618
|
var VehiclesApi = /** @class */ (function () {
|
|
33498
33619
|
function VehiclesApi(session) {
|
|
33620
|
+
var _this = this;
|
|
33499
33621
|
var groupFilters = [
|
|
33500
33622
|
{ groupType: Vehicle_consts_1.VehicleGroup.Team, keyFunc: function (vehicle) { return vehicle.team_id; } },
|
|
33501
33623
|
{ groupType: Vehicle_consts_1.VehicleGroup.IsTrailer, keyFunc: function (vehicle) { return !!vehicle.is_trailer; } }
|
|
33502
33624
|
];
|
|
33503
33625
|
this.vehiclesStore = new data_store_1.default(groupFilters);
|
|
33504
33626
|
this.vehiclesService = new vehicles_service_1.default(session);
|
|
33505
|
-
this.storableDataService = new storable_data_service_1.default(this.vehiclesStore);
|
|
33506
|
-
this.
|
|
33627
|
+
this.storableDataService = new storable_data_service_1.default(this.vehiclesStore, function (vehicle) { return _this.mapVehicle(vehicle); });
|
|
33628
|
+
this.vehicleRealtimeSubscriptions = new vehicle_realtime_subscriptions_1.default(session, this.vehiclesStore, this.storableDataService);
|
|
33507
33629
|
}
|
|
33508
33630
|
VehiclesApi.prototype.load = function (id, options) {
|
|
33509
33631
|
var _this = this;
|
|
@@ -33600,21 +33722,26 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
33600
33722
|
return this.storableDataService.modify('create', function () { return _this.vehiclesService.create(vehicleData); });
|
|
33601
33723
|
};
|
|
33602
33724
|
VehiclesApi.prototype.updateStoreOnEvents = function () {
|
|
33603
|
-
this.
|
|
33604
|
-
|
|
33605
|
-
|
|
33606
|
-
|
|
33725
|
+
this.vehicleRealtimeSubscriptions.updateStoreOnEvents();
|
|
33726
|
+
};
|
|
33727
|
+
// `trailer` is a derived field the reconciler maintains on trucks. Realtime vehicle payloads don't
|
|
33728
|
+
// carry it, so a plain truck update would otherwise REPLACE the cached truck and wipe its trailer.
|
|
33729
|
+
// Preserve the cached `trailer` whenever the incoming payload omits the key; take it from the payload
|
|
33730
|
+
// only when explicitly present (HTTP loads, PUT responses, reconciler writes).
|
|
33731
|
+
VehiclesApi.prototype.mapVehicle = function (vehicle) {
|
|
33732
|
+
var existing = this.vehiclesStore.get(vehicle.id);
|
|
33733
|
+
var current = existing && 'trailer' in existing && !('trailer' in vehicle)
|
|
33734
|
+
? __assign(__assign({}, vehicle), { trailer: existing.trailer }) : vehicle;
|
|
33735
|
+
return { current: current, diff: existing };
|
|
33607
33736
|
};
|
|
33608
33737
|
VehiclesApi.prototype.onUpdate = function (callback) {
|
|
33609
|
-
return this.
|
|
33738
|
+
return this.vehicleRealtimeSubscriptions.onUpdate(callback);
|
|
33610
33739
|
};
|
|
33611
33740
|
VehiclesApi.prototype.onDelete = function (callback) {
|
|
33612
|
-
return this.
|
|
33741
|
+
return this.vehicleRealtimeSubscriptions.onDelete(callback);
|
|
33613
33742
|
};
|
|
33614
33743
|
VehiclesApi.prototype.onUnassigned = function (callback) {
|
|
33615
|
-
return this.
|
|
33616
|
-
return callback(vehicle);
|
|
33617
|
-
});
|
|
33744
|
+
return this.vehicleRealtimeSubscriptions.onUnassigned(callback);
|
|
33618
33745
|
};
|
|
33619
33746
|
VehiclesApi.prototype.get = function (id) {
|
|
33620
33747
|
return this.vehiclesStore.get(id);
|