@smess/networking 1.0.10 → 1.0.13

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 (54) hide show
  1. package/README.md +26 -20
  2. package/dist/core/axios.d.ts +3 -3
  3. package/dist/core/axios.js +2 -2
  4. package/dist/core/axios.observable.d.ts +3 -3
  5. package/dist/core/axios.observable.js +7 -7
  6. package/dist/core/base.provider.advanced.test.js +15 -15
  7. package/dist/core/base.provider.d.ts +1 -1
  8. package/dist/core/base.provider.js +2 -2
  9. package/dist/core/base.provider.test.js +22 -18
  10. package/dist/core/base.service.wrapper.advanced.test.js +16 -13
  11. package/dist/core/base.service.wrapper.d.ts +2 -2
  12. package/dist/core/base.service.wrapper.js +1 -1
  13. package/dist/core/base.service.wrapper.test.js +14 -14
  14. package/dist/core/rx.http.service.d.ts +3 -3
  15. package/dist/core/rx.http.service.js +2 -2
  16. package/dist/index.d.ts +13 -13
  17. package/dist/index.js +15 -15
  18. package/dist/services/auth.service.d.ts +6 -5
  19. package/dist/services/auth.service.js +50 -28
  20. package/dist/services/auth.service.test.js +67 -51
  21. package/dist/services/cache.service.d.ts +1 -1
  22. package/dist/services/cache.service.js +7 -7
  23. package/dist/services/cache.service.test.d.ts +1 -1
  24. package/dist/services/cache.service.test.js +37 -37
  25. package/dist/services/customer.service.d.ts +4 -4
  26. package/dist/services/customer.service.js +19 -17
  27. package/dist/services/customer.service.test.js +38 -34
  28. package/dist/services/logger.service.js +11 -11
  29. package/dist/services/logger.service.test.js +12 -12
  30. package/dist/services/order.service.d.ts +16 -4
  31. package/dist/services/order.service.js +38 -30
  32. package/dist/services/order.service.test.js +75 -47
  33. package/dist/services/product.service.d.ts +4 -4
  34. package/dist/services/product.service.js +8 -8
  35. package/dist/services/product.service.test.js +27 -19
  36. package/dist/services/smess.service.d.ts +2 -2
  37. package/dist/services/smess.service.js +19 -19
  38. package/dist/services/smess.service.test.js +36 -32
  39. package/dist/services/store.service.d.ts +4 -4
  40. package/dist/services/store.service.js +70 -50
  41. package/dist/services/store.service.test.d.ts +1 -1
  42. package/dist/services/store.service.test.js +161 -85
  43. package/dist/services/user.service.d.ts +3 -3
  44. package/dist/services/user.service.js +11 -8
  45. package/dist/services/user.service.test.js +23 -17
  46. package/dist/types/types.js +3 -3
  47. package/dist/types/types.test.js +8 -8
  48. package/dist/utils/cache-import.d.ts +1 -1
  49. package/dist/utils/cache-import.js +1 -1
  50. package/dist/utils/networking-import.d.ts +3 -3
  51. package/dist/utils/networking-import.js +2 -2
  52. package/dist/utils/rxjs-import.d.ts +2 -2
  53. package/dist/utils/rxjs-import.js +2 -2
  54. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import 'fake-indexeddb/auto';
2
- import { StoreService } from './store.service';
3
- import { NetworkingUIEventWrapped, AlertModel } from '../types/types';
4
- import { of, BehaviorSubject } from 'rxjs';
5
- describe('StoreService', () => {
1
+ import "fake-indexeddb/auto";
2
+ import { StoreService, } from "./store.service";
3
+ import { NetworkingUIEventWrapped, AlertModel, } from "../types/types";
4
+ import { of, BehaviorSubject } from "rxjs";
5
+ describe("StoreService", () => {
6
6
  const config = {
7
- baseUrl: 'https://api.example.com',
7
+ baseUrl: "https://api.example.com",
8
8
  isProd: false,
9
- clientId: 'test-client-id',
10
- apiKey: 'test-api-key',
9
+ clientId: "test-client-id",
10
+ apiKey: "test-api-key",
11
11
  };
12
12
  let service;
13
13
  let $authToken;
@@ -18,182 +18,258 @@ describe('StoreService', () => {
18
18
  afterEach(async () => {
19
19
  await service.clearCache();
20
20
  });
21
- it('should create service instance', () => {
21
+ it("should create service instance", () => {
22
22
  expect(service).toBeDefined();
23
23
  });
24
- it('should get store from network when no cache', async () => {
25
- const response = { data: { id: '1', name: 'Store' } };
24
+ it("should get store from network when no cache", async () => {
25
+ const response = { data: { id: "1", name: "Store" } };
26
26
  const mockProvider = {
27
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
27
+ request: jest
28
+ .fn()
29
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
28
30
  };
29
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
30
- const result = await service.get('1').toPromise();
31
+ jest
32
+ .spyOn(service, "provider")
33
+ .mockReturnValue(mockProvider);
34
+ const result = await service.get("1").toPromise();
31
35
  expect(result?.hasSuccess).toBe(true);
32
36
  expect(result?.response).toEqual(response);
33
37
  });
34
- it('should get store from cache when available', async () => {
35
- const response = { data: { id: '1', name: 'Store' } };
38
+ it("should get store from cache when available", async () => {
39
+ const response = { data: { id: "1", name: "Store" } };
36
40
  // First call to populate cache
37
41
  const mockProvider1 = {
38
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
42
+ request: jest
43
+ .fn()
44
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
39
45
  };
40
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider1);
41
- await service.get('1').toPromise();
46
+ jest
47
+ .spyOn(service, "provider")
48
+ .mockReturnValue(mockProvider1);
49
+ await service.get("1").toPromise();
42
50
  // Second call should use cache (even if network fails)
43
51
  const mockProvider2 = {
44
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
52
+ request: jest
53
+ .fn()
54
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
45
55
  };
46
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider2);
47
- const result = await service.get('1').toPromise();
56
+ jest
57
+ .spyOn(service, "provider")
58
+ .mockReturnValue(mockProvider2);
59
+ const result = await service.get("1").toPromise();
48
60
  expect(result?.hasSuccess).toBe(true);
49
61
  expect(result?.response).toEqual(response);
50
62
  });
51
- it('should handle network error when no cache', async () => {
63
+ it("should handle network error when no cache", async () => {
52
64
  const mockProvider = {
53
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
65
+ request: jest
66
+ .fn()
67
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
54
68
  };
55
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
56
- const result = await service.get('1').toPromise();
69
+ jest
70
+ .spyOn(service, "provider")
71
+ .mockReturnValue(mockProvider);
72
+ const result = await service.get("1").toPromise();
57
73
  expect(result?.hasFailed).toBe(true);
58
74
  expect(result?.alertModel).toBeInstanceOf(AlertModel);
59
75
  });
60
- it('should get store list from network when no cache', async () => {
61
- const response = { data: [{ id: '1', name: 'Store' }] };
76
+ it("should get store list from network when no cache", async () => {
77
+ const response = { data: [{ id: "1", name: "Store" }] };
62
78
  const mockProvider = {
63
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
79
+ request: jest
80
+ .fn()
81
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
64
82
  };
65
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
83
+ jest
84
+ .spyOn(service, "provider")
85
+ .mockReturnValue(mockProvider);
66
86
  const result = await service.list().toPromise();
67
87
  expect(result?.hasSuccess).toBe(true);
68
88
  expect(result?.response).toEqual(response);
69
89
  });
70
- it('should get store list from cache when available', async () => {
71
- const response = { data: [{ id: '1', name: 'Store' }] };
90
+ it("should get store list from cache when available", async () => {
91
+ const response = { data: [{ id: "1", name: "Store" }] };
72
92
  // First call to populate cache
73
93
  const mockProvider1 = {
74
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
94
+ request: jest
95
+ .fn()
96
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
75
97
  };
76
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider1);
98
+ jest
99
+ .spyOn(service, "provider")
100
+ .mockReturnValue(mockProvider1);
77
101
  await service.list().toPromise();
78
102
  // Second call should use cache
79
103
  const mockProvider2 = {
80
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
104
+ request: jest
105
+ .fn()
106
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
81
107
  };
82
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider2);
108
+ jest
109
+ .spyOn(service, "provider")
110
+ .mockReturnValue(mockProvider2);
83
111
  const result = await service.list().toPromise();
84
112
  expect(result?.hasSuccess).toBe(true);
85
113
  expect(result?.response).toEqual(response);
86
114
  });
87
- it('should get product category list from network when no cache', async () => {
88
- const response = { data: [{ id: 'cat1', name: 'Category' }] };
115
+ it("should get product category list from network when no cache", async () => {
116
+ const response = { data: [{ id: "cat1", name: "Category" }] };
89
117
  const mockProvider = {
90
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
118
+ request: jest
119
+ .fn()
120
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
91
121
  };
92
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
122
+ jest
123
+ .spyOn(service, "provider")
124
+ .mockReturnValue(mockProvider);
93
125
  const result = await service.productCategoryList().toPromise();
94
126
  expect(result?.hasSuccess).toBe(true);
95
127
  expect(result?.response).toEqual(response);
96
128
  });
97
- it('should get product category list from cache when available', async () => {
98
- const response = { data: [{ id: 'cat1', name: 'Category' }] };
129
+ it("should get product category list from cache when available", async () => {
130
+ const response = { data: [{ id: "cat1", name: "Category" }] };
99
131
  // First call to populate cache
100
132
  const mockProvider1 = {
101
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
133
+ request: jest
134
+ .fn()
135
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
102
136
  };
103
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider1);
137
+ jest
138
+ .spyOn(service, "provider")
139
+ .mockReturnValue(mockProvider1);
104
140
  await service.productCategoryList().toPromise();
105
141
  // Second call should use cache
106
142
  const mockProvider2 = {
107
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
143
+ request: jest
144
+ .fn()
145
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
108
146
  };
109
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider2);
147
+ jest
148
+ .spyOn(service, "provider")
149
+ .mockReturnValue(mockProvider2);
110
150
  const result = await service.productCategoryList().toPromise();
111
151
  expect(result?.hasSuccess).toBe(true);
112
152
  expect(result?.response).toEqual(response);
113
153
  });
114
- it('should get product collection from network when no cache', async () => {
115
- const response = { data: [{ id: 'prod1', name: 'Product' }] };
154
+ it("should get product collection from network when no cache", async () => {
155
+ const response = { data: [{ id: "prod1", name: "Product" }] };
116
156
  const payload = { page: 1, per_page: 10 };
117
157
  const mockProvider = {
118
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
158
+ request: jest
159
+ .fn()
160
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
119
161
  };
120
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
121
- const result = await service.productCollection('1', payload).toPromise();
162
+ jest
163
+ .spyOn(service, "provider")
164
+ .mockReturnValue(mockProvider);
165
+ const result = await service.productCollection("1", payload).toPromise();
122
166
  expect(result?.hasSuccess).toBe(true);
123
167
  expect(result?.response).toEqual(response);
124
168
  });
125
- it('should get product collection from cache when available', async () => {
126
- const response = { data: [{ id: 'prod1', name: 'Product' }] };
169
+ it("should get product collection from cache when available", async () => {
170
+ const response = { data: [{ id: "prod1", name: "Product" }] };
127
171
  const payload = { page: 1, per_page: 10 };
128
172
  // First call to populate cache
129
173
  const mockProvider1 = {
130
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
174
+ request: jest
175
+ .fn()
176
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
131
177
  };
132
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider1);
133
- await service.productCollection('1', payload).toPromise();
178
+ jest
179
+ .spyOn(service, "provider")
180
+ .mockReturnValue(mockProvider1);
181
+ await service.productCollection("1", payload).toPromise();
134
182
  // Second call should use cache
135
183
  const mockProvider2 = {
136
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
184
+ request: jest
185
+ .fn()
186
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
137
187
  };
138
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider2);
139
- const result = await service.productCollection('1', payload).toPromise();
188
+ jest
189
+ .spyOn(service, "provider")
190
+ .mockReturnValue(mockProvider2);
191
+ const result = await service.productCollection("1", payload).toPromise();
140
192
  expect(result?.hasSuccess).toBe(true);
141
193
  expect(result?.response).toEqual(response);
142
194
  });
143
- it('should get featured product list from network when no cache', async () => {
144
- const response = { data: [{ id: 'feat1', name: 'Featured' }] };
195
+ it("should get featured product list from network when no cache", async () => {
196
+ const response = {
197
+ data: [{ id: "feat1", name: "Featured" }],
198
+ };
145
199
  const mockProvider = {
146
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
200
+ request: jest
201
+ .fn()
202
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
147
203
  };
148
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
149
- const result = await service.featuredProductList('1').toPromise();
204
+ jest
205
+ .spyOn(service, "provider")
206
+ .mockReturnValue(mockProvider);
207
+ const result = await service.featuredProductList("1").toPromise();
150
208
  expect(result?.hasSuccess).toBe(true);
151
209
  expect(result?.response).toEqual(response);
152
210
  });
153
- it('should get featured product list from cache when available', async () => {
154
- const response = { data: [{ id: 'feat1', name: 'Featured' }] };
211
+ it("should get featured product list from cache when available", async () => {
212
+ const response = {
213
+ data: [{ id: "feat1", name: "Featured" }],
214
+ };
155
215
  // First call to populate cache
156
216
  const mockProvider1 = {
157
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
217
+ request: jest
218
+ .fn()
219
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
158
220
  };
159
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider1);
160
- await service.featuredProductList('1').toPromise();
221
+ jest
222
+ .spyOn(service, "provider")
223
+ .mockReturnValue(mockProvider1);
224
+ await service.featuredProductList("1").toPromise();
161
225
  // Second call should use cache
162
226
  const mockProvider2 = {
163
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default())))
227
+ request: jest
228
+ .fn()
229
+ .mockReturnValue(of(NetworkingUIEventWrapped.failed(AlertModel.default()))),
164
230
  };
165
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider2);
166
- const result = await service.featuredProductList('1').toPromise();
231
+ jest
232
+ .spyOn(service, "provider")
233
+ .mockReturnValue(mockProvider2);
234
+ const result = await service.featuredProductList("1").toPromise();
167
235
  expect(result?.hasSuccess).toBe(true);
168
236
  expect(result?.response).toEqual(response);
169
237
  });
170
- it('should clear cache successfully', async () => {
171
- const response = { data: { id: '1', name: 'Store' } };
238
+ it("should clear cache successfully", async () => {
239
+ const response = { data: { id: "1", name: "Store" } };
172
240
  const mockProvider = {
173
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
241
+ request: jest
242
+ .fn()
243
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
174
244
  };
175
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
245
+ jest
246
+ .spyOn(service, "provider")
247
+ .mockReturnValue(mockProvider);
176
248
  // Populate cache
177
- await service.get('1').toPromise();
249
+ await service.get("1").toPromise();
178
250
  // Clear cache
179
251
  await service.clearCache();
180
252
  // Should call network again after cache clear
181
- const result = await service.get('1').toPromise();
253
+ const result = await service.get("1").toPromise();
182
254
  expect(result?.hasSuccess).toBe(true);
183
255
  expect(mockProvider.request).toHaveBeenCalledTimes(2); // Once before clear, once after
184
256
  });
185
- it('should clear specific store cache', async () => {
186
- const response = { data: { id: '1', name: 'Store' } };
257
+ it("should clear specific store cache", async () => {
258
+ const response = { data: { id: "1", name: "Store" } };
187
259
  const mockProvider = {
188
- request: jest.fn().mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response)))
260
+ request: jest
261
+ .fn()
262
+ .mockReturnValue(of(NetworkingUIEventWrapped.succeeded(response))),
189
263
  };
190
- jest.spyOn(service, 'provider').mockReturnValue(mockProvider);
264
+ jest
265
+ .spyOn(service, "provider")
266
+ .mockReturnValue(mockProvider);
191
267
  // Populate cache for store '1'
192
- await service.get('1').toPromise();
268
+ await service.get("1").toPromise();
193
269
  // Clear specific store cache
194
- await service.clearStoreCache('1');
270
+ await service.clearStoreCache("1");
195
271
  // Should call network again after cache clear
196
- const result = await service.get('1').toPromise();
272
+ const result = await service.get("1").toPromise();
197
273
  expect(result?.hasSuccess).toBe(true);
198
274
  expect(mockProvider.request).toHaveBeenCalledTimes(2);
199
275
  });
@@ -1,6 +1,6 @@
1
- import { BaseProvider } from '../core/base.provider';
2
- import { BaseServiceWrapper } from '../core/base.service.wrapper';
3
- import { NetworkingConfig } from '../types/types';
1
+ import { BaseProvider } from "../core/base.provider";
2
+ import { BaseServiceWrapper } from "../core/base.service.wrapper";
3
+ import { NetworkingConfig } from "../types/types";
4
4
  export interface User {
5
5
  id: number;
6
6
  name: string;
@@ -1,14 +1,14 @@
1
- import { BaseProvider } from '../core/base.provider';
2
- import { BaseServiceWrapper } from '../core/base.service.wrapper';
1
+ import { BaseProvider } from "../core/base.provider";
2
+ import { BaseServiceWrapper } from "../core/base.service.wrapper";
3
3
  // UserProvider implements ProviderType for user endpoints
4
4
  export class UserProvider extends BaseProvider {
5
5
  constructor(config, userId) {
6
6
  super({
7
7
  config,
8
- path: userId ? `/users/${userId}` : '/users',
9
- method: 'GET',
8
+ path: userId ? `/users/${userId}` : "/users",
9
+ method: "GET",
10
10
  headers: {},
11
- getPath: () => (userId ? `/users/${userId}` : '/users'),
11
+ getPath: () => (userId ? `/users/${userId}` : "/users"),
12
12
  });
13
13
  }
14
14
  }
@@ -19,16 +19,19 @@ export class UserService extends BaseServiceWrapper {
19
19
  }
20
20
  // Fetch a user by ID
21
21
  fetchUserById(id) {
22
- this.provider = new UserProvider({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false }, id);
22
+ this.provider = new UserProvider({ baseUrl: "https://jsonplaceholder.typicode.com", isProd: false }, id);
23
23
  return this.request();
24
24
  }
25
25
  // Fetch all users
26
26
  fetchAllUsers() {
27
- this.provider = new UserProvider({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false });
27
+ this.provider = new UserProvider({
28
+ baseUrl: "https://jsonplaceholder.typicode.com",
29
+ isProd: false,
30
+ });
28
31
  return this.request();
29
32
  }
30
33
  }
31
34
  // Example usage:
32
35
  // setNetworkingConfig({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false });
33
36
  // const userService = new UserService();
34
- // userService.fetchUserById(1).subscribe(result => console.log(result));
37
+ // userService.fetchUserById(1).subscribe(result => console.log(result));
@@ -1,44 +1,50 @@
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', () => {
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
6
  const config = {
7
- baseUrl: 'https://jsonplaceholder.typicode.com',
7
+ baseUrl: "https://jsonplaceholder.typicode.com",
8
8
  isProd: false,
9
- clientId: 'test-client',
10
- apiKey: 'test-key',
9
+ clientId: "test-client",
10
+ apiKey: "test-key",
11
11
  };
12
- const user = { id: 1, name: 'Test', email: 'test@example.com' };
12
+ const user = { id: 1, name: "Test", email: "test@example.com" };
13
13
  let requestSpy;
14
14
  beforeEach(() => {
15
- requestSpy = jest.spyOn(BaseServiceWrapper.prototype, 'request').mockImplementation(() => of(NetworkingUIEventWrapped.succeeded(user)));
15
+ requestSpy = jest
16
+ .spyOn(BaseServiceWrapper.prototype, "request")
17
+ .mockImplementation(() => of(NetworkingUIEventWrapped.succeeded(user)));
16
18
  });
17
19
  afterEach(() => {
18
20
  requestSpy.mockRestore();
19
21
  });
20
- it('fetchUserById should return user (success)', (done) => {
22
+ it("fetchUserById should return user (success)", (done) => {
21
23
  const service = new UserService(config);
22
- service.fetchUserById(1).subscribe((result) => {
24
+ service
25
+ .fetchUserById(1)
26
+ .subscribe((result) => {
23
27
  expect(result.response).toEqual(user);
24
28
  done();
25
29
  });
26
30
  });
27
- it('fetchAllUsers should return users (success)', (done) => {
31
+ it("fetchAllUsers should return users (success)", (done) => {
28
32
  const service = new UserService(config);
29
- service.fetchAllUsers().subscribe((result) => {
33
+ service
34
+ .fetchAllUsers()
35
+ .subscribe((result) => {
30
36
  expect(result.response).toEqual(user);
31
37
  done();
32
38
  });
33
39
  });
34
- it('request should handle error', (done) => {
35
- requestSpy.mockImplementationOnce(() => throwError(() => new Error('Test error')));
40
+ it("request should handle error", (done) => {
41
+ requestSpy.mockImplementationOnce(() => throwError(() => new Error("Test error")));
36
42
  const service = new UserService(config);
37
43
  // Simulate error by calling a method that uses request
38
44
  service.fetchUserById(1).subscribe({
39
45
  error: (err) => {
40
46
  expect(err).toBeInstanceOf(Error);
41
- expect(err.message).toBe('Test error');
47
+ expect(err.message).toBe("Test error");
42
48
  done();
43
49
  },
44
50
  });
@@ -4,10 +4,10 @@ export class AlertButtonModel {
4
4
  this.handler = handler;
5
5
  }
6
6
  static buttonYes(handler) {
7
- return new AlertButtonModel('Yes', handler);
7
+ return new AlertButtonModel("Yes", handler);
8
8
  }
9
9
  static buttonNo(handler) {
10
- return new AlertButtonModel('No', handler);
10
+ return new AlertButtonModel("No", handler);
11
11
  }
12
12
  }
13
13
  export class AlertModel {
@@ -26,7 +26,7 @@ export class AlertModel {
26
26
  return this.httpErrorCode == 0;
27
27
  }
28
28
  static default() {
29
- return new AlertModel('Generic Error', 0, true, '', null, [
29
+ return new AlertModel("Generic Error", 0, true, "", null, [
30
30
  AlertButtonModel.buttonYes(),
31
31
  ]);
32
32
  }
@@ -1,14 +1,14 @@
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' });
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
6
  expect(wrap.hasSuccess).toBe(true);
7
7
  expect(wrap.hasFailed).toBe(false);
8
8
  expect(wrap.isWaiting).toBe(false);
9
9
  });
10
- it('should wrap failed response and set alertModel', () => {
11
- const alert = new AlertModel('err', 500, true, 'Error', { detail: 'fail' });
10
+ it("should wrap failed response and set alertModel", () => {
11
+ const alert = new AlertModel("err", 500, true, "Error", { detail: "fail" });
12
12
  const wrap = NetworkingUIEventWrapped.failed(alert);
13
13
  expect(wrap.response).toBeNull();
14
14
  expect(wrap.hasSuccess).toBe(false);
@@ -16,7 +16,7 @@ describe('NetworkingUIEventWrapped', () => {
16
16
  expect(wrap.isWaiting).toBe(false);
17
17
  expect(wrap.alertModel).toBe(alert);
18
18
  });
19
- it('should wrap waiting state', () => {
19
+ it("should wrap waiting state", () => {
20
20
  const wrap = NetworkingUIEventWrapped.waiting();
21
21
  expect(wrap.isWaiting).toBe(true);
22
22
  expect(wrap.hasSuccess).toBe(false);
@@ -1,3 +1,3 @@
1
- import Dexie from 'dexie';
1
+ import Dexie from "dexie";
2
2
  export { Dexie };
3
3
  export type Table<T> = Dexie.Table<T, string>;
@@ -1,2 +1,2 @@
1
- import Dexie from 'dexie';
1
+ import Dexie from "dexie";
2
2
  export { Dexie };
@@ -1,4 +1,4 @@
1
- export * from 'axios';
2
- import axios, { HttpStatusCode } from 'axios';
1
+ export * from "axios";
2
+ import axios, { HttpStatusCode } from "axios";
3
3
  export { axios, HttpStatusCode };
4
- export type { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig, AxiosRequestConfig } from 'axios';
4
+ export type { AxiosInstance, AxiosResponse, AxiosError, InternalAxiosRequestConfig, AxiosRequestConfig, } from "axios";
@@ -1,3 +1,3 @@
1
- export * from 'axios';
2
- import axios, { HttpStatusCode } from 'axios';
1
+ export * from "axios";
2
+ import axios, { HttpStatusCode } from "axios";
3
3
  export { axios, HttpStatusCode };
@@ -1,5 +1,5 @@
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';
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
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 };
3
+ export { startWith, firstValueFrom, from, fromEvent, tap, pipe, distinctUntilChanged, of, mergeMap, interval, map, concatMap, combineLatest, merge, combineLatestWith, debounceTime, delay, timeout, retry, takeUntil, NEVER, };
4
4
  export { shareReplay, filter };
5
5
  export { catchError, throwError };
@@ -1,5 +1,5 @@
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';
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
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 };
3
+ export { startWith, firstValueFrom, from, fromEvent, tap, pipe, distinctUntilChanged, of, mergeMap, interval, map, concatMap, combineLatest, merge, combineLatestWith, debounceTime, delay, timeout, retry, takeUntil, NEVER, };
4
4
  export { shareReplay, filter };
5
5
  export { catchError, throwError };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smess/networking",
3
- "version": "1.0.10",
3
+ "version": "1.0.13",
4
4
  "description": "Networking utilities and services for SMESS platform.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",