@smess/networking 1.0.6 → 1.0.7

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 (115) hide show
  1. package/README.md +58 -0
  2. package/dist/core/axios.d.ts +6 -6
  3. package/dist/core/axios.js +22 -24
  4. package/dist/core/axios.observable.js +15 -17
  5. package/dist/core/base.provider.advanced.test.js +11 -7
  6. package/dist/core/base.provider.d.ts +6 -6
  7. package/dist/core/base.provider.js +8 -8
  8. package/dist/core/base.provider.test.js +12 -8
  9. package/dist/core/base.service.wrapper.advanced.test.js +14 -22
  10. package/dist/core/base.service.wrapper.js +4 -7
  11. package/dist/core/base.service.wrapper.test.js +5 -7
  12. package/dist/core/rx.http.service.d.ts +21 -21
  13. package/dist/core/rx.http.service.js +22 -24
  14. package/dist/index.d.ts +9 -9
  15. package/dist/index.js +9 -9
  16. package/dist/{src/services → services}/auth.service.d.ts +2 -2
  17. package/dist/{src/services → services}/auth.service.js +1 -1
  18. package/dist/{src/services → services}/auth.service.test.js +2 -2
  19. package/dist/{src/services → services}/customer.service.d.ts +2 -2
  20. package/dist/{src/services → services}/customer.service.js +1 -1
  21. package/dist/{src/services → services}/customer.service.test.js +2 -2
  22. package/dist/services/logger.service.d.ts +5 -5
  23. package/dist/services/logger.service.js +4 -8
  24. package/dist/services/logger.service.test.js +16 -18
  25. package/dist/{src/services → services}/order.service.d.ts +2 -2
  26. package/dist/{src/services → services}/order.service.js +1 -1
  27. package/dist/{src/services → services}/order.service.test.js +2 -2
  28. package/dist/{src/services → services}/product.service.js +2 -2
  29. package/dist/{src/services → services}/product.service.test.js +3 -3
  30. package/dist/services/smess.service.d.ts +10 -3
  31. package/dist/services/smess.service.js +40 -48
  32. package/dist/services/smess.service.test.js +52 -33
  33. package/dist/{src/services → services}/store.service.d.ts +2 -2
  34. package/dist/{src/services → services}/store.service.js +1 -1
  35. package/dist/{src/services → services}/store.service.test.js +2 -2
  36. package/dist/{src/services → services}/user.service.js +2 -2
  37. package/dist/{src/services → services}/user.service.test.js +3 -3
  38. package/dist/types/types.d.ts +12 -8
  39. package/dist/types/types.js +6 -13
  40. package/dist/types/types.test.js +5 -7
  41. package/dist/utils/networking-import.js +3 -43
  42. package/dist/utils/rxjs-import.js +5 -34
  43. package/package.json +7 -1
  44. package/dist/core/product.service.d.ts +0 -19
  45. package/dist/core/product.service.js +0 -46
  46. package/dist/core/product.service.test.js +0 -63
  47. package/dist/core/user.service.d.ts +0 -15
  48. package/dist/core/user.service.js +0 -39
  49. package/dist/core/user.service.test.js +0 -45
  50. package/dist/scripts/real-test.d.ts +0 -1
  51. package/dist/scripts/real-test.js +0 -242
  52. package/dist/src/core/axios.d.ts +0 -44
  53. package/dist/src/core/axios.js +0 -65
  54. package/dist/src/core/axios.observable.d.ts +0 -11
  55. package/dist/src/core/axios.observable.js +0 -58
  56. package/dist/src/core/base.provider.advanced.test.d.ts +0 -1
  57. package/dist/src/core/base.provider.advanced.test.js +0 -29
  58. package/dist/src/core/base.provider.d.ts +0 -15
  59. package/dist/src/core/base.provider.js +0 -13
  60. package/dist/src/core/base.provider.test.d.ts +0 -1
  61. package/dist/src/core/base.provider.test.js +0 -32
  62. package/dist/src/core/base.service.wrapper.advanced.test.d.ts +0 -1
  63. package/dist/src/core/base.service.wrapper.advanced.test.js +0 -36
  64. package/dist/src/core/base.service.wrapper.d.ts +0 -7
  65. package/dist/src/core/base.service.wrapper.js +0 -11
  66. package/dist/src/core/base.service.wrapper.test.d.ts +0 -1
  67. package/dist/src/core/base.service.wrapper.test.js +0 -25
  68. package/dist/src/core/rx.http.service.d.ts +0 -44
  69. package/dist/src/core/rx.http.service.js +0 -65
  70. package/dist/src/domain/auth.provider.d.ts +0 -12
  71. package/dist/src/domain/auth.provider.js +0 -67
  72. package/dist/src/domain/product.service.js +0 -47
  73. package/dist/src/domain/smess.service.d.ts +0 -35
  74. package/dist/src/domain/smess.service.js +0 -137
  75. package/dist/src/domain/tests/auth.service.test.js +0 -80
  76. package/dist/src/domain/tests/product.service.test.d.ts +0 -1
  77. package/dist/src/domain/tests/product.service.test.js +0 -47
  78. package/dist/src/domain/tests/smess.service.test.d.ts +0 -1
  79. package/dist/src/domain/tests/smess.service.test.js +0 -106
  80. package/dist/src/domain/tests/user.service.test.d.ts +0 -1
  81. package/dist/src/domain/tests/user.service.test.js +0 -51
  82. package/dist/src/domain/user.service.js +0 -39
  83. package/dist/src/services/auth.service.test.d.ts +0 -1
  84. package/dist/src/services/logger.service.d.ts +0 -31
  85. package/dist/src/services/logger.service.js +0 -93
  86. package/dist/src/services/logger.service.test.d.ts +0 -1
  87. package/dist/src/services/logger.service.test.js +0 -31
  88. package/dist/src/services/product.service.d.ts +0 -21
  89. package/dist/src/services/product.service.test.d.ts +0 -1
  90. package/dist/src/services/smess.service.d.ts +0 -36
  91. package/dist/src/services/smess.service.js +0 -128
  92. package/dist/src/services/smess.service.test.d.ts +0 -1
  93. package/dist/src/services/smess.service.test.js +0 -99
  94. package/dist/src/services/user.service.d.ts +0 -16
  95. package/dist/src/services/user.service.test.d.ts +0 -1
  96. package/dist/src/types/types.d.ts +0 -93
  97. package/dist/src/types/types.js +0 -82
  98. package/dist/src/types/types.test.d.ts +0 -1
  99. package/dist/src/types/types.test.js +0 -25
  100. package/dist/src/utils/networking-import.d.ts +0 -4
  101. package/dist/src/utils/networking-import.js +0 -3
  102. package/dist/src/utils/rxjs-import.d.ts +0 -5
  103. package/dist/src/utils/rxjs-import.js +0 -5
  104. package/dist/utils/networking-settings.d.ts +0 -6
  105. package/dist/utils/networking-settings.js +0 -19
  106. package/dist/utils/networking-settings.test.d.ts +0 -1
  107. package/dist/utils/networking-settings.test.js +0 -21
  108. /package/dist/{src/domain/tests → services}/auth.service.test.d.ts +0 -0
  109. /package/dist/{src/services → services}/customer.service.test.d.ts +0 -0
  110. /package/dist/{src/services → services}/order.service.test.d.ts +0 -0
  111. /package/dist/{src/domain → services}/product.service.d.ts +0 -0
  112. /package/dist/{core → services}/product.service.test.d.ts +0 -0
  113. /package/dist/{src/services → services}/store.service.test.d.ts +0 -0
  114. /package/dist/{src/domain → services}/user.service.d.ts +0 -0
  115. /package/dist/{core → services}/user.service.test.d.ts +0 -0
@@ -19,9 +19,9 @@ export declare class AlertModel implements AlertModelable {
19
19
  httpErrorCode: number;
20
20
  isDisplayable: boolean;
21
21
  title?: string | undefined;
22
- data?: any | undefined;
22
+ data?: unknown | undefined;
23
23
  buttons?: AlertButtonModelable[] | undefined;
24
- constructor(message: string, httpErrorCode: number, isDisplayable?: boolean, title?: string | undefined, data?: any | undefined, buttons?: AlertButtonModelable[] | undefined);
24
+ constructor(message: string, httpErrorCode: number, isDisplayable?: boolean, title?: string | undefined, data?: unknown | undefined, buttons?: AlertButtonModelable[] | undefined);
25
25
  get isUnauthenticated(): boolean;
26
26
  get isNetworkingError(): boolean;
27
27
  static default(): AlertModel;
@@ -60,11 +60,8 @@ export interface ProviderType {
60
60
  baseURL: string;
61
61
  path: string;
62
62
  method: string;
63
- headers: any;
64
- getPath(...queryParams: any[]): string;
65
- }
66
- export interface ProviderTypeMockable {
67
- shouldUseMockData: boolean;
63
+ headers: Record<string, string | undefined>;
64
+ getPath(...queryParams: unknown[]): string;
68
65
  }
69
66
  export interface HeaderType {
70
67
  shouldAddEncryptionHeader?: boolean;
@@ -78,7 +75,7 @@ export interface ServerValidationErrorMessage {
78
75
  parameters?: {
79
76
  error_code?: string;
80
77
  field?: string;
81
- [key: string]: any;
78
+ [key: string]: unknown;
82
79
  };
83
80
  }
84
81
  export interface ServerErrorResponse {
@@ -86,4 +83,11 @@ export interface ServerErrorResponse {
86
83
  [field: string]: ServerValidationErrorMessage[];
87
84
  };
88
85
  }
86
+ export interface NetworkingConfig {
87
+ baseUrl: string;
88
+ version?: string;
89
+ isProd: boolean;
90
+ clientId?: string;
91
+ apiKey?: string;
92
+ }
89
93
  export {};
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NetworkingUIEventWrapped = exports.NetworkingUIEvent = exports.ValidationErrorMessage = exports.AlertModel = exports.AlertButtonModel = void 0;
4
- class AlertButtonModel {
1
+ export class AlertButtonModel {
5
2
  constructor(title, handler) {
6
3
  this.title = title;
7
4
  this.handler = handler;
@@ -13,8 +10,7 @@ class AlertButtonModel {
13
10
  return new AlertButtonModel('No', handler);
14
11
  }
15
12
  }
16
- exports.AlertButtonModel = AlertButtonModel;
17
- class AlertModel {
13
+ export class AlertModel {
18
14
  constructor(message, httpErrorCode, isDisplayable = false, title, data, buttons) {
19
15
  this.message = message;
20
16
  this.httpErrorCode = httpErrorCode;
@@ -35,20 +31,18 @@ class AlertModel {
35
31
  ]);
36
32
  }
37
33
  }
38
- exports.AlertModel = AlertModel;
39
- class ValidationErrorMessage {
34
+ export class ValidationErrorMessage {
40
35
  constructor(message) {
41
36
  this.message = message;
42
37
  }
43
38
  }
44
- exports.ValidationErrorMessage = ValidationErrorMessage;
45
- var NetworkingUIEvent;
39
+ export var NetworkingUIEvent;
46
40
  (function (NetworkingUIEvent) {
47
41
  NetworkingUIEvent["waiting"] = "waiting";
48
42
  NetworkingUIEvent["succeeded"] = "succeeded";
49
43
  NetworkingUIEvent["failed"] = "failed";
50
- })(NetworkingUIEvent || (exports.NetworkingUIEvent = NetworkingUIEvent = {}));
51
- class NetworkingUIEventWrapped {
44
+ })(NetworkingUIEvent || (NetworkingUIEvent = {}));
45
+ export class NetworkingUIEventWrapped {
52
46
  constructor(event, succeeded, failed) {
53
47
  this.event = event;
54
48
  this.succeeded = succeeded;
@@ -86,4 +80,3 @@ class NetworkingUIEventWrapped {
86
80
  });
87
81
  }
88
82
  }
89
- exports.NetworkingUIEventWrapped = NetworkingUIEventWrapped;
@@ -1,17 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const types_1 = require("./types");
1
+ import { NetworkingUIEventWrapped, AlertModel } from './types';
4
2
  describe('NetworkingUIEventWrapped', () => {
5
3
  it('should wrap succeeded response', () => {
6
- const wrap = types_1.NetworkingUIEventWrapped.succeeded({ foo: 'bar' });
4
+ const wrap = NetworkingUIEventWrapped.succeeded({ foo: 'bar' });
7
5
  expect(wrap.response).toEqual({ foo: 'bar' });
8
6
  expect(wrap.hasSuccess).toBe(true);
9
7
  expect(wrap.hasFailed).toBe(false);
10
8
  expect(wrap.isWaiting).toBe(false);
11
9
  });
12
10
  it('should wrap failed response and set alertModel', () => {
13
- const alert = new types_1.AlertModel('err', 500, true, 'Error', { detail: 'fail' });
14
- const wrap = types_1.NetworkingUIEventWrapped.failed(alert);
11
+ const alert = new AlertModel('err', 500, true, 'Error', { detail: 'fail' });
12
+ const wrap = NetworkingUIEventWrapped.failed(alert);
15
13
  expect(wrap.response).toBeNull();
16
14
  expect(wrap.hasSuccess).toBe(false);
17
15
  expect(wrap.hasFailed).toBe(true);
@@ -19,7 +17,7 @@ describe('NetworkingUIEventWrapped', () => {
19
17
  expect(wrap.alertModel).toBe(alert);
20
18
  });
21
19
  it('should wrap waiting state', () => {
22
- const wrap = types_1.NetworkingUIEventWrapped.waiting();
20
+ const wrap = NetworkingUIEventWrapped.waiting();
23
21
  expect(wrap.isWaiting).toBe(true);
24
22
  expect(wrap.hasSuccess).toBe(false);
25
23
  expect(wrap.hasFailed).toBe(false);
@@ -1,43 +1,3 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
- };
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.HttpStatusCode = exports.axios = void 0;
40
- __exportStar(require("axios"), exports);
41
- const axios_1 = __importStar(require("axios"));
42
- exports.axios = axios_1.default;
43
- Object.defineProperty(exports, "HttpStatusCode", { enumerable: true, get: function () { return axios_1.HttpStatusCode; } });
1
+ export * from 'axios';
2
+ import axios, { HttpStatusCode } from 'axios';
3
+ export { axios, HttpStatusCode };
@@ -1,34 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.throwError = exports.catchError = exports.filter = exports.shareReplay = exports.NEVER = exports.takeUntil = exports.retry = exports.timeout = exports.delay = exports.debounceTime = exports.combineLatestWith = exports.merge = exports.combineLatest = exports.concatMap = exports.map = exports.interval = exports.mergeMap = exports.of = exports.distinctUntilChanged = exports.pipe = exports.tap = exports.fromEvent = exports.from = exports.firstValueFrom = exports.startWith = exports.Subscriber = exports.Subscription = exports.BehaviorSubject = exports.Subject = exports.Observable = void 0;
4
- const rxjs_1 = require("rxjs");
5
- Object.defineProperty(exports, "BehaviorSubject", { enumerable: true, get: function () { return rxjs_1.BehaviorSubject; } });
6
- Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return rxjs_1.Observable; } });
7
- Object.defineProperty(exports, "Subject", { enumerable: true, get: function () { return rxjs_1.Subject; } });
8
- Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return rxjs_1.Subscription; } });
9
- Object.defineProperty(exports, "Subscriber", { enumerable: true, get: function () { return rxjs_1.Subscriber; } });
10
- Object.defineProperty(exports, "catchError", { enumerable: true, get: function () { return rxjs_1.catchError; } });
11
- Object.defineProperty(exports, "combineLatest", { enumerable: true, get: function () { return rxjs_1.combineLatest; } });
12
- Object.defineProperty(exports, "concatMap", { enumerable: true, get: function () { return rxjs_1.concatMap; } });
13
- Object.defineProperty(exports, "distinctUntilChanged", { enumerable: true, get: function () { return rxjs_1.distinctUntilChanged; } });
14
- Object.defineProperty(exports, "filter", { enumerable: true, get: function () { return rxjs_1.filter; } });
15
- Object.defineProperty(exports, "firstValueFrom", { enumerable: true, get: function () { return rxjs_1.firstValueFrom; } });
16
- Object.defineProperty(exports, "from", { enumerable: true, get: function () { return rxjs_1.from; } });
17
- Object.defineProperty(exports, "fromEvent", { enumerable: true, get: function () { return rxjs_1.fromEvent; } });
18
- Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return rxjs_1.merge; } });
19
- Object.defineProperty(exports, "NEVER", { enumerable: true, get: function () { return rxjs_1.NEVER; } });
20
- Object.defineProperty(exports, "interval", { enumerable: true, get: function () { return rxjs_1.interval; } });
21
- Object.defineProperty(exports, "map", { enumerable: true, get: function () { return rxjs_1.map; } });
22
- Object.defineProperty(exports, "mergeMap", { enumerable: true, get: function () { return rxjs_1.mergeMap; } });
23
- Object.defineProperty(exports, "of", { enumerable: true, get: function () { return rxjs_1.of; } });
24
- Object.defineProperty(exports, "pipe", { enumerable: true, get: function () { return rxjs_1.pipe; } });
25
- Object.defineProperty(exports, "shareReplay", { enumerable: true, get: function () { return rxjs_1.shareReplay; } });
26
- Object.defineProperty(exports, "startWith", { enumerable: true, get: function () { return rxjs_1.startWith; } });
27
- Object.defineProperty(exports, "tap", { enumerable: true, get: function () { return rxjs_1.tap; } });
28
- Object.defineProperty(exports, "timeout", { enumerable: true, get: function () { return rxjs_1.timeout; } });
29
- Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return rxjs_1.retry; } });
30
- Object.defineProperty(exports, "throwError", { enumerable: true, get: function () { return rxjs_1.throwError; } });
31
- Object.defineProperty(exports, "combineLatestWith", { enumerable: true, get: function () { return rxjs_1.combineLatestWith; } });
32
- Object.defineProperty(exports, "debounceTime", { enumerable: true, get: function () { return rxjs_1.debounceTime; } });
33
- Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return rxjs_1.delay; } });
34
- Object.defineProperty(exports, "takeUntil", { enumerable: true, get: function () { return rxjs_1.takeUntil; } });
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 };
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "@smess/networking",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Networking utilities and services for SMESS platform.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
7
13
  "type": "module",
8
14
  "scripts": {
9
15
  "build": "tsc",
@@ -1,19 +0,0 @@
1
- import { BaseProvider } from './base.provider';
2
- import { BaseServiceWrapper } from './base.service.wrapper';
3
- export interface Product {
4
- id: number;
5
- name: string;
6
- price: number;
7
- }
8
- export declare class ProductProvider extends BaseProvider {
9
- constructor({ productId, method }?: {
10
- productId?: number;
11
- method?: string;
12
- });
13
- }
14
- export declare class ProductService extends BaseServiceWrapper<ProductProvider> {
15
- constructor(productId?: number, method?: string);
16
- fetchProductById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
17
- fetchAllProducts(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product[]>>;
18
- createProduct(product: Omit<Product, 'id'>): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
19
- }
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProductService = exports.ProductProvider = void 0;
4
- const base_provider_1 = require("./base.provider");
5
- const base_service_wrapper_1 = require("./base.service.wrapper");
6
- // ProductProvider implements ProviderType for product endpoints
7
- class ProductProvider extends base_provider_1.BaseProvider {
8
- constructor({ productId, method } = {}) {
9
- super({
10
- baseURL: 'https://fakestoreapi.com',
11
- path: productId ? `/products/${productId}` : '/products',
12
- method: method || 'GET',
13
- headers: { 'Content-Type': 'application/json' },
14
- getPath: () => (productId ? `/products/${productId}` : '/products'),
15
- });
16
- }
17
- }
18
- exports.ProductProvider = ProductProvider;
19
- // ProductService provides high-level methods for product API
20
- class ProductService extends base_service_wrapper_1.BaseServiceWrapper {
21
- constructor(productId, method) {
22
- super(new ProductProvider({ productId, method }));
23
- }
24
- // Fetch a product by ID
25
- fetchProductById(id) {
26
- this.provider = new ProductProvider({ productId: id });
27
- return this.request();
28
- }
29
- // Fetch all products
30
- fetchAllProducts() {
31
- this.provider = new ProductProvider();
32
- return this.request();
33
- }
34
- // Create a new product (POST)
35
- createProduct(product) {
36
- this.provider = new ProductProvider({ method: 'POST' });
37
- return this.request(product);
38
- }
39
- }
40
- exports.ProductService = ProductService;
41
- // Example usage:
42
- // setNetworkingConfig({ baseUrl: 'https://fakestoreapi.com', isProd: false });
43
- // const productService = new ProductService();
44
- // productService.fetchProductById(1).subscribe(result => console.log(result));
45
- // productService.fetchAllProducts().subscribe(result => console.log(result));
46
- // productService.createProduct({ name: 'New Product', price: 99.99 }).subscribe(result => console.log(result));
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const product_service_1 = require("./product.service");
4
- const types_1 = require("../types/types");
5
- const rxjs_1 = require("rxjs");
6
- jest.mock('./base.service.wrapper', () => {
7
- const actual = jest.requireActual('./base.service.wrapper');
8
- return Object.assign(Object.assign({}, actual), { BaseServiceWrapper: class {
9
- constructor() {
10
- this.request = jest.fn((payload) => {
11
- if (payload === 'error') {
12
- return (0, rxjs_1.throwError)(() => new Error('Test error'));
13
- }
14
- return (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded({ id: 1, name: 'Product', price: 10 }));
15
- });
16
- }
17
- } });
18
- });
19
- describe('ProductService', () => {
20
- it('fetchProductById should return product (success)', done => {
21
- const service = new product_service_1.ProductService();
22
- service.fetchProductById(1).subscribe(result => {
23
- expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
24
- done();
25
- });
26
- });
27
- it('fetchAllProducts should return products (success)', done => {
28
- const service = new product_service_1.ProductService();
29
- service.fetchAllProducts().subscribe(result => {
30
- expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
31
- done();
32
- });
33
- });
34
- it('createProduct should return product (success)', done => {
35
- const service = new product_service_1.ProductService();
36
- service.createProduct({ name: 'New', price: 99 }).subscribe(result => {
37
- expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
38
- done();
39
- });
40
- });
41
- it('request should handle error (fetchProductById)', done => {
42
- const service = new product_service_1.ProductService();
43
- service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
44
- service.request('error').subscribe({
45
- error: err => {
46
- expect(err).toBeInstanceOf(Error);
47
- expect(err.message).toBe('Test error');
48
- done();
49
- },
50
- });
51
- });
52
- it('request should handle error (createProduct)', done => {
53
- const service = new product_service_1.ProductService();
54
- service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
55
- service.request('error').subscribe({
56
- error: err => {
57
- expect(err).toBeInstanceOf(Error);
58
- expect(err.message).toBe('Test error');
59
- done();
60
- },
61
- });
62
- });
63
- });
@@ -1,15 +0,0 @@
1
- import { BaseProvider } from './base.provider';
2
- import { BaseServiceWrapper } from './base.service.wrapper';
3
- export interface User {
4
- id: number;
5
- name: string;
6
- email: string;
7
- }
8
- export declare class UserProvider extends BaseProvider {
9
- constructor(userId?: number);
10
- }
11
- export declare class UserService extends BaseServiceWrapper<UserProvider> {
12
- constructor(userId?: number);
13
- fetchUserById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User>>;
14
- fetchAllUsers(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User[]>>;
15
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserService = exports.UserProvider = void 0;
4
- const base_provider_1 = require("./base.provider");
5
- const base_service_wrapper_1 = require("./base.service.wrapper");
6
- // UserProvider implements ProviderType for user endpoints
7
- class UserProvider extends base_provider_1.BaseProvider {
8
- constructor(userId) {
9
- super({
10
- baseURL: 'https://jsonplaceholder.typicode.com',
11
- path: userId ? `/users/${userId}` : '/users',
12
- method: 'GET',
13
- headers: {},
14
- getPath: () => (userId ? `/users/${userId}` : '/users'),
15
- });
16
- }
17
- }
18
- exports.UserProvider = UserProvider;
19
- // UserService provides high-level methods for user API
20
- class UserService extends base_service_wrapper_1.BaseServiceWrapper {
21
- constructor(userId) {
22
- super(new UserProvider(userId));
23
- }
24
- // Fetch a user by ID
25
- fetchUserById(id) {
26
- this.provider = new UserProvider(id);
27
- return this.request();
28
- }
29
- // Fetch all users
30
- fetchAllUsers() {
31
- this.provider = new UserProvider();
32
- return this.request();
33
- }
34
- }
35
- exports.UserService = UserService;
36
- // Example usage:
37
- // setNetworkingConfig({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false });
38
- // const userService = new UserService();
39
- // userService.fetchUserById(1).subscribe(result => console.log(result));
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const user_service_1 = require("./user.service");
4
- const types_1 = require("../types/types");
5
- const rxjs_1 = require("rxjs");
6
- jest.mock('./base.service.wrapper', () => {
7
- const actual = jest.requireActual('./base.service.wrapper');
8
- return Object.assign(Object.assign({}, actual), { BaseServiceWrapper: class {
9
- constructor() {
10
- this.request = jest.fn((payload) => {
11
- if (payload === 'error') {
12
- return (0, rxjs_1.throwError)(() => new Error('Test error'));
13
- }
14
- return (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded({ id: 1, name: 'Test', email: 'test@example.com' }));
15
- });
16
- }
17
- } });
18
- });
19
- describe('UserService', () => {
20
- it('fetchUserById should return user (success)', done => {
21
- const service = new user_service_1.UserService();
22
- service.fetchUserById(1).subscribe(result => {
23
- expect(result.response).toEqual({ id: 1, name: 'Test', email: 'test@example.com' });
24
- done();
25
- });
26
- });
27
- it('fetchAllUsers should return users (success)', done => {
28
- const service = new user_service_1.UserService();
29
- service.fetchAllUsers().subscribe(result => {
30
- expect(result.response).toEqual({ id: 1, name: 'Test', email: 'test@example.com' });
31
- done();
32
- });
33
- });
34
- it('request should handle error', done => {
35
- const service = new user_service_1.UserService();
36
- service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
37
- service.request('error').subscribe({
38
- error: err => {
39
- expect(err).toBeInstanceOf(Error);
40
- expect(err.message).toBe('Test error');
41
- done();
42
- },
43
- });
44
- });
45
- });
@@ -1 +0,0 @@
1
- export {};