@smess/networking 1.2.0 → 2.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 +211 -0
- package/README.md +165 -114
- package/dist/core/body.d.ts +10 -0
- package/dist/core/body.d.ts.map +1 -0
- package/dist/core/body.js +22 -0
- package/dist/core/body.js.map +1 -0
- package/dist/core/client.d.ts +74 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +124 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/decoders.d.ts +8 -0
- package/dist/core/decoders.d.ts.map +1 -0
- package/dist/core/decoders.js +26 -0
- package/dist/core/decoders.js.map +1 -0
- package/dist/core/endpoint.d.ts +69 -0
- package/dist/core/endpoint.d.ts.map +1 -0
- package/dist/core/endpoint.js +6 -0
- package/dist/core/endpoint.js.map +1 -0
- package/dist/core/hosts.d.ts +25 -0
- package/dist/core/hosts.d.ts.map +1 -0
- package/dist/core/hosts.js +22 -0
- package/dist/core/hosts.js.map +1 -0
- package/dist/core/pagination.d.ts +33 -0
- package/dist/core/pagination.d.ts.map +1 -0
- package/dist/core/pagination.js +23 -0
- package/dist/core/pagination.js.map +1 -0
- package/dist/core/pipeline.d.ts +25 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +12 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/retry.d.ts +18 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +47 -0
- package/dist/core/retry.js.map +1 -0
- package/dist/core/transport.d.ts +30 -0
- package/dist/core/transport.d.ts.map +1 -0
- package/dist/core/transport.js +73 -0
- package/dist/core/transport.js.map +1 -0
- package/dist/core/types.d.ts +24 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/url.d.ts +15 -0
- package/dist/core/url.d.ts.map +1 -0
- package/dist/core/url.js +46 -0
- package/dist/core/url.js.map +1 -0
- package/dist/errors/parse-error-body.d.ts +20 -0
- package/dist/errors/parse-error-body.d.ts.map +1 -0
- package/dist/errors/parse-error-body.js +73 -0
- package/dist/errors/parse-error-body.js.map +1 -0
- package/dist/errors/smess-api-error.d.ts +70 -0
- package/dist/errors/smess-api-error.d.ts.map +1 -0
- package/dist/errors/smess-api-error.js +84 -0
- package/dist/errors/smess-api-error.js.map +1 -0
- package/dist/index.d.ts +27 -25
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -29
- package/dist/index.js.map +1 -0
- package/dist/modules/authentication/index.d.ts +89 -0
- package/dist/modules/authentication/index.d.ts.map +1 -0
- package/dist/modules/authentication/index.js +128 -0
- package/dist/modules/authentication/index.js.map +1 -0
- package/dist/modules/campaign/index.d.ts +212 -0
- package/dist/modules/campaign/index.d.ts.map +1 -0
- package/dist/modules/campaign/index.js +193 -0
- package/dist/modules/campaign/index.js.map +1 -0
- package/dist/modules/campaign/types.d.ts +562 -0
- package/dist/modules/campaign/types.d.ts.map +1 -0
- package/dist/modules/campaign/types.js +2 -0
- package/dist/modules/campaign/types.js.map +1 -0
- package/dist/modules/danara/index.d.ts +153 -0
- package/dist/modules/danara/index.d.ts.map +1 -0
- package/dist/modules/danara/index.js +144 -0
- package/dist/modules/danara/index.js.map +1 -0
- package/dist/modules/danara/types.d.ts +479 -0
- package/dist/modules/danara/types.d.ts.map +1 -0
- package/dist/modules/danara/types.js +2 -0
- package/dist/modules/danara/types.js.map +1 -0
- package/dist/modules/smeup-file/index.d.ts +27 -0
- package/dist/modules/smeup-file/index.d.ts.map +1 -0
- package/dist/modules/smeup-file/index.js +17 -0
- package/dist/modules/smeup-file/index.js.map +1 -0
- package/dist/modules/sso/index.d.ts +40 -0
- package/dist/modules/sso/index.d.ts.map +1 -0
- package/dist/modules/sso/index.js +41 -0
- package/dist/modules/sso/index.js.map +1 -0
- package/dist/rx/index.d.ts +11 -0
- package/dist/rx/index.d.ts.map +1 -0
- package/dist/rx/index.js +20 -0
- package/dist/rx/index.js.map +1 -0
- package/dist/session/auth-middleware.d.ts +27 -0
- package/dist/session/auth-middleware.d.ts.map +1 -0
- package/dist/session/auth-middleware.js +122 -0
- package/dist/session/auth-middleware.js.map +1 -0
- package/dist/session/jwt.d.ts +20 -0
- package/dist/session/jwt.d.ts.map +1 -0
- package/dist/session/jwt.js +25 -0
- package/dist/session/jwt.js.map +1 -0
- package/dist/session/stores.d.ts +19 -0
- package/dist/session/stores.d.ts.map +1 -0
- package/dist/session/stores.js +103 -0
- package/dist/session/stores.js.map +1 -0
- package/dist/session/types.d.ts +28 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/package.json +80 -30
- package/dist/core/axios.d.ts +0 -51
- package/dist/core/axios.js +0 -65
- package/dist/core/axios.observable.d.ts +0 -11
- package/dist/core/axios.observable.js +0 -58
- package/dist/core/base.provider.advanced.test.d.ts +0 -1
- package/dist/core/base.provider.advanced.test.js +0 -29
- package/dist/core/base.provider.d.ts +0 -15
- package/dist/core/base.provider.js +0 -13
- package/dist/core/base.provider.test.d.ts +0 -1
- package/dist/core/base.provider.test.js +0 -36
- package/dist/core/base.service.wrapper.advanced.test.d.ts +0 -1
- package/dist/core/base.service.wrapper.advanced.test.js +0 -39
- package/dist/core/base.service.wrapper.d.ts +0 -7
- package/dist/core/base.service.wrapper.js +0 -11
- package/dist/core/base.service.wrapper.test.d.ts +0 -1
- package/dist/core/base.service.wrapper.test.js +0 -25
- package/dist/core/rx.http.service.d.ts +0 -51
- package/dist/core/rx.http.service.js +0 -65
- package/dist/services/auth.service.d.ts +0 -65
- package/dist/services/auth.service.js +0 -197
- package/dist/services/auth.service.test.d.ts +0 -1
- package/dist/services/auth.service.test.js +0 -334
- package/dist/services/cache.service.d.ts +0 -31
- package/dist/services/cache.service.js +0 -77
- package/dist/services/cache.service.test.d.ts +0 -1
- package/dist/services/cache.service.test.js +0 -88
- package/dist/services/customer.service.d.ts +0 -211
- package/dist/services/customer.service.js +0 -128
- package/dist/services/customer.service.test.d.ts +0 -1
- package/dist/services/customer.service.test.js +0 -430
- package/dist/services/employee.service.d.ts +0 -73
- package/dist/services/employee.service.js +0 -74
- package/dist/services/employee.service.test.d.ts +0 -1
- package/dist/services/employee.service.test.js +0 -127
- package/dist/services/logger.service.d.ts +0 -31
- package/dist/services/logger.service.js +0 -93
- package/dist/services/logger.service.test.d.ts +0 -1
- package/dist/services/logger.service.test.js +0 -31
- package/dist/services/order.service.d.ts +0 -73
- package/dist/services/order.service.js +0 -97
- package/dist/services/order.service.test.d.ts +0 -1
- package/dist/services/order.service.test.js +0 -163
- package/dist/services/product.service.d.ts +0 -21
- package/dist/services/product.service.js +0 -42
- package/dist/services/product.service.test.d.ts +0 -1
- package/dist/services/product.service.test.js +0 -61
- package/dist/services/smess.service.d.ts +0 -36
- package/dist/services/smess.service.js +0 -128
- package/dist/services/smess.service.test.d.ts +0 -1
- package/dist/services/smess.service.test.js +0 -103
- package/dist/services/store.cart.service.d.ts +0 -158
- package/dist/services/store.cart.service.js +0 -177
- package/dist/services/store.cart.service.test.d.ts +0 -1
- package/dist/services/store.cart.service.test.js +0 -394
- package/dist/services/store.product.service.d.ts +0 -124
- package/dist/services/store.product.service.js +0 -102
- package/dist/services/store.product.service.test.d.ts +0 -1
- package/dist/services/store.product.service.test.js +0 -319
- package/dist/services/store.service.d.ts +0 -79
- package/dist/services/store.service.js +0 -235
- package/dist/services/store.service.test.d.ts +0 -1
- package/dist/services/store.service.test.js +0 -274
- package/dist/services/storefront.cart.service.d.ts +0 -73
- package/dist/services/storefront.cart.service.js +0 -167
- package/dist/services/storefront.cart.service.test.d.ts +0 -1
- package/dist/services/storefront.cart.service.test.js +0 -211
- package/dist/services/storefront.checkout.service.d.ts +0 -62
- package/dist/services/storefront.checkout.service.js +0 -75
- package/dist/services/storefront.checkout.service.test.d.ts +0 -1
- package/dist/services/storefront.checkout.service.test.js +0 -158
- package/dist/services/storefront.customer.metadata.service.d.ts +0 -91
- package/dist/services/storefront.customer.metadata.service.js +0 -225
- package/dist/services/storefront.customer.metadata.service.test.d.ts +0 -1
- package/dist/services/storefront.customer.metadata.service.test.js +0 -271
- package/dist/services/storefront.order.service.d.ts +0 -45
- package/dist/services/storefront.order.service.js +0 -99
- package/dist/services/storefront.order.service.test.d.ts +0 -1
- package/dist/services/storefront.order.service.test.js +0 -158
- package/dist/services/storefront.product.service.d.ts +0 -52
- package/dist/services/storefront.product.service.js +0 -75
- package/dist/services/storefront.product.service.test.d.ts +0 -1
- package/dist/services/storefront.product.service.test.js +0 -120
- package/dist/services/storefront.store.service.d.ts +0 -54
- package/dist/services/storefront.store.service.js +0 -142
- package/dist/services/storefront.store.service.test.d.ts +0 -1
- package/dist/services/storefront.store.service.test.js +0 -90
- package/dist/services/user.service.d.ts +0 -16
- package/dist/services/user.service.js +0 -37
- package/dist/services/user.service.test.d.ts +0 -1
- package/dist/services/user.service.test.js +0 -52
- package/dist/services/utils/withAuthReset.d.ts +0 -3
- package/dist/services/utils/withAuthReset.js +0 -8
- package/dist/src/core/axios.d.ts +0 -51
- package/dist/src/core/axios.js +0 -65
- package/dist/src/core/axios.observable.d.ts +0 -11
- package/dist/src/core/axios.observable.js +0 -58
- package/dist/src/core/base.provider.advanced.test.d.ts +0 -1
- package/dist/src/core/base.provider.advanced.test.js +0 -29
- package/dist/src/core/base.provider.d.ts +0 -15
- package/dist/src/core/base.provider.js +0 -13
- package/dist/src/core/base.provider.test.d.ts +0 -1
- package/dist/src/core/base.provider.test.js +0 -36
- package/dist/src/core/base.service.wrapper.advanced.test.d.ts +0 -1
- package/dist/src/core/base.service.wrapper.advanced.test.js +0 -39
- package/dist/src/core/base.service.wrapper.d.ts +0 -7
- package/dist/src/core/base.service.wrapper.js +0 -11
- package/dist/src/core/base.service.wrapper.test.d.ts +0 -1
- package/dist/src/core/base.service.wrapper.test.js +0 -25
- package/dist/src/core/rx.http.service.d.ts +0 -51
- package/dist/src/core/rx.http.service.js +0 -65
- package/dist/src/index.d.ts +0 -25
- package/dist/src/index.js +0 -29
- package/dist/src/services/auth.service.d.ts +0 -65
- package/dist/src/services/auth.service.js +0 -197
- package/dist/src/services/auth.service.test.d.ts +0 -1
- package/dist/src/services/auth.service.test.js +0 -334
- package/dist/src/services/cache.service.d.ts +0 -31
- package/dist/src/services/cache.service.js +0 -77
- package/dist/src/services/cache.service.test.d.ts +0 -1
- package/dist/src/services/cache.service.test.js +0 -88
- package/dist/src/services/customer.service.d.ts +0 -199
- package/dist/src/services/customer.service.js +0 -114
- package/dist/src/services/customer.service.test.d.ts +0 -1
- package/dist/src/services/customer.service.test.js +0 -430
- package/dist/src/services/employee.service.d.ts +0 -73
- package/dist/src/services/employee.service.js +0 -74
- package/dist/src/services/employee.service.test.d.ts +0 -1
- package/dist/src/services/employee.service.test.js +0 -127
- package/dist/src/services/logger.service.d.ts +0 -31
- package/dist/src/services/logger.service.js +0 -93
- package/dist/src/services/logger.service.test.d.ts +0 -1
- package/dist/src/services/logger.service.test.js +0 -31
- package/dist/src/services/order.service.d.ts +0 -73
- package/dist/src/services/order.service.js +0 -97
- package/dist/src/services/order.service.test.d.ts +0 -1
- package/dist/src/services/order.service.test.js +0 -163
- package/dist/src/services/product.service.d.ts +0 -21
- package/dist/src/services/product.service.js +0 -42
- package/dist/src/services/product.service.test.d.ts +0 -1
- package/dist/src/services/product.service.test.js +0 -61
- package/dist/src/services/smess.service.d.ts +0 -36
- package/dist/src/services/smess.service.js +0 -128
- package/dist/src/services/smess.service.test.d.ts +0 -1
- package/dist/src/services/smess.service.test.js +0 -103
- package/dist/src/services/store.cart.service.d.ts +0 -158
- package/dist/src/services/store.cart.service.js +0 -177
- package/dist/src/services/store.cart.service.test.d.ts +0 -1
- package/dist/src/services/store.cart.service.test.js +0 -394
- package/dist/src/services/store.product.service.d.ts +0 -124
- package/dist/src/services/store.product.service.js +0 -102
- package/dist/src/services/store.product.service.test.d.ts +0 -1
- package/dist/src/services/store.product.service.test.js +0 -319
- package/dist/src/services/store.service.d.ts +0 -79
- package/dist/src/services/store.service.js +0 -235
- package/dist/src/services/store.service.test.d.ts +0 -1
- package/dist/src/services/store.service.test.js +0 -274
- package/dist/src/services/storefront.cart.service.d.ts +0 -73
- package/dist/src/services/storefront.cart.service.js +0 -167
- package/dist/src/services/storefront.cart.service.test.d.ts +0 -1
- package/dist/src/services/storefront.cart.service.test.js +0 -211
- package/dist/src/services/storefront.checkout.service.d.ts +0 -62
- package/dist/src/services/storefront.checkout.service.js +0 -75
- package/dist/src/services/storefront.checkout.service.test.d.ts +0 -1
- package/dist/src/services/storefront.checkout.service.test.js +0 -158
- package/dist/src/services/storefront.customer.metadata.service.d.ts +0 -91
- package/dist/src/services/storefront.customer.metadata.service.js +0 -225
- package/dist/src/services/storefront.customer.metadata.service.test.d.ts +0 -1
- package/dist/src/services/storefront.customer.metadata.service.test.js +0 -271
- package/dist/src/services/storefront.order.service.d.ts +0 -45
- package/dist/src/services/storefront.order.service.js +0 -99
- package/dist/src/services/storefront.order.service.test.d.ts +0 -1
- package/dist/src/services/storefront.order.service.test.js +0 -158
- package/dist/src/services/storefront.product.service.d.ts +0 -52
- package/dist/src/services/storefront.product.service.js +0 -75
- package/dist/src/services/storefront.product.service.test.d.ts +0 -1
- package/dist/src/services/storefront.product.service.test.js +0 -120
- package/dist/src/services/storefront.store.service.d.ts +0 -52
- package/dist/src/services/storefront.store.service.js +0 -140
- package/dist/src/services/storefront.store.service.test.d.ts +0 -1
- package/dist/src/services/storefront.store.service.test.js +0 -90
- package/dist/src/services/user.service.d.ts +0 -16
- package/dist/src/services/user.service.js +0 -37
- package/dist/src/services/user.service.test.d.ts +0 -1
- package/dist/src/services/user.service.test.js +0 -52
- package/dist/src/services/utils/withAuthReset.d.ts +0 -3
- package/dist/src/services/utils/withAuthReset.js +0 -8
- package/dist/src/types/types.d.ts +0 -93
- package/dist/src/types/types.js +0 -82
- package/dist/src/types/types.test.d.ts +0 -1
- package/dist/src/types/types.test.js +0 -25
- package/dist/src/utils/cache-import.d.ts +0 -3
- package/dist/src/utils/cache-import.js +0 -2
- package/dist/src/utils/networking-import.d.ts +0 -4
- package/dist/src/utils/networking-import.js +0 -3
- package/dist/src/utils/rxjs-import.d.ts +0 -5
- package/dist/src/utils/rxjs-import.js +0 -5
- package/dist/types/types.d.ts +0 -96
- package/dist/types/types.js +0 -82
- package/dist/types/types.test.d.ts +0 -1
- package/dist/types/types.test.js +0 -25
- package/dist/utils/cache-import.d.ts +0 -3
- package/dist/utils/cache-import.js +0 -2
- package/dist/utils/networking-import.d.ts +0 -4
- package/dist/utils/networking-import.js +0 -3
- package/dist/utils/rxjs-import.d.ts +0 -5
- package/dist/utils/rxjs-import.js +0 -5
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { NetworkingUIEventWrapped, } from "../types/types";
|
|
2
|
-
import { Accept, SMESSHeader, SmessService } from "./smess.service";
|
|
3
|
-
import { from, of } from "rxjs";
|
|
4
|
-
import { map, switchMap, catchError } from "rxjs/operators";
|
|
5
|
-
import { GenericIndexedDBService } from "./cache.service";
|
|
6
|
-
export class StorefrontStoreProvider {
|
|
7
|
-
constructor(config, target) {
|
|
8
|
-
this.config = config;
|
|
9
|
-
this.target = target;
|
|
10
|
-
}
|
|
11
|
-
get baseURL() {
|
|
12
|
-
return this.config.version
|
|
13
|
-
? `${this.config.baseUrl}/${this.config.version}`
|
|
14
|
-
: this.config.baseUrl;
|
|
15
|
-
}
|
|
16
|
-
get path() {
|
|
17
|
-
switch (this.target) {
|
|
18
|
-
case "store-list":
|
|
19
|
-
return "/storefront/stores/list";
|
|
20
|
-
case "store-information":
|
|
21
|
-
return "/storefront/stores/${id}/information";
|
|
22
|
-
default:
|
|
23
|
-
return "/storefront/stores/list";
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
get method() {
|
|
27
|
-
return "GET";
|
|
28
|
-
}
|
|
29
|
-
get headers() {
|
|
30
|
-
let headers = SmessService.getHeaders(Accept.V1, null);
|
|
31
|
-
if (this.config.clientId) {
|
|
32
|
-
headers[SMESSHeader.ClientId] = this.config.clientId;
|
|
33
|
-
}
|
|
34
|
-
if (this.config.apiKey) {
|
|
35
|
-
headers[SMESSHeader.ApiKey] = this.config.apiKey;
|
|
36
|
-
}
|
|
37
|
-
return SmessService.filterHeaders(headers);
|
|
38
|
-
}
|
|
39
|
-
getPath(...queryParams) {
|
|
40
|
-
let definedPath = this.path;
|
|
41
|
-
const params = definedPath.match(/\$\{(.+?)\}/g);
|
|
42
|
-
params?.forEach((value, index) => {
|
|
43
|
-
definedPath = definedPath.replace(value, String(queryParams[index]));
|
|
44
|
-
});
|
|
45
|
-
return definedPath;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export class StorefrontStoreService {
|
|
49
|
-
constructor(config) {
|
|
50
|
-
this.config = config;
|
|
51
|
-
// Initialize cache services for different data types
|
|
52
|
-
this.cacheService = new GenericIndexedDBService("StorefrontStoreCache", "id, timestamp", (data) => data, (data) => data);
|
|
53
|
-
this.storeListCache = new GenericIndexedDBService("StorefrontStoreListCache", "timestamp", (data) => data, (data) => data);
|
|
54
|
-
}
|
|
55
|
-
provider(target) {
|
|
56
|
-
const targetWrapper = new StorefrontStoreProvider(this.config, target);
|
|
57
|
-
return new SmessService(targetWrapper);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* List all accessible stores with shipping rules
|
|
61
|
-
* GET /storefront/stores/list
|
|
62
|
-
*/
|
|
63
|
-
listStores() {
|
|
64
|
-
return from(this.storeListCache.getAll("storefront-store-list")).pipe(switchMap((cachedData) => {
|
|
65
|
-
if (cachedData &&
|
|
66
|
-
cachedData.length > 0 &&
|
|
67
|
-
this.isCacheValid(cachedData[0].timestamp)) {
|
|
68
|
-
return of(NetworkingUIEventWrapped.succeeded(cachedData[0].data));
|
|
69
|
-
}
|
|
70
|
-
return this.provider("store-list")
|
|
71
|
-
.request()
|
|
72
|
-
.pipe(map((response) => {
|
|
73
|
-
if (response.response) {
|
|
74
|
-
this.storeListCache.saveAll([
|
|
75
|
-
{
|
|
76
|
-
data: response.response,
|
|
77
|
-
timestamp: Date.now(),
|
|
78
|
-
},
|
|
79
|
-
], "storefront-store-list");
|
|
80
|
-
}
|
|
81
|
-
return response;
|
|
82
|
-
}), catchError((error) => {
|
|
83
|
-
if (cachedData && cachedData.length > 0) {
|
|
84
|
-
return of(NetworkingUIEventWrapped.succeeded(cachedData[0].data));
|
|
85
|
-
}
|
|
86
|
-
throw error;
|
|
87
|
-
}));
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get detailed store information by ID including shipping rules
|
|
92
|
-
* GET /storefront/stores/{id}/information
|
|
93
|
-
*/
|
|
94
|
-
getStoreInformation(id) {
|
|
95
|
-
return from(this.cacheService.getOne(String(id))).pipe(switchMap((cachedData) => {
|
|
96
|
-
if (cachedData && this.isCacheValid(cachedData.timestamp)) {
|
|
97
|
-
return of(NetworkingUIEventWrapped.succeeded(cachedData.data));
|
|
98
|
-
}
|
|
99
|
-
return this.provider("store-information")
|
|
100
|
-
.request(null, undefined, id)
|
|
101
|
-
.pipe(map((response) => {
|
|
102
|
-
if (response.response) {
|
|
103
|
-
this.cacheService.saveOne({
|
|
104
|
-
id,
|
|
105
|
-
data: response.response,
|
|
106
|
-
timestamp: Date.now(),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return response;
|
|
110
|
-
}), catchError((error) => {
|
|
111
|
-
if (cachedData) {
|
|
112
|
-
return of(NetworkingUIEventWrapped.succeeded(cachedData.data));
|
|
113
|
-
}
|
|
114
|
-
throw error;
|
|
115
|
-
}));
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Clear all cache
|
|
120
|
-
*/
|
|
121
|
-
clearCache() {
|
|
122
|
-
return Promise.all([
|
|
123
|
-
this.cacheService.clearAll(),
|
|
124
|
-
this.storeListCache.clearAll(),
|
|
125
|
-
]).then(() => { });
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Clear cache for a specific store
|
|
129
|
-
*/
|
|
130
|
-
clearStoreCache(id) {
|
|
131
|
-
return this.cacheService.delete(String(id));
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Check if cache is still valid (24 hours)
|
|
135
|
-
*/
|
|
136
|
-
isCacheValid(timestamp) {
|
|
137
|
-
const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24 hours
|
|
138
|
-
return Date.now() - timestamp < CACHE_DURATION;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { StorefrontStoreService, StorefrontStoreProvider, } from "./storefront.store.service";
|
|
2
|
-
import { NetworkingUIEventWrapped, AlertModel, } from "../types/types";
|
|
3
|
-
import { of } from "rxjs";
|
|
4
|
-
describe("StorefrontStoreService", () => {
|
|
5
|
-
const config = {
|
|
6
|
-
baseUrl: "https://api.example.com",
|
|
7
|
-
version: "api/v1",
|
|
8
|
-
isProd: false,
|
|
9
|
-
clientId: "test-client-id",
|
|
10
|
-
apiKey: "test-api-key",
|
|
11
|
-
};
|
|
12
|
-
let service;
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
service = new StorefrontStoreService(config);
|
|
15
|
-
});
|
|
16
|
-
describe("StorefrontStoreProvider", () => {
|
|
17
|
-
it("should generate correct path for store-list", () => {
|
|
18
|
-
const provider = new StorefrontStoreProvider(config, "store-list");
|
|
19
|
-
expect(provider.path).toBe("/storefront/stores/list");
|
|
20
|
-
expect(provider.method).toBe("GET");
|
|
21
|
-
});
|
|
22
|
-
it("should generate correct path for store-information", () => {
|
|
23
|
-
const provider = new StorefrontStoreProvider(config, "store-information");
|
|
24
|
-
expect(provider.path).toBe("/storefront/stores/${id}/information");
|
|
25
|
-
expect(provider.method).toBe("GET");
|
|
26
|
-
expect(provider.getPath(1)).toBe("/storefront/stores/1/information");
|
|
27
|
-
});
|
|
28
|
-
it("should include correct headers", () => {
|
|
29
|
-
const provider = new StorefrontStoreProvider(config, "store-list");
|
|
30
|
-
const headers = provider.headers;
|
|
31
|
-
expect(headers["X-Client-Id"]).toBe("test-client-id");
|
|
32
|
-
expect(headers["X-Api-Key"]).toBe("test-api-key");
|
|
33
|
-
expect(headers["Accept"]).toBe("application/json");
|
|
34
|
-
});
|
|
35
|
-
it("should generate correct baseURL with version", () => {
|
|
36
|
-
const provider = new StorefrontStoreProvider(config, "store-list");
|
|
37
|
-
expect(provider.baseURL).toBe("https://api.example.com/api/v1");
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe("listStores", () => {
|
|
41
|
-
it("should list stores successfully", async () => {
|
|
42
|
-
const response = {
|
|
43
|
-
data: { stores: [], total: 0 },
|
|
44
|
-
};
|
|
45
|
-
jest.spyOn(service, "provider").mockReturnValue({
|
|
46
|
-
request: () => of(NetworkingUIEventWrapped.succeeded(response)),
|
|
47
|
-
});
|
|
48
|
-
const result = await service.listStores().toPromise();
|
|
49
|
-
expect(result?.hasSuccess).toBe(true);
|
|
50
|
-
expect(result?.response).toEqual(response);
|
|
51
|
-
});
|
|
52
|
-
it("should handle list stores error", async () => {
|
|
53
|
-
jest.spyOn(service, "provider").mockReturnValue({
|
|
54
|
-
request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
|
|
55
|
-
});
|
|
56
|
-
const result = await service.listStores().toPromise();
|
|
57
|
-
expect(result?.hasFailed).toBe(true);
|
|
58
|
-
expect(result?.alertModel).toBeInstanceOf(AlertModel);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe("getStoreInformation", () => {
|
|
62
|
-
it("should get store information successfully", async () => {
|
|
63
|
-
const response = {
|
|
64
|
-
data: { id: 1, name: "Test Store" },
|
|
65
|
-
};
|
|
66
|
-
jest.spyOn(service, "provider").mockReturnValue({
|
|
67
|
-
request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.succeeded(response)),
|
|
68
|
-
});
|
|
69
|
-
const result = await service.getStoreInformation(1).toPromise();
|
|
70
|
-
expect(result?.hasSuccess).toBe(true);
|
|
71
|
-
expect(result?.response).toEqual(response);
|
|
72
|
-
});
|
|
73
|
-
it("should handle get store information error", async () => {
|
|
74
|
-
jest.spyOn(service, "provider").mockReturnValue({
|
|
75
|
-
request: (_payload, _mockResponse, id) => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
|
|
76
|
-
});
|
|
77
|
-
const result = await service.getStoreInformation(1).toPromise();
|
|
78
|
-
expect(result?.hasFailed).toBe(true);
|
|
79
|
-
expect(result?.alertModel).toBeInstanceOf(AlertModel);
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
describe("cache management", () => {
|
|
83
|
-
it("should clear all cache", async () => {
|
|
84
|
-
await expect(service.clearCache()).resolves.toBeUndefined();
|
|
85
|
-
});
|
|
86
|
-
it("should clear specific store cache", async () => {
|
|
87
|
-
await expect(service.clearStoreCache(1)).resolves.toBeUndefined();
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { BaseProvider } from "../core/base.provider";
|
|
2
|
-
import { BaseServiceWrapper } from "../core/base.service.wrapper";
|
|
3
|
-
import { NetworkingConfig } from "../types/types";
|
|
4
|
-
export interface User {
|
|
5
|
-
id: number;
|
|
6
|
-
name: string;
|
|
7
|
-
email: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class UserProvider extends BaseProvider {
|
|
10
|
-
constructor(config: NetworkingConfig, userId?: number);
|
|
11
|
-
}
|
|
12
|
-
export declare class UserService extends BaseServiceWrapper<UserProvider> {
|
|
13
|
-
constructor(config: NetworkingConfig, userId?: number);
|
|
14
|
-
fetchUserById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User>>;
|
|
15
|
-
fetchAllUsers(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User[]>>;
|
|
16
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { BaseProvider } from "../core/base.provider";
|
|
2
|
-
import { BaseServiceWrapper } from "../core/base.service.wrapper";
|
|
3
|
-
// UserProvider implements ProviderType for user endpoints
|
|
4
|
-
export class UserProvider extends BaseProvider {
|
|
5
|
-
constructor(config, userId) {
|
|
6
|
-
super({
|
|
7
|
-
config,
|
|
8
|
-
path: userId ? `/users/${userId}` : "/users",
|
|
9
|
-
method: "GET",
|
|
10
|
-
headers: {},
|
|
11
|
-
getPath: () => (userId ? `/users/${userId}` : "/users"),
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
// UserService provides high-level methods for user API
|
|
16
|
-
export class UserService extends BaseServiceWrapper {
|
|
17
|
-
constructor(config, userId) {
|
|
18
|
-
super(new UserProvider(config, userId));
|
|
19
|
-
}
|
|
20
|
-
// Fetch a user by ID
|
|
21
|
-
fetchUserById(id) {
|
|
22
|
-
this.provider = new UserProvider({ baseUrl: "https://jsonplaceholder.typicode.com", isProd: false }, id);
|
|
23
|
-
return this.request();
|
|
24
|
-
}
|
|
25
|
-
// Fetch all users
|
|
26
|
-
fetchAllUsers() {
|
|
27
|
-
this.provider = new UserProvider({
|
|
28
|
-
baseUrl: "https://jsonplaceholder.typicode.com",
|
|
29
|
-
isProd: false,
|
|
30
|
-
});
|
|
31
|
-
return this.request();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
// Example usage:
|
|
35
|
-
// setNetworkingConfig({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false });
|
|
36
|
-
// const userService = new UserService();
|
|
37
|
-
// userService.fetchUserById(1).subscribe(result => console.log(result));
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { UserService } from "./user.service";
|
|
2
|
-
import { NetworkingUIEventWrapped } from "../types/types";
|
|
3
|
-
import { of, throwError } from "rxjs";
|
|
4
|
-
import { BaseServiceWrapper } from "../core/base.service.wrapper";
|
|
5
|
-
describe("UserService", () => {
|
|
6
|
-
const config = {
|
|
7
|
-
baseUrl: "https://jsonplaceholder.typicode.com",
|
|
8
|
-
isProd: false,
|
|
9
|
-
clientId: "test-client",
|
|
10
|
-
apiKey: "test-key",
|
|
11
|
-
};
|
|
12
|
-
const user = { id: 1, name: "Test", email: "test@example.com" };
|
|
13
|
-
let requestSpy;
|
|
14
|
-
beforeEach(() => {
|
|
15
|
-
requestSpy = jest
|
|
16
|
-
.spyOn(BaseServiceWrapper.prototype, "request")
|
|
17
|
-
.mockImplementation(() => of(NetworkingUIEventWrapped.succeeded(user)));
|
|
18
|
-
});
|
|
19
|
-
afterEach(() => {
|
|
20
|
-
requestSpy.mockRestore();
|
|
21
|
-
});
|
|
22
|
-
it("fetchUserById should return user (success)", (done) => {
|
|
23
|
-
const service = new UserService(config);
|
|
24
|
-
service
|
|
25
|
-
.fetchUserById(1)
|
|
26
|
-
.subscribe((result) => {
|
|
27
|
-
expect(result.response).toEqual(user);
|
|
28
|
-
done();
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
it("fetchAllUsers should return users (success)", (done) => {
|
|
32
|
-
const service = new UserService(config);
|
|
33
|
-
service
|
|
34
|
-
.fetchAllUsers()
|
|
35
|
-
.subscribe((result) => {
|
|
36
|
-
expect(result.response).toEqual(user);
|
|
37
|
-
done();
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
it("request should handle error", (done) => {
|
|
41
|
-
requestSpy.mockImplementationOnce(() => throwError(() => new Error("Test error")));
|
|
42
|
-
const service = new UserService(config);
|
|
43
|
-
// Simulate error by calling a method that uses request
|
|
44
|
-
service.fetchUserById(1).subscribe({
|
|
45
|
-
error: (err) => {
|
|
46
|
-
expect(err).toBeInstanceOf(Error);
|
|
47
|
-
expect(err.message).toBe("Test error");
|
|
48
|
-
done();
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable } from "rxjs";
|
|
2
|
-
import { NetworkingUIEventWrapped } from "../../types/types";
|
|
3
|
-
export declare const withAuthReset: <T>(source$: Observable<NetworkingUIEventWrapped<T>>, $authToken: BehaviorSubject<string | null>) => Observable<NetworkingUIEventWrapped<T>>;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
export type CallbackHandler = () => void;
|
|
2
|
-
interface AlertModelable {
|
|
3
|
-
isUnauthenticated: boolean;
|
|
4
|
-
isNetworkingError: boolean;
|
|
5
|
-
}
|
|
6
|
-
interface AlertButtonModelable {
|
|
7
|
-
title: string;
|
|
8
|
-
handler?: CallbackHandler;
|
|
9
|
-
}
|
|
10
|
-
export declare class AlertButtonModel implements AlertButtonModelable {
|
|
11
|
-
title: string;
|
|
12
|
-
handler?: CallbackHandler | undefined;
|
|
13
|
-
constructor(title: string, handler?: CallbackHandler | undefined);
|
|
14
|
-
static buttonYes(handler?: CallbackHandler): AlertButtonModelable;
|
|
15
|
-
static buttonNo(handler?: CallbackHandler): AlertButtonModelable;
|
|
16
|
-
}
|
|
17
|
-
export declare class AlertModel implements AlertModelable {
|
|
18
|
-
message: string;
|
|
19
|
-
httpErrorCode: number;
|
|
20
|
-
isDisplayable: boolean;
|
|
21
|
-
title?: string | undefined;
|
|
22
|
-
data?: unknown | undefined;
|
|
23
|
-
buttons?: AlertButtonModelable[] | undefined;
|
|
24
|
-
constructor(message: string, httpErrorCode: number, isDisplayable?: boolean, title?: string | undefined, data?: unknown | undefined, buttons?: AlertButtonModelable[] | undefined);
|
|
25
|
-
get isUnauthenticated(): boolean;
|
|
26
|
-
get isNetworkingError(): boolean;
|
|
27
|
-
static default(): AlertModel;
|
|
28
|
-
}
|
|
29
|
-
export declare class ValidationErrorMessage {
|
|
30
|
-
message: string;
|
|
31
|
-
constructor(message: string);
|
|
32
|
-
}
|
|
33
|
-
export type NetworkingFailed = {
|
|
34
|
-
alertModel: AlertModel;
|
|
35
|
-
};
|
|
36
|
-
export type NetworkingSucceeded<ResponseType> = {
|
|
37
|
-
responseBody: ResponseType;
|
|
38
|
-
};
|
|
39
|
-
export declare enum NetworkingUIEvent {
|
|
40
|
-
waiting = "waiting",
|
|
41
|
-
succeeded = "succeeded",
|
|
42
|
-
failed = "failed"
|
|
43
|
-
}
|
|
44
|
-
export declare class NetworkingUIEventWrapped<JSONResponse> {
|
|
45
|
-
private event;
|
|
46
|
-
private succeeded?;
|
|
47
|
-
private failed?;
|
|
48
|
-
constructor(event: NetworkingUIEvent, succeeded?: NetworkingSucceeded<JSONResponse> | undefined, failed?: NetworkingFailed | undefined);
|
|
49
|
-
get response(): JSONResponse | null;
|
|
50
|
-
get alertModel(): AlertModel | null;
|
|
51
|
-
get isWaiting(): boolean;
|
|
52
|
-
get hasSuccess(): boolean;
|
|
53
|
-
get hasFailed(): boolean;
|
|
54
|
-
get isUnauthenticated(): boolean;
|
|
55
|
-
static waiting<JSONResponse>(): NetworkingUIEventWrapped<JSONResponse>;
|
|
56
|
-
static succeeded<JSONResponse>(data: JSONResponse): NetworkingUIEventWrapped<JSONResponse>;
|
|
57
|
-
static failed<JSONResponse>(alertModel: AlertModel): NetworkingUIEventWrapped<JSONResponse>;
|
|
58
|
-
}
|
|
59
|
-
export interface ProviderType {
|
|
60
|
-
baseURL: string;
|
|
61
|
-
path: string;
|
|
62
|
-
method: string;
|
|
63
|
-
headers: Record<string, string | undefined>;
|
|
64
|
-
getPath(...queryParams: unknown[]): string;
|
|
65
|
-
}
|
|
66
|
-
export interface HeaderType {
|
|
67
|
-
shouldAddEncryptionHeader?: boolean;
|
|
68
|
-
shouldAddClientIdHeader?: boolean;
|
|
69
|
-
}
|
|
70
|
-
export interface HttpResponse {
|
|
71
|
-
data: unknown;
|
|
72
|
-
}
|
|
73
|
-
export interface ServerValidationErrorMessage {
|
|
74
|
-
message: string;
|
|
75
|
-
parameters?: {
|
|
76
|
-
error_code?: string;
|
|
77
|
-
field?: string;
|
|
78
|
-
[key: string]: unknown;
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
export interface ServerErrorResponse {
|
|
82
|
-
errors?: {
|
|
83
|
-
[field: string]: ServerValidationErrorMessage[];
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
export interface NetworkingConfig {
|
|
87
|
-
baseUrl: string;
|
|
88
|
-
version?: string;
|
|
89
|
-
isProd: boolean;
|
|
90
|
-
clientId?: string;
|
|
91
|
-
apiKey?: string;
|
|
92
|
-
}
|
|
93
|
-
export {};
|
package/dist/src/types/types.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
export class AlertButtonModel {
|
|
2
|
-
constructor(title, handler) {
|
|
3
|
-
this.title = title;
|
|
4
|
-
this.handler = handler;
|
|
5
|
-
}
|
|
6
|
-
static buttonYes(handler) {
|
|
7
|
-
return new AlertButtonModel("Yes", handler);
|
|
8
|
-
}
|
|
9
|
-
static buttonNo(handler) {
|
|
10
|
-
return new AlertButtonModel("No", handler);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class AlertModel {
|
|
14
|
-
constructor(message, httpErrorCode, isDisplayable = false, title, data, buttons) {
|
|
15
|
-
this.message = message;
|
|
16
|
-
this.httpErrorCode = httpErrorCode;
|
|
17
|
-
this.isDisplayable = isDisplayable;
|
|
18
|
-
this.title = title;
|
|
19
|
-
this.data = data;
|
|
20
|
-
this.buttons = buttons;
|
|
21
|
-
}
|
|
22
|
-
get isUnauthenticated() {
|
|
23
|
-
return this.httpErrorCode == 401;
|
|
24
|
-
}
|
|
25
|
-
get isNetworkingError() {
|
|
26
|
-
return this.httpErrorCode == 0;
|
|
27
|
-
}
|
|
28
|
-
static default() {
|
|
29
|
-
return new AlertModel("Generic Error", 0, true, "", null, [
|
|
30
|
-
AlertButtonModel.buttonYes(),
|
|
31
|
-
]);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export class ValidationErrorMessage {
|
|
35
|
-
constructor(message) {
|
|
36
|
-
this.message = message;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export var NetworkingUIEvent;
|
|
40
|
-
(function (NetworkingUIEvent) {
|
|
41
|
-
NetworkingUIEvent["waiting"] = "waiting";
|
|
42
|
-
NetworkingUIEvent["succeeded"] = "succeeded";
|
|
43
|
-
NetworkingUIEvent["failed"] = "failed";
|
|
44
|
-
})(NetworkingUIEvent || (NetworkingUIEvent = {}));
|
|
45
|
-
export class NetworkingUIEventWrapped {
|
|
46
|
-
constructor(event, succeeded, failed) {
|
|
47
|
-
this.event = event;
|
|
48
|
-
this.succeeded = succeeded;
|
|
49
|
-
this.failed = failed;
|
|
50
|
-
}
|
|
51
|
-
get response() {
|
|
52
|
-
return this.succeeded ? this.succeeded.responseBody : null;
|
|
53
|
-
}
|
|
54
|
-
get alertModel() {
|
|
55
|
-
return this.failed ? this.failed.alertModel : null;
|
|
56
|
-
}
|
|
57
|
-
get isWaiting() {
|
|
58
|
-
return this.event == NetworkingUIEvent.waiting;
|
|
59
|
-
}
|
|
60
|
-
get hasSuccess() {
|
|
61
|
-
return this.event == NetworkingUIEvent.succeeded;
|
|
62
|
-
}
|
|
63
|
-
get hasFailed() {
|
|
64
|
-
return this.event == NetworkingUIEvent.failed;
|
|
65
|
-
}
|
|
66
|
-
get isUnauthenticated() {
|
|
67
|
-
return this.alertModel ? this.alertModel.isUnauthenticated : false;
|
|
68
|
-
}
|
|
69
|
-
static waiting() {
|
|
70
|
-
return new NetworkingUIEventWrapped(NetworkingUIEvent.waiting);
|
|
71
|
-
}
|
|
72
|
-
static succeeded(data) {
|
|
73
|
-
return new NetworkingUIEventWrapped(NetworkingUIEvent.succeeded, {
|
|
74
|
-
responseBody: data,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
static failed(alertModel) {
|
|
78
|
-
return new NetworkingUIEventWrapped(NetworkingUIEvent.failed, undefined, {
|
|
79
|
-
alertModel: alertModel,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { NetworkingUIEventWrapped, AlertModel } from "./types";
|
|
2
|
-
describe("NetworkingUIEventWrapped", () => {
|
|
3
|
-
it("should wrap succeeded response", () => {
|
|
4
|
-
const wrap = NetworkingUIEventWrapped.succeeded({ foo: "bar" });
|
|
5
|
-
expect(wrap.response).toEqual({ foo: "bar" });
|
|
6
|
-
expect(wrap.hasSuccess).toBe(true);
|
|
7
|
-
expect(wrap.hasFailed).toBe(false);
|
|
8
|
-
expect(wrap.isWaiting).toBe(false);
|
|
9
|
-
});
|
|
10
|
-
it("should wrap failed response and set alertModel", () => {
|
|
11
|
-
const alert = new AlertModel("err", 500, true, "Error", { detail: "fail" });
|
|
12
|
-
const wrap = NetworkingUIEventWrapped.failed(alert);
|
|
13
|
-
expect(wrap.response).toBeNull();
|
|
14
|
-
expect(wrap.hasSuccess).toBe(false);
|
|
15
|
-
expect(wrap.hasFailed).toBe(true);
|
|
16
|
-
expect(wrap.isWaiting).toBe(false);
|
|
17
|
-
expect(wrap.alertModel).toBe(alert);
|
|
18
|
-
});
|
|
19
|
-
it("should wrap waiting state", () => {
|
|
20
|
-
const wrap = NetworkingUIEventWrapped.waiting();
|
|
21
|
-
expect(wrap.isWaiting).toBe(true);
|
|
22
|
-
expect(wrap.hasSuccess).toBe(false);
|
|
23
|
-
expect(wrap.hasFailed).toBe(false);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable, Subject, Subscription, Subscriber, catchError, combineLatest, concatMap, distinctUntilChanged, filter, firstValueFrom, from, fromEvent, merge, NEVER, interval, map, mergeMap, of, pipe, shareReplay, startWith, tap, timeout, retry, throwError, combineLatestWith, debounceTime, delay, takeUntil } from "rxjs";
|
|
2
|
-
export { Observable, Subject, BehaviorSubject, Subscription, Subscriber };
|
|
3
|
-
export { startWith, firstValueFrom, from, fromEvent, tap, pipe, distinctUntilChanged, of, mergeMap, interval, map, concatMap, combineLatest, merge, combineLatestWith, debounceTime, delay, timeout, retry, takeUntil, NEVER, };
|
|
4
|
-
export { shareReplay, filter };
|
|
5
|
-
export { catchError, throwError };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable, Subject, Subscription, Subscriber, catchError, combineLatest, concatMap, distinctUntilChanged, filter, firstValueFrom, from, fromEvent, merge, NEVER, interval, map, mergeMap, of, pipe, shareReplay, startWith, tap, timeout, retry, throwError, combineLatestWith, debounceTime, delay, takeUntil, } from "rxjs";
|
|
2
|
-
export { Observable, Subject, BehaviorSubject, Subscription, Subscriber };
|
|
3
|
-
export { startWith, firstValueFrom, from, fromEvent, tap, pipe, distinctUntilChanged, of, mergeMap, interval, map, concatMap, combineLatest, merge, combineLatestWith, debounceTime, delay, timeout, retry, takeUntil, NEVER, };
|
|
4
|
-
export { shareReplay, filter };
|
|
5
|
-
export { catchError, throwError };
|