@mmstack/resource 20.4.0 → 21.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.
|
@@ -945,7 +945,12 @@ function createDedupeRequestsInterceptor(allowed = ['GET', 'DELETE', 'HEAD', 'OP
|
|
|
945
945
|
* isPlainObject(new Date()) // => false
|
|
946
946
|
*/
|
|
947
947
|
function isPlainObject(value) {
|
|
948
|
-
|
|
948
|
+
if (value === null || typeof value !== 'object')
|
|
949
|
+
return false;
|
|
950
|
+
const proto = Object.getPrototypeOf(value);
|
|
951
|
+
if (proto === null)
|
|
952
|
+
return false; // remove Object.create(null);
|
|
953
|
+
return proto === Object.prototype;
|
|
949
954
|
}
|
|
950
955
|
/**
|
|
951
956
|
* Internal helper to generate a stable JSON string from an array.
|
|
@@ -1173,15 +1178,21 @@ function hasSlowConnection() {
|
|
|
1173
1178
|
|
|
1174
1179
|
function persist(src, equal) {
|
|
1175
1180
|
// linkedSignal allows us to access previous source value
|
|
1176
|
-
const persisted = linkedSignal({
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
return
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1181
|
+
const persisted = linkedSignal(...(ngDevMode ? [{ debugName: "persisted", source: () => src(),
|
|
1182
|
+
computation: (next, prev) => {
|
|
1183
|
+
if (next === undefined && prev !== undefined)
|
|
1184
|
+
return prev.value;
|
|
1185
|
+
return next;
|
|
1186
|
+
},
|
|
1187
|
+
equal }] : [{
|
|
1188
|
+
source: () => src(),
|
|
1189
|
+
computation: (next, prev) => {
|
|
1190
|
+
if (next === undefined && prev !== undefined)
|
|
1191
|
+
return prev.value;
|
|
1192
|
+
return next;
|
|
1193
|
+
},
|
|
1194
|
+
equal,
|
|
1195
|
+
}]));
|
|
1185
1196
|
// if original value was WritableSignal then override linkedSignal methods to original...angular uses linkedSignal under the hood in ResourceImpl, this applies to that.
|
|
1186
1197
|
if ('set' in src) {
|
|
1187
1198
|
persisted.set = src.set;
|
|
@@ -1266,10 +1277,10 @@ function retryOnError(res, opt) {
|
|
|
1266
1277
|
|
|
1267
1278
|
class ResourceSensors {
|
|
1268
1279
|
networkStatus = sensor('networkStatus');
|
|
1269
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1270
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ResourceSensors, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1281
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ResourceSensors, providedIn: 'root' });
|
|
1271
1282
|
}
|
|
1272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: ResourceSensors, decorators: [{
|
|
1273
1284
|
type: Injectable,
|
|
1274
1285
|
args: [{
|
|
1275
1286
|
providedIn: 'root',
|
|
@@ -1388,27 +1399,45 @@ function queryResource(request, options) {
|
|
|
1388
1399
|
resource = catchValueError(resource, options?.defaultValue);
|
|
1389
1400
|
// get full HttpResonse from Cache
|
|
1390
1401
|
const cachedEvent = cache.getEntryOrKey(cacheKey);
|
|
1391
|
-
const cacheEntry = linkedSignal({
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
return {
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
}
|
|
1410
|
-
|
|
1411
|
-
|
|
1402
|
+
const cacheEntry = linkedSignal(...(ngDevMode ? [{ debugName: "cacheEntry", source: () => cachedEvent(),
|
|
1403
|
+
computation: (entry, prev) => {
|
|
1404
|
+
if (!entry)
|
|
1405
|
+
return null;
|
|
1406
|
+
if (typeof entry === 'string' &&
|
|
1407
|
+
prev &&
|
|
1408
|
+
prev.value !== null &&
|
|
1409
|
+
prev.value.key === entry) {
|
|
1410
|
+
return prev.value;
|
|
1411
|
+
}
|
|
1412
|
+
if (typeof entry === 'string')
|
|
1413
|
+
return { key: entry, value: null };
|
|
1414
|
+
if (!(entry.value instanceof HttpResponse))
|
|
1415
|
+
return { key: entry.key, value: null };
|
|
1416
|
+
return {
|
|
1417
|
+
value: entry.value.body,
|
|
1418
|
+
key: entry.key,
|
|
1419
|
+
};
|
|
1420
|
+
} }] : [{
|
|
1421
|
+
source: () => cachedEvent(),
|
|
1422
|
+
computation: (entry, prev) => {
|
|
1423
|
+
if (!entry)
|
|
1424
|
+
return null;
|
|
1425
|
+
if (typeof entry === 'string' &&
|
|
1426
|
+
prev &&
|
|
1427
|
+
prev.value !== null &&
|
|
1428
|
+
prev.value.key === entry) {
|
|
1429
|
+
return prev.value;
|
|
1430
|
+
}
|
|
1431
|
+
if (typeof entry === 'string')
|
|
1432
|
+
return { key: entry, value: null };
|
|
1433
|
+
if (!(entry.value instanceof HttpResponse))
|
|
1434
|
+
return { key: entry.key, value: null };
|
|
1435
|
+
return {
|
|
1436
|
+
value: entry.value.body,
|
|
1437
|
+
key: entry.key,
|
|
1438
|
+
};
|
|
1439
|
+
},
|
|
1440
|
+
}]));
|
|
1412
1441
|
resource = refresh(resource, destroyRef, options?.refresh);
|
|
1413
1442
|
resource = retryOnError(resource, options?.retry);
|
|
1414
1443
|
resource = persistResourceValues(resource, options?.keepPrevious, options?.equal);
|
|
@@ -1493,6 +1522,7 @@ function queryResource(request, options) {
|
|
|
1493
1522
|
try {
|
|
1494
1523
|
await firstValueFrom(client.request(prefetchRequest.method ?? 'GET', prefetchRequest.url, {
|
|
1495
1524
|
...prefetchRequest,
|
|
1525
|
+
referrerPolicy: prefetchRequest.referrerPolicy,
|
|
1496
1526
|
credentials: prefetchRequest.credentials,
|
|
1497
1527
|
priority: prefetchRequest.priority,
|
|
1498
1528
|
cache: prefetchRequest.cache,
|
|
@@ -1580,14 +1610,19 @@ function mutationResource(request, options = {}) {
|
|
|
1580
1610
|
}, ...(ngDevMode ? [{ debugName: "req", equal: requestEqual }] : [{
|
|
1581
1611
|
equal: requestEqual,
|
|
1582
1612
|
}]));
|
|
1583
|
-
const lastValue = linkedSignal({
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
return
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1613
|
+
const lastValue = linkedSignal(...(ngDevMode ? [{ debugName: "lastValue", source: next,
|
|
1614
|
+
computation: (next, prev) => {
|
|
1615
|
+
if (next === null && !!prev)
|
|
1616
|
+
return prev.value;
|
|
1617
|
+
return next;
|
|
1618
|
+
} }] : [{
|
|
1619
|
+
source: next,
|
|
1620
|
+
computation: (next, prev) => {
|
|
1621
|
+
if (next === null && !!prev)
|
|
1622
|
+
return prev.value;
|
|
1623
|
+
return next;
|
|
1624
|
+
},
|
|
1625
|
+
}]));
|
|
1591
1626
|
const lastValueRequest = computed(() => {
|
|
1592
1627
|
const nr = lastValue();
|
|
1593
1628
|
if (!nr)
|