@bringg/dashboard-sdk 9.91.0 → 9.91.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/dist/Vehicle/v2/vehicles-api.d.ts +3 -3
- package/dist/Vehicle/v2/vehicles-api.js +32 -2
- package/dist/Vehicle/v2/vehicles-api.js.map +1 -1
- package/dist/bringg-dashboard-sdk-cjs2.js +184 -3
- package/dist/bringg-dashboard-sdk-cjs2.js.map +1 -1
- package/dist/bringg-dashboard-sdk.js +13 -2
- package/dist/bringg-dashboard-sdk.min.js +1 -1
- package/dist/bringg-dashboard-sdk.min.js.map +1 -1
- package/dist/utils/decorators/negative-cache.d.ts +27 -0
- package/dist/utils/decorators/negative-cache.js +144 -0
- package/dist/utils/decorators/negative-cache.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { KeysetPaginationResponse, MerchantConfigurationCSVField, Vehicle, VehicleChange } from '@bringg/types';
|
|
2
|
-
import { StorableEventUnsubscribe } from '../../Data/storable-types';
|
|
3
2
|
import { DataOptions, GroupValue } from '../../data-entity';
|
|
4
3
|
import Session from '../../Services/Identity/Session';
|
|
5
4
|
import { PagedVehiclesFilters, PagedVehiclesResponse, VehicleGroup, VehiclesCsvImportResponse } from '../Vehicle.consts';
|
|
6
5
|
type VehicleDTO = Vehicle & {
|
|
7
6
|
default_parking_spot_external_id?: string;
|
|
8
7
|
};
|
|
8
|
+
export declare const MISSING_VEHICLES_CACHE_TTL: number;
|
|
9
9
|
export default class VehiclesApi {
|
|
10
10
|
private readonly vehiclesStore;
|
|
11
11
|
private readonly vehiclesService;
|
|
@@ -23,8 +23,8 @@ export default class VehiclesApi {
|
|
|
23
23
|
create(vehicleData: Partial<VehicleDTO>): Promise<Vehicle>;
|
|
24
24
|
updateStoreOnEvents(): void;
|
|
25
25
|
private mapVehicle;
|
|
26
|
-
onUpdate(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
|
|
27
|
-
onDelete(callback: (vehicle: Vehicle) => void): StorableEventUnsubscribe;
|
|
26
|
+
onUpdate(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
|
|
27
|
+
onDelete(callback: (vehicle: Vehicle) => void): import("../../Data/storable-types").StorableEventUnsubscribe;
|
|
28
28
|
onUnassigned(callback: (vehicle: Vehicle) => void): () => void;
|
|
29
29
|
get(id: number): Vehicle;
|
|
30
30
|
getAll(): Vehicle[];
|
|
@@ -10,6 +10,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
14
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
17
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
18
|
+
};
|
|
13
19
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
20
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
21
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -50,14 +56,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
50
56
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
57
|
};
|
|
52
58
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
exports.MISSING_VEHICLES_CACHE_TTL = void 0;
|
|
53
60
|
var types_1 = require("@bringg/types");
|
|
54
61
|
var lodash_1 = require("lodash");
|
|
55
62
|
var data_entity_1 = require("../../data-entity");
|
|
56
63
|
var data_store_1 = __importDefault(require("../../data-store"));
|
|
57
64
|
var storable_data_service_1 = __importDefault(require("../../storable-data-service"));
|
|
65
|
+
var negative_cache_1 = __importDefault(require("../../utils/decorators/negative-cache"));
|
|
58
66
|
var Vehicle_consts_1 = require("../Vehicle.consts");
|
|
59
67
|
var vehicle_realtime_subscriptions_1 = __importDefault(require("./vehicle-realtime-subscriptions"));
|
|
60
68
|
var vehicles_service_1 = __importDefault(require("./vehicles-service"));
|
|
69
|
+
// How long a vehicle id the server did not return stays out of `batch_get` requests.
|
|
70
|
+
exports.MISSING_VEHICLES_CACHE_TTL = 1000 * 60 * 10; // 10 minutes
|
|
71
|
+
var MAX_VEHICLES_CHUNK_SIZE = 500;
|
|
72
|
+
var SERVER_DEFAULT_VEHICLES_CHUNK_SIZE = 50;
|
|
73
|
+
var getSafeChunkSize = function (chunkSize) {
|
|
74
|
+
if ((0, lodash_1.isNil)(chunkSize) || chunkSize > MAX_VEHICLES_CHUNK_SIZE) {
|
|
75
|
+
return MAX_VEHICLES_CHUNK_SIZE;
|
|
76
|
+
}
|
|
77
|
+
if (chunkSize <= 0) {
|
|
78
|
+
return SERVER_DEFAULT_VEHICLES_CHUNK_SIZE;
|
|
79
|
+
}
|
|
80
|
+
return chunkSize;
|
|
81
|
+
};
|
|
61
82
|
var VehiclesApi = /** @class */ (function () {
|
|
62
83
|
function VehiclesApi(session) {
|
|
63
84
|
var _this = this;
|
|
@@ -82,14 +103,17 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
82
103
|
var _this = this;
|
|
83
104
|
return this.storableDataService.loadAll('loadAllByTeam', function () { return _this.vehiclesService.loadAllByTeam(teamId); }, __assign(__assign({}, options), { groupType: Vehicle_consts_1.VehicleGroup.Team, groupValue: teamId }));
|
|
84
105
|
};
|
|
106
|
+
// Suppression assumes an id absent from the response is ones the backend can not return for the current user.
|
|
107
|
+
// Note! Items dropped by the server because of limit / chunkSize also fall in this bucket.
|
|
85
108
|
VehiclesApi.prototype.loadMany = function (ids, options) {
|
|
86
109
|
if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
|
|
87
110
|
return __awaiter(this, void 0, void 0, function () {
|
|
88
111
|
var optionsWithDefaults, chunkSize;
|
|
89
112
|
var _this = this;
|
|
90
113
|
return __generator(this, function (_a) {
|
|
91
|
-
optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign(
|
|
92
|
-
chunkSize = optionsWithDefaults.chunkSize;
|
|
114
|
+
optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign({}, data_entity_1.DEFAULT_OPTIONS));
|
|
115
|
+
chunkSize = getSafeChunkSize(optionsWithDefaults.chunkSize);
|
|
116
|
+
optionsWithDefaults.chunkSize = chunkSize;
|
|
93
117
|
return [2 /*return*/, this.storableDataService.loadMany('batchGet', function (idsToLoad) {
|
|
94
118
|
if (idsToLoad.length === 0) {
|
|
95
119
|
return Promise.resolve([]);
|
|
@@ -240,6 +264,12 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
240
264
|
});
|
|
241
265
|
});
|
|
242
266
|
};
|
|
267
|
+
__decorate([
|
|
268
|
+
(0, negative_cache_1.default)({
|
|
269
|
+
ttlMs: exports.MISSING_VEHICLES_CACHE_TTL,
|
|
270
|
+
hasItem: function (vehiclesApi, id) { return !(0, lodash_1.isNil)(vehiclesApi.get(id)); }
|
|
271
|
+
})
|
|
272
|
+
], VehiclesApi.prototype, "loadMany", null);
|
|
243
273
|
return VehiclesApi;
|
|
244
274
|
}());
|
|
245
275
|
exports.default = VehiclesApi;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vehicles-api.js","sourceRoot":"","sources":["../../../src/Vehicle/v2/vehicles-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -24784,7 +24784,7 @@ var BringgException_1 = __webpack_require__(43605);
|
|
|
24784
24784
|
var client_page_1 = __webpack_require__(16573);
|
|
24785
24785
|
var Logger_1 = __importDefault(__webpack_require__(55860));
|
|
24786
24786
|
var abort_1 = __webpack_require__(34179);
|
|
24787
|
-
var version = '9.91.
|
|
24787
|
+
var version = '9.91.1';
|
|
24788
24788
|
function logErrorResponse(response) {
|
|
24789
24789
|
var data = response.data, status = response.status;
|
|
24790
24790
|
try {
|
|
@@ -34649,6 +34649,12 @@ var __assign = (this && this.__assign) || function () {
|
|
|
34649
34649
|
};
|
|
34650
34650
|
return __assign.apply(this, arguments);
|
|
34651
34651
|
};
|
|
34652
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
34653
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
34654
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
34655
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
34656
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
34657
|
+
};
|
|
34652
34658
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
34653
34659
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
34654
34660
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -34689,14 +34695,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
34689
34695
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34690
34696
|
};
|
|
34691
34697
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
34698
|
+
exports.MISSING_VEHICLES_CACHE_TTL = void 0;
|
|
34692
34699
|
var types_1 = __webpack_require__(63127);
|
|
34693
34700
|
var lodash_1 = __webpack_require__(96486);
|
|
34694
34701
|
var data_entity_1 = __webpack_require__(91083);
|
|
34695
34702
|
var data_store_1 = __importDefault(__webpack_require__(73135));
|
|
34696
34703
|
var storable_data_service_1 = __importDefault(__webpack_require__(45297));
|
|
34704
|
+
var negative_cache_1 = __importDefault(__webpack_require__(2521));
|
|
34697
34705
|
var Vehicle_consts_1 = __webpack_require__(84010);
|
|
34698
34706
|
var vehicle_realtime_subscriptions_1 = __importDefault(__webpack_require__(25240));
|
|
34699
34707
|
var vehicles_service_1 = __importDefault(__webpack_require__(87386));
|
|
34708
|
+
// How long a vehicle id the server did not return stays out of `batch_get` requests.
|
|
34709
|
+
exports.MISSING_VEHICLES_CACHE_TTL = 1000 * 60 * 10; // 10 minutes
|
|
34710
|
+
var MAX_VEHICLES_CHUNK_SIZE = 500;
|
|
34711
|
+
var SERVER_DEFAULT_VEHICLES_CHUNK_SIZE = 50;
|
|
34712
|
+
var getSafeChunkSize = function (chunkSize) {
|
|
34713
|
+
if ((0, lodash_1.isNil)(chunkSize) || chunkSize > MAX_VEHICLES_CHUNK_SIZE) {
|
|
34714
|
+
return MAX_VEHICLES_CHUNK_SIZE;
|
|
34715
|
+
}
|
|
34716
|
+
if (chunkSize <= 0) {
|
|
34717
|
+
return SERVER_DEFAULT_VEHICLES_CHUNK_SIZE;
|
|
34718
|
+
}
|
|
34719
|
+
return chunkSize;
|
|
34720
|
+
};
|
|
34700
34721
|
var VehiclesApi = /** @class */ (function () {
|
|
34701
34722
|
function VehiclesApi(session) {
|
|
34702
34723
|
var _this = this;
|
|
@@ -34721,14 +34742,17 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
34721
34742
|
var _this = this;
|
|
34722
34743
|
return this.storableDataService.loadAll('loadAllByTeam', function () { return _this.vehiclesService.loadAllByTeam(teamId); }, __assign(__assign({}, options), { groupType: Vehicle_consts_1.VehicleGroup.Team, groupValue: teamId }));
|
|
34723
34744
|
};
|
|
34745
|
+
// Suppression assumes an id absent from the response is ones the backend can not return for the current user.
|
|
34746
|
+
// Note! Items dropped by the server because of limit / chunkSize also fall in this bucket.
|
|
34724
34747
|
VehiclesApi.prototype.loadMany = function (ids, options) {
|
|
34725
34748
|
if (options === void 0) { options = data_entity_1.DEFAULT_OPTIONS; }
|
|
34726
34749
|
return __awaiter(this, void 0, void 0, function () {
|
|
34727
34750
|
var optionsWithDefaults, chunkSize;
|
|
34728
34751
|
var _this = this;
|
|
34729
34752
|
return __generator(this, function (_a) {
|
|
34730
|
-
optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign(
|
|
34731
|
-
chunkSize = optionsWithDefaults.chunkSize;
|
|
34753
|
+
optionsWithDefaults = (0, lodash_1.defaults)({}, options, __assign({}, data_entity_1.DEFAULT_OPTIONS));
|
|
34754
|
+
chunkSize = getSafeChunkSize(optionsWithDefaults.chunkSize);
|
|
34755
|
+
optionsWithDefaults.chunkSize = chunkSize;
|
|
34732
34756
|
return [2 /*return*/, this.storableDataService.loadMany('batchGet', function (idsToLoad) {
|
|
34733
34757
|
if (idsToLoad.length === 0) {
|
|
34734
34758
|
return Promise.resolve([]);
|
|
@@ -34879,6 +34903,12 @@ var VehiclesApi = /** @class */ (function () {
|
|
|
34879
34903
|
});
|
|
34880
34904
|
});
|
|
34881
34905
|
};
|
|
34906
|
+
__decorate([
|
|
34907
|
+
(0, negative_cache_1.default)({
|
|
34908
|
+
ttlMs: exports.MISSING_VEHICLES_CACHE_TTL,
|
|
34909
|
+
hasItem: function (vehiclesApi, id) { return !(0, lodash_1.isNil)(vehiclesApi.get(id)); }
|
|
34910
|
+
})
|
|
34911
|
+
], VehiclesApi.prototype, "loadMany", null);
|
|
34882
34912
|
return VehiclesApi;
|
|
34883
34913
|
}());
|
|
34884
34914
|
exports["default"] = VehiclesApi;
|
|
@@ -37343,6 +37373,157 @@ exports["default"] = withPromiseCache;
|
|
|
37343
37373
|
|
|
37344
37374
|
/***/ }),
|
|
37345
37375
|
|
|
37376
|
+
/***/ 2521:
|
|
37377
|
+
/***/ (function(__unused_webpack_module, exports) {
|
|
37378
|
+
|
|
37379
|
+
"use strict";
|
|
37380
|
+
|
|
37381
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37382
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37383
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
37384
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
37385
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
37386
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
37387
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
37388
|
+
});
|
|
37389
|
+
};
|
|
37390
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
37391
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
37392
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37393
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
37394
|
+
function step(op) {
|
|
37395
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
37396
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
37397
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
37398
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
37399
|
+
switch (op[0]) {
|
|
37400
|
+
case 0: case 1: t = op; break;
|
|
37401
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
37402
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
37403
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
37404
|
+
default:
|
|
37405
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37406
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
37407
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
37408
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
37409
|
+
if (t[2]) _.ops.pop();
|
|
37410
|
+
_.trys.pop(); continue;
|
|
37411
|
+
}
|
|
37412
|
+
op = body.call(thisArg, _);
|
|
37413
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
37414
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
37415
|
+
}
|
|
37416
|
+
};
|
|
37417
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
37418
|
+
exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE = void 0;
|
|
37419
|
+
exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE = 5000;
|
|
37420
|
+
var instanceCaches = new WeakMap();
|
|
37421
|
+
var getCache = function (instance) {
|
|
37422
|
+
var cache = instanceCaches.get(instance);
|
|
37423
|
+
if (!cache) {
|
|
37424
|
+
cache = { misses: new Map(), lastSweptAt: Date.now() };
|
|
37425
|
+
instanceCaches.set(instance, cache);
|
|
37426
|
+
}
|
|
37427
|
+
return cache;
|
|
37428
|
+
};
|
|
37429
|
+
// Entries are only ever added by the decorated method, so sweeping on call covers every growth path
|
|
37430
|
+
// without a timer that would pin the instance and defeat the WeakMap. An entry recorded just after a
|
|
37431
|
+
// sweep survives until the sweep after next, so worst-case lifetime is ~2x ttlMs.
|
|
37432
|
+
var sweep = function (cache, ttlMs, now) {
|
|
37433
|
+
if (now - cache.lastSweptAt < ttlMs) {
|
|
37434
|
+
return;
|
|
37435
|
+
}
|
|
37436
|
+
var expired = [];
|
|
37437
|
+
cache.misses.forEach(function (missedAt, id) {
|
|
37438
|
+
if (now - missedAt >= ttlMs) {
|
|
37439
|
+
expired.push(id);
|
|
37440
|
+
}
|
|
37441
|
+
});
|
|
37442
|
+
expired.forEach(function (id) { return cache.misses.delete(id); });
|
|
37443
|
+
cache.lastSweptAt = now;
|
|
37444
|
+
};
|
|
37445
|
+
// A burst of distinct misses inside one ttl window has nothing to sweep - drop oldest first.
|
|
37446
|
+
// Map keeps insertion order and entries are inserted at miss time, so the front is the oldest.
|
|
37447
|
+
// Runs AFTER recording, so a single call that overshoots the cap is trimmed by that same call.
|
|
37448
|
+
var enforceCap = function (cache, maxSize) {
|
|
37449
|
+
if (cache.misses.size <= maxSize) {
|
|
37450
|
+
return;
|
|
37451
|
+
}
|
|
37452
|
+
var overflow = cache.misses.size - maxSize;
|
|
37453
|
+
var oldestFirst = cache.misses.keys();
|
|
37454
|
+
for (var i = 0; i < overflow; i++) {
|
|
37455
|
+
cache.misses.delete(oldestFirst.next().value);
|
|
37456
|
+
}
|
|
37457
|
+
};
|
|
37458
|
+
/**
|
|
37459
|
+
* Suppresses ids the server repeatedly fails to return.
|
|
37460
|
+
*
|
|
37461
|
+
* Decorates a `loadMany(ids, options?)` method: ids the previous response omitted are dropped from the
|
|
37462
|
+
* next request until `ttlMs` elapses, so an id the backend cannot return (soft-deleted, scoped to another
|
|
37463
|
+
* team, external, other company) is requested once per TTL instead of on every call.
|
|
37464
|
+
*
|
|
37465
|
+
* TODO(TS 5.x): written as a legacy decorator (`experimentalDecorators`, TS 4.9 here - standard Stage 3
|
|
37466
|
+
* decorators need TS 5.0+). Upgrade when the repo moves to TS 5.x: a Stage 3 method decorator takes
|
|
37467
|
+
* `(originalMethod, context)` and returns the replacement function, so the `PropertyDescriptor`
|
|
37468
|
+
* plumbing below goes away. `./cached-promise.ts` needs the same treatment at that point.
|
|
37469
|
+
*/
|
|
37470
|
+
function withNegativeCache(_a) {
|
|
37471
|
+
var ttlMs = _a.ttlMs, hasItem = _a.hasItem, _b = _a.maxSize, maxSize = _b === void 0 ? exports.DEFAULT_NEGATIVE_CACHE_MAX_SIZE : _b;
|
|
37472
|
+
return function (target, propertyName, propertyDescriptor) {
|
|
37473
|
+
var method = propertyDescriptor.value;
|
|
37474
|
+
propertyDescriptor.value = function (ids, options) {
|
|
37475
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
37476
|
+
var instanceCache, cache, idsToLoad, items, returnedIds, now;
|
|
37477
|
+
var _this = this;
|
|
37478
|
+
return __generator(this, function (_a) {
|
|
37479
|
+
switch (_a.label) {
|
|
37480
|
+
case 0:
|
|
37481
|
+
// Nothing to load, and no instance to key the per-instance cache on when the method was
|
|
37482
|
+
// detached from it (`const { loadMany } = api`).
|
|
37483
|
+
if (!this || !(ids === null || ids === void 0 ? void 0 : ids.length)) {
|
|
37484
|
+
return [2 /*return*/, method.call(this, ids, options)];
|
|
37485
|
+
}
|
|
37486
|
+
instanceCache = getCache(this);
|
|
37487
|
+
cache = instanceCache.misses;
|
|
37488
|
+
sweep(instanceCache, ttlMs, Date.now());
|
|
37489
|
+
if ((options === null || options === void 0 ? void 0 : options.useCache) === false) {
|
|
37490
|
+
ids.forEach(function (id) { return cache.delete(id); });
|
|
37491
|
+
}
|
|
37492
|
+
idsToLoad = ids.filter(function (id) {
|
|
37493
|
+
var missedAt = cache.get(id);
|
|
37494
|
+
if (missedAt === undefined) {
|
|
37495
|
+
return true;
|
|
37496
|
+
}
|
|
37497
|
+
// Expired, or the item showed up by another route - either way it is requestable again.
|
|
37498
|
+
if (Date.now() - missedAt >= ttlMs || hasItem(_this, id)) {
|
|
37499
|
+
cache.delete(id);
|
|
37500
|
+
return true;
|
|
37501
|
+
}
|
|
37502
|
+
return false;
|
|
37503
|
+
});
|
|
37504
|
+
if (!idsToLoad.length) {
|
|
37505
|
+
return [2 /*return*/, []];
|
|
37506
|
+
}
|
|
37507
|
+
return [4 /*yield*/, method.call(this, idsToLoad, options)];
|
|
37508
|
+
case 1:
|
|
37509
|
+
items = _a.sent();
|
|
37510
|
+
returnedIds = new Set(items.map(function (item) { return item.id; }));
|
|
37511
|
+
now = Date.now();
|
|
37512
|
+
idsToLoad.forEach(function (id) { return (returnedIds.has(id) ? cache.delete(id) : cache.set(id, now)); });
|
|
37513
|
+
enforceCap(instanceCache, maxSize);
|
|
37514
|
+
return [2 /*return*/, items];
|
|
37515
|
+
}
|
|
37516
|
+
});
|
|
37517
|
+
});
|
|
37518
|
+
};
|
|
37519
|
+
return propertyDescriptor;
|
|
37520
|
+
};
|
|
37521
|
+
}
|
|
37522
|
+
exports["default"] = withNegativeCache;
|
|
37523
|
+
//# sourceMappingURL=negative-cache.js.map
|
|
37524
|
+
|
|
37525
|
+
/***/ }),
|
|
37526
|
+
|
|
37346
37527
|
/***/ 52581:
|
|
37347
37528
|
/***/ ((__unused_webpack_module, exports) => {
|
|
37348
37529
|
|