@smess/networking 1.0.24 → 1.0.26

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.
Files changed (90) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/dist/services/customer.service.d.ts +29 -1
  4. package/dist/services/customer.service.js +35 -0
  5. package/dist/services/customer.service.test.js +174 -0
  6. package/dist/{src/services → services}/employee.service.js +4 -3
  7. package/dist/{src/services → services}/employee.service.test.js +13 -6
  8. package/dist/services/utils/withAuthReset.d.ts +3 -0
  9. package/dist/services/utils/withAuthReset.js +8 -0
  10. package/package.json +1 -1
  11. package/dist/scripts/dev-test.d.ts +0 -1
  12. package/dist/scripts/dev-test.js +0 -803
  13. package/dist/scripts/real-test.d.ts +0 -1
  14. package/dist/scripts/real-test.js +0 -341
  15. package/dist/src/core/axios.d.ts +0 -51
  16. package/dist/src/core/axios.js +0 -65
  17. package/dist/src/core/axios.observable.d.ts +0 -11
  18. package/dist/src/core/axios.observable.js +0 -58
  19. package/dist/src/core/base.provider.advanced.test.d.ts +0 -1
  20. package/dist/src/core/base.provider.advanced.test.js +0 -29
  21. package/dist/src/core/base.provider.d.ts +0 -15
  22. package/dist/src/core/base.provider.js +0 -13
  23. package/dist/src/core/base.provider.test.d.ts +0 -1
  24. package/dist/src/core/base.provider.test.js +0 -36
  25. package/dist/src/core/base.service.wrapper.advanced.test.d.ts +0 -1
  26. package/dist/src/core/base.service.wrapper.advanced.test.js +0 -39
  27. package/dist/src/core/base.service.wrapper.d.ts +0 -7
  28. package/dist/src/core/base.service.wrapper.js +0 -11
  29. package/dist/src/core/base.service.wrapper.test.d.ts +0 -1
  30. package/dist/src/core/base.service.wrapper.test.js +0 -25
  31. package/dist/src/core/rx.http.service.d.ts +0 -51
  32. package/dist/src/core/rx.http.service.js +0 -65
  33. package/dist/src/index.d.ts +0 -17
  34. package/dist/src/index.js +0 -21
  35. package/dist/src/services/auth.service.d.ts +0 -65
  36. package/dist/src/services/auth.service.js +0 -197
  37. package/dist/src/services/auth.service.test.d.ts +0 -1
  38. package/dist/src/services/auth.service.test.js +0 -334
  39. package/dist/src/services/cache.service.d.ts +0 -31
  40. package/dist/src/services/cache.service.js +0 -77
  41. package/dist/src/services/cache.service.test.d.ts +0 -1
  42. package/dist/src/services/cache.service.test.js +0 -88
  43. package/dist/src/services/customer.service.d.ts +0 -71
  44. package/dist/src/services/customer.service.js +0 -114
  45. package/dist/src/services/customer.service.test.d.ts +0 -1
  46. package/dist/src/services/customer.service.test.js +0 -274
  47. package/dist/src/services/logger.service.d.ts +0 -31
  48. package/dist/src/services/logger.service.js +0 -93
  49. package/dist/src/services/logger.service.test.d.ts +0 -1
  50. package/dist/src/services/logger.service.test.js +0 -31
  51. package/dist/src/services/order.service.d.ts +0 -73
  52. package/dist/src/services/order.service.js +0 -97
  53. package/dist/src/services/order.service.test.d.ts +0 -1
  54. package/dist/src/services/order.service.test.js +0 -163
  55. package/dist/src/services/product.service.d.ts +0 -21
  56. package/dist/src/services/product.service.js +0 -42
  57. package/dist/src/services/product.service.test.d.ts +0 -1
  58. package/dist/src/services/product.service.test.js +0 -61
  59. package/dist/src/services/smess.service.d.ts +0 -36
  60. package/dist/src/services/smess.service.js +0 -128
  61. package/dist/src/services/smess.service.test.d.ts +0 -1
  62. package/dist/src/services/smess.service.test.js +0 -103
  63. package/dist/src/services/store.cart.service.d.ts +0 -158
  64. package/dist/src/services/store.cart.service.js +0 -177
  65. package/dist/src/services/store.cart.service.test.d.ts +0 -1
  66. package/dist/src/services/store.cart.service.test.js +0 -394
  67. package/dist/src/services/store.product.service.d.ts +0 -123
  68. package/dist/src/services/store.product.service.js +0 -102
  69. package/dist/src/services/store.product.service.test.d.ts +0 -1
  70. package/dist/src/services/store.product.service.test.js +0 -319
  71. package/dist/src/services/store.service.d.ts +0 -79
  72. package/dist/src/services/store.service.js +0 -235
  73. package/dist/src/services/store.service.test.d.ts +0 -1
  74. package/dist/src/services/store.service.test.js +0 -274
  75. package/dist/src/services/user.service.d.ts +0 -16
  76. package/dist/src/services/user.service.js +0 -37
  77. package/dist/src/services/user.service.test.d.ts +0 -1
  78. package/dist/src/services/user.service.test.js +0 -52
  79. package/dist/src/types/types.d.ts +0 -93
  80. package/dist/src/types/types.js +0 -82
  81. package/dist/src/types/types.test.d.ts +0 -1
  82. package/dist/src/types/types.test.js +0 -25
  83. package/dist/src/utils/cache-import.d.ts +0 -3
  84. package/dist/src/utils/cache-import.js +0 -2
  85. package/dist/src/utils/networking-import.d.ts +0 -4
  86. package/dist/src/utils/networking-import.js +0 -3
  87. package/dist/src/utils/rxjs-import.d.ts +0 -5
  88. package/dist/src/utils/rxjs-import.js +0 -5
  89. /package/dist/{src/services → services}/employee.service.d.ts +0 -0
  90. /package/dist/{src/services → services}/employee.service.test.d.ts +0 -0
@@ -1,274 +0,0 @@
1
- import "fake-indexeddb/auto";
2
- import { StoreService, } from "./store.service";
3
- import { NetworkingUIEventWrapped, AlertModel, } from "../types/types";
4
- import { of } from "rxjs";
5
- describe("StoreService", () => {
6
- const config = {
7
- baseUrl: "https://api.example.com",
8
- isProd: false,
9
- clientId: "test-client-id",
10
- apiKey: "test-api-key",
11
- };
12
- let service;
13
- beforeEach(() => {
14
- service = new StoreService(config);
15
- });
16
- afterEach(async () => {
17
- await service.clearCache();
18
- });
19
- it("should create service instance", () => {
20
- expect(service).toBeDefined();
21
- });
22
- it("should get store from network when no cache", async () => {
23
- const response = { data: { id: "1", name: "Store" } };
24
- const mockProvider = {
25
- request: jest
26
- .fn()
27
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
28
- };
29
- jest
30
- .spyOn(service, "provider")
31
- .mockReturnValue(mockProvider);
32
- const result = await service.get("1").toPromise();
33
- expect(result?.hasSuccess).toBe(true);
34
- expect(result?.response).toEqual(response);
35
- });
36
- it("should get store from cache when available", async () => {
37
- const response = { data: { id: "1", name: "Store" } };
38
- // First call to populate cache
39
- const mockProvider1 = {
40
- request: jest
41
- .fn()
42
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
43
- };
44
- jest
45
- .spyOn(service, "provider")
46
- .mockReturnValue(mockProvider1);
47
- await service.get("1").toPromise();
48
- // Second call should use cache (even if network fails)
49
- const mockProvider2 = {
50
- request: jest
51
- .fn()
52
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
53
- };
54
- jest
55
- .spyOn(service, "provider")
56
- .mockReturnValue(mockProvider2);
57
- const result = await service.get("1").toPromise();
58
- expect(result?.hasSuccess).toBe(true);
59
- expect(result?.response).toEqual(response);
60
- });
61
- it("should handle network error when no cache", async () => {
62
- const mockProvider = {
63
- request: jest
64
- .fn()
65
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
66
- };
67
- jest
68
- .spyOn(service, "provider")
69
- .mockReturnValue(mockProvider);
70
- const result = await service.get("1").toPromise();
71
- expect(result?.hasFailed).toBe(true);
72
- expect(result?.alertModel).toBeInstanceOf(AlertModel);
73
- });
74
- it("should get store list from network when no cache", async () => {
75
- const response = { data: [{ id: "1", name: "Store" }] };
76
- const mockProvider = {
77
- request: jest
78
- .fn()
79
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
80
- };
81
- jest
82
- .spyOn(service, "provider")
83
- .mockReturnValue(mockProvider);
84
- const result = await service.list().toPromise();
85
- expect(result?.hasSuccess).toBe(true);
86
- expect(result?.response).toEqual(response);
87
- });
88
- it("should get store list from cache when available", async () => {
89
- const response = { data: [{ id: "1", name: "Store" }] };
90
- // First call to populate cache
91
- const mockProvider1 = {
92
- request: jest
93
- .fn()
94
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
95
- };
96
- jest
97
- .spyOn(service, "provider")
98
- .mockReturnValue(mockProvider1);
99
- await service.list().toPromise();
100
- // Second call should use cache
101
- const mockProvider2 = {
102
- request: jest
103
- .fn()
104
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
105
- };
106
- jest
107
- .spyOn(service, "provider")
108
- .mockReturnValue(mockProvider2);
109
- const result = await service.list().toPromise();
110
- expect(result?.hasSuccess).toBe(true);
111
- expect(result?.response).toEqual(response);
112
- });
113
- it("should get product category list from network when no cache", async () => {
114
- const response = { data: [{ id: "cat1", name: "Category" }] };
115
- const mockProvider = {
116
- request: jest
117
- .fn()
118
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
119
- };
120
- jest
121
- .spyOn(service, "provider")
122
- .mockReturnValue(mockProvider);
123
- const result = await service.productCategoryList().toPromise();
124
- expect(result?.hasSuccess).toBe(true);
125
- expect(result?.response).toEqual(response);
126
- });
127
- it("should get product category list from cache when available", async () => {
128
- const response = { data: [{ id: "cat1", name: "Category" }] };
129
- // First call to populate cache
130
- const mockProvider1 = {
131
- request: jest
132
- .fn()
133
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
134
- };
135
- jest
136
- .spyOn(service, "provider")
137
- .mockReturnValue(mockProvider1);
138
- await service.productCategoryList().toPromise();
139
- // Second call should use cache
140
- const mockProvider2 = {
141
- request: jest
142
- .fn()
143
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
144
- };
145
- jest
146
- .spyOn(service, "provider")
147
- .mockReturnValue(mockProvider2);
148
- const result = await service.productCategoryList().toPromise();
149
- expect(result?.hasSuccess).toBe(true);
150
- expect(result?.response).toEqual(response);
151
- });
152
- it("should get product collection from network when no cache", async () => {
153
- const response = { data: [{ id: "prod1", name: "Product" }] };
154
- const payload = { page: 1, per_page: 10 };
155
- const mockProvider = {
156
- request: jest
157
- .fn()
158
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
159
- };
160
- jest
161
- .spyOn(service, "provider")
162
- .mockReturnValue(mockProvider);
163
- const result = await service.productCollection("1", payload).toPromise();
164
- expect(result?.hasSuccess).toBe(true);
165
- expect(result?.response).toEqual(response);
166
- });
167
- it("should get product collection from cache when available", async () => {
168
- const response = { data: [{ id: "prod1", name: "Product" }] };
169
- const payload = { page: 1, per_page: 10 };
170
- // First call to populate cache
171
- const mockProvider1 = {
172
- request: jest
173
- .fn()
174
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
175
- };
176
- jest
177
- .spyOn(service, "provider")
178
- .mockReturnValue(mockProvider1);
179
- await service.productCollection("1", payload).toPromise();
180
- // Second call should use cache
181
- const mockProvider2 = {
182
- request: jest
183
- .fn()
184
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
185
- };
186
- jest
187
- .spyOn(service, "provider")
188
- .mockReturnValue(mockProvider2);
189
- const result = await service.productCollection("1", payload).toPromise();
190
- expect(result?.hasSuccess).toBe(true);
191
- expect(result?.response).toEqual(response);
192
- });
193
- it("should get featured product list from network when no cache", async () => {
194
- const response = {
195
- data: [{ id: "feat1", name: "Featured" }],
196
- };
197
- const mockProvider = {
198
- request: jest
199
- .fn()
200
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
201
- };
202
- jest
203
- .spyOn(service, "provider")
204
- .mockReturnValue(mockProvider);
205
- const result = await service.featuredProductList("1").toPromise();
206
- expect(result?.hasSuccess).toBe(true);
207
- expect(result?.response).toEqual(response);
208
- });
209
- it("should get featured product list from cache when available", async () => {
210
- const response = {
211
- data: [{ id: "feat1", name: "Featured" }],
212
- };
213
- // First call to populate cache
214
- const mockProvider1 = {
215
- request: jest
216
- .fn()
217
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
218
- };
219
- jest
220
- .spyOn(service, "provider")
221
- .mockReturnValue(mockProvider1);
222
- await service.featuredProductList("1").toPromise();
223
- // Second call should use cache
224
- const mockProvider2 = {
225
- request: jest
226
- .fn()
227
- .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
228
- };
229
- jest
230
- .spyOn(service, "provider")
231
- .mockReturnValue(mockProvider2);
232
- const result = await service.featuredProductList("1").toPromise();
233
- expect(result?.hasSuccess).toBe(true);
234
- expect(result?.response).toEqual(response);
235
- });
236
- it("should clear cache successfully", async () => {
237
- const response = { data: { id: "1", name: "Store" } };
238
- const mockProvider = {
239
- request: jest
240
- .fn()
241
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
242
- };
243
- jest
244
- .spyOn(service, "provider")
245
- .mockReturnValue(mockProvider);
246
- // Populate cache
247
- await service.get("1").toPromise();
248
- // Clear cache
249
- await service.clearCache();
250
- // Should call network again after cache clear
251
- const result = await service.get("1").toPromise();
252
- expect(result?.hasSuccess).toBe(true);
253
- expect(mockProvider.request).toHaveBeenCalledTimes(2); // Once before clear, once after
254
- });
255
- it("should clear specific store cache", async () => {
256
- const response = { data: { id: "1", name: "Store" } };
257
- const mockProvider = {
258
- request: jest
259
- .fn()
260
- .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
261
- };
262
- jest
263
- .spyOn(service, "provider")
264
- .mockReturnValue(mockProvider);
265
- // Populate cache for store '1'
266
- await service.get("1").toPromise();
267
- // Clear specific store cache
268
- await service.clearStoreCache("1");
269
- // Should call network again after cache clear
270
- const result = await service.get("1").toPromise();
271
- expect(result?.hasSuccess).toBe(true);
272
- expect(mockProvider.request).toHaveBeenCalledTimes(2);
273
- });
274
- });
@@ -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,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 {};
@@ -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,3 +0,0 @@
1
- import Dexie from "dexie";
2
- export { Dexie };
3
- export type Table<T> = Dexie.Table<T, string>;
@@ -1,2 +0,0 @@
1
- import Dexie from "dexie";
2
- export { Dexie };
@@ -1,4 +0,0 @@
1
- export * from "axios";
2
- import axios, { HttpStatusCode } from "axios";
3
- export { axios, HttpStatusCode };
4
- export type { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig, AxiosRequestConfig, } from "axios";
@@ -1,3 +0,0 @@
1
- export * from "axios";
2
- import axios, { HttpStatusCode } from "axios";
3
- export { axios, HttpStatusCode };
@@ -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 };