http-request-manager 18.7.21 → 18.7.24

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 (198) hide show
  1. package/fesm2022/http-request-manager.mjs +7633 -0
  2. package/fesm2022/http-request-manager.mjs.map +1 -0
  3. package/http-request-manager-18.7.24.tgz +0 -0
  4. package/package.json +16 -5
  5. package/types/http-request-manager.d.ts +2277 -0
  6. package/ARCHITECTURE.md +0 -483
  7. package/DATABASE_README.md +0 -1176
  8. package/HTTP_MANAGER_README.md +0 -579
  9. package/HTTP_SINGNALS_MANAGER_README.md +0 -654
  10. package/HTTP_STATE_MANAGER_README.md +0 -948
  11. package/INTERCEPTOR_README.md +0 -549
  12. package/LOCAL_STORAGE_README.md +0 -1056
  13. package/STORE_STATE_MANAGER_README.md +0 -1322
  14. package/UTILS_README.md +0 -1186
  15. package/WS_MANAGER_README.md +0 -613
  16. package/ng-package.json +0 -8
  17. package/src/lib/http-request-manager.module.ts +0 -132
  18. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -65
  19. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  20. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -224
  21. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -114
  22. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  23. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -52
  24. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  25. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  26. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -206
  27. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +0 -200
  28. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +0 -17
  29. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +0 -212
  30. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  31. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  32. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  33. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  34. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  35. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  36. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  37. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  38. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  39. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  40. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  41. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  42. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  43. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  44. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  45. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  46. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  47. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  48. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  49. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -392
  50. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -24
  51. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -461
  52. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -393
  53. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  54. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -421
  55. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -87
  56. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +0 -120
  57. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  58. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +0 -3
  59. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +0 -16
  60. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  61. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +0 -3
  62. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +0 -16
  63. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +0 -31
  64. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +0 -72
  65. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +0 -41
  66. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +0 -205
  67. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +0 -77
  68. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +0 -11
  69. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +0 -96
  70. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +0 -31
  71. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +0 -229
  72. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +0 -30
  73. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +0 -172
  74. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +0 -31
  75. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +0 -239
  76. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +0 -31
  77. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +0 -32
  78. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  79. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +0 -84
  80. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +0 -41
  81. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +0 -3
  82. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +0 -83
  83. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +0 -147
  84. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +0 -158
  85. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  86. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  87. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  88. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +0 -28
  89. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +0 -10
  90. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  91. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  92. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  93. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  94. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  95. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  96. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +0 -30
  97. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +0 -19
  98. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +0 -25
  99. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +0 -19
  100. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +0 -24
  101. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +0 -30
  102. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +0 -49
  103. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +0 -33
  104. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +0 -380
  105. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +0 -24
  106. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +0 -410
  107. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +0 -28
  108. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +0 -48
  109. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  110. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +0 -23
  111. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +0 -36
  112. package/src/lib/index.ts +0 -3
  113. package/src/lib/interceptors/credentials.interceptor.ts +0 -16
  114. package/src/lib/interceptors/index.ts +0 -6
  115. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  116. package/src/lib/interceptors/models/index.ts +0 -2
  117. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  118. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  119. package/src/lib/interceptors/request-header.interceptor.ts +0 -53
  120. package/src/lib/models/config-http-options.model.ts +0 -42
  121. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  122. package/src/lib/models/config-options.model.ts +0 -27
  123. package/src/lib/models/config-token.model.ts +0 -9
  124. package/src/lib/models/data-type.enum.ts +0 -5
  125. package/src/lib/models/database-storage.model.ts +0 -24
  126. package/src/lib/models/index.ts +0 -12
  127. package/src/lib/models/retry-options.model.ts +0 -22
  128. package/src/lib/services/database-manager-service/database.manager.service.ts +0 -262
  129. package/src/lib/services/database-manager-service/db.storage.service.ts +0 -207
  130. package/src/lib/services/database-manager-service/index.ts +0 -4
  131. package/src/lib/services/database-manager-service/models/index.ts +0 -2
  132. package/src/lib/services/database-manager-service/models/table-schema.ts +0 -33
  133. package/src/lib/services/index.ts +0 -12
  134. package/src/lib/services/local-storage-manager-service/index.ts +0 -4
  135. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  136. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -426
  137. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +0 -67
  138. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +0 -345
  139. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  140. package/src/lib/services/local-storage-manager-service/models/index.ts +0 -6
  141. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -35
  142. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  143. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -32
  144. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  145. package/src/lib/services/request-manager-services/README.md +0 -268
  146. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +0 -246
  147. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -232
  148. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -274
  149. package/src/lib/services/request-manager-services/index.ts +0 -8
  150. package/src/lib/services/request-manager-services/request-signals.service.ts +0 -214
  151. package/src/lib/services/request-manager-services/request.service.ts +0 -309
  152. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  153. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  154. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +0 -4
  155. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -35
  156. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -436
  157. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -1321
  158. package/src/lib/services/request-manager-state-service/index.ts +0 -3
  159. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -61
  160. package/src/lib/services/request-manager-state-service/models/index.ts +0 -6
  161. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -22
  162. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +0 -13
  163. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +0 -39
  164. package/src/lib/services/store-state-manager-service/index.ts +0 -3
  165. package/src/lib/services/store-state-manager-service/models/index.ts +0 -2
  166. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +0 -24
  167. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +0 -88
  168. package/src/lib/services/utils/app.service.spec.ts +0 -25
  169. package/src/lib/services/utils/app.service.ts +0 -21
  170. package/src/lib/services/utils/encryption/README.md +0 -79
  171. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  172. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  173. package/src/lib/services/utils/encryption/index.ts +0 -5
  174. package/src/lib/services/utils/encryption/random.ts +0 -81
  175. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -93
  176. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  177. package/src/lib/services/utils/headers.service.ts +0 -18
  178. package/src/lib/services/utils/index.ts +0 -7
  179. package/src/lib/services/utils/object-merger.service.spec.ts +0 -18
  180. package/src/lib/services/utils/object-merger.service.ts +0 -78
  181. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  182. package/src/lib/services/utils/path-query.service.ts +0 -69
  183. package/src/lib/services/utils/random-color.utils.ts +0 -83
  184. package/src/lib/services/utils/utils.service.spec.ts +0 -165
  185. package/src/lib/services/utils/utils.service.ts +0 -192
  186. package/src/lib/services/ws-manager-service/index.ts +0 -4
  187. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +0 -24
  188. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +0 -24
  189. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +0 -24
  190. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +0 -5
  191. package/src/lib/services/ws-manager-service/models/index.ts +0 -5
  192. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +0 -38
  193. package/src/lib/services/ws-manager-service/services/index.ts +0 -3
  194. package/src/lib/services/ws-manager-service/services/websocket.service.ts +0 -392
  195. package/src/public-api.ts +0 -14
  196. package/tsconfig.lib.json +0 -32
  197. package/tsconfig.lib.prod.json +0 -10
  198. package/tsconfig.spec.json +0 -14
@@ -1,65 +0,0 @@
1
- import { inject, Injectable } from '@angular/core'
2
- import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpErrorResponse } from '@angular/common/http'
3
- import { Observable, catchError, throwError } from 'rxjs'
4
-
5
- import { ToastMessageDisplayService, ToastDisplay, ToastColors } from 'toast-message-display'
6
-
7
- @Injectable()
8
- export class RequestErrorInterceptor implements HttpInterceptor {
9
-
10
- toastMessage = inject(ToastMessageDisplayService)
11
-
12
- intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
13
-
14
- return next.handle(req).pipe(
15
-
16
- catchError((error: HttpErrorResponse) => {
17
-
18
- const displayError = ToastDisplay.adapt({
19
- message: 'This is a toast message. This is an Error!!',
20
- action: 'OK',
21
- color: ToastColors.SUCCESS,
22
- icon: 'info',
23
- duration: 5 * 1000, //5 seconds
24
- })
25
-
26
- if (error.status >= 400 && error.status < 500) {
27
-
28
- displayError.color = ToastColors.WARN
29
- displayError.message = error.error || `${error.status}: ${error.statusText}`
30
-
31
- console.error('Client Error:', {
32
- status: error.status,
33
- message: error.message,
34
- error: error.error,
35
- text: error.statusText,
36
- })
37
-
38
- this.toastMessage.toastMessage(displayError)
39
-
40
- } else if (error.status >= 500) {
41
-
42
- displayError.color = ToastColors.ERROR
43
- displayError.message = error.error || `${error.status}: ${error.statusText}`
44
-
45
- console.error('Server Error:', {
46
- status: error.status,
47
- message: error.message,
48
- error: error.error,
49
- text: error.statusText,
50
- })
51
-
52
- this.toastMessage.toastMessage(displayError)
53
-
54
- }
55
-
56
- return throwError(() => error)
57
-
58
- })
59
-
60
- )
61
- }
62
-
63
- }
64
-
65
-
@@ -1,53 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
3
- import { Observable, Subscription } from 'rxjs';
4
- import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
5
-
6
- @Injectable()
7
- export class RequestHeadersInterceptor implements HttpInterceptor {
8
-
9
- subscriptions = new Subscription()
10
- language = 'en-CA'
11
-
12
- get currentDate() {
13
-
14
- const date = new Date()
15
-
16
- const year = date.getFullYear()
17
- const month = String(date.getMonth() + 1).padStart(2, '0')
18
- const day = String(date.getDate()).padStart(2, '0')
19
-
20
- return `${year}-${month}-${day}`
21
-
22
- }
23
-
24
- constructor(
25
- private translate: TranslateService
26
- ) {
27
- this.subscriptions.add(
28
- this.translate.onLangChange
29
- .subscribe((params: LangChangeEvent) => {
30
- this.language = `${params.lang}-CA`
31
- })
32
- )
33
- }
34
-
35
- intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
36
-
37
- request = request.clone({
38
- setHeaders: {
39
- 'Content-Type': 'application/json',
40
- 'Accept-Language': this.language || 'en-CA',
41
- 'Current-Date': this.currentDate
42
- }
43
- })
44
-
45
- return next.handle(request)
46
-
47
- }
48
-
49
- ngOnDestroy() {
50
- this.subscriptions.unsubscribe()
51
- }
52
- }
53
-
@@ -1,42 +0,0 @@
1
- import { RetryOptions } from "./retry-options.model"
2
-
3
- export interface ConfigHTTPOptionsInterface {
4
- server: string
5
- path?: any[]
6
- headers?: any
7
- polling?: number // seconds (undefined | 0 = none)
8
- retry?: RetryOptions
9
- stream?: boolean
10
- displayError?: boolean
11
- }
12
-
13
- export class ConfigHTTPOptions implements ConfigHTTPOptionsInterface {
14
-
15
- constructor(
16
- public server = '',
17
- public path?: any[],
18
- public headers?: any,
19
- public polling?: number,
20
- public retry?: RetryOptions,
21
- public stream?: boolean,
22
- public displayError?: boolean,
23
- ) {}
24
-
25
- static adapt(item?: any): ConfigHTTPOptions {
26
-
27
- const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
28
- const retryOptions = item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt();
29
-
30
- return new ConfigHTTPOptions(
31
- server,
32
- (item?.path) ? item.path : [],
33
- (item?.headers) ? item.headers : {},
34
- item?.polling ? Math.floor(item.polling) : 0,
35
- retryOptions,
36
- (item?.stream) ? item.stream : false,
37
- (item?.displayError) ? item.displayError : false,
38
- )
39
-
40
- }
41
-
42
- }
@@ -1,27 +0,0 @@
1
- import { SettingOptions } from "../services"
2
-
3
- export interface LocalStorageOptionsInterface {
4
- storageName?: string
5
- storageSettingsName?: string
6
- options?: SettingOptions,
7
- }
8
-
9
- export class LocalStorageOptions implements LocalStorageOptionsInterface {
10
-
11
- constructor(
12
- public storageName?: string,
13
- public storageSettingsName?: string,
14
- public options?: SettingOptions,
15
- ) {}
16
-
17
- static adapt(item?: any): LocalStorageOptions {
18
-
19
- return new LocalStorageOptions(
20
- (item?.storageName) ? item.storageName : 'storage',
21
- (item?.storageSettingsName) ? item.storageSettingsName : 'global-storage',
22
- (item?.options) ? SettingOptions.adapt(item.options) : SettingOptions.adapt(),
23
- )
24
-
25
- }
26
-
27
- }
@@ -1,27 +0,0 @@
1
- import { ConfigHTTPOptions } from "./config-http-options.model";
2
- import { LocalStorageOptions } from "./config-local-storage-options.model";
3
-
4
- export interface ConfigOptionsInterface {
5
- httpRequestOptions?: ConfigHTTPOptions
6
- LocalStorageOptions?: LocalStorageOptions
7
- // DatabaseOptions: any
8
- }
9
-
10
- export class ConfigOptions implements ConfigOptionsInterface {
11
-
12
- constructor(
13
- public httpRequestOptions?: ConfigHTTPOptions,
14
- public LocalStorageOptions?: LocalStorageOptions,
15
- // public DatabaseOptions?: any,
16
- ) {}
17
-
18
- static adapt(item?: any): ConfigOptions {
19
- return new ConfigOptions(
20
- (item?.httpRequestOptions) ? ConfigHTTPOptions.adapt(item.httpRequestOptions) : undefined,
21
- (item?.LocalStorageOptions) ? LocalStorageOptions.adapt(item.LocalStorageOptions) : undefined,
22
- // item?.DatabaseOptions,
23
- )
24
-
25
- }
26
-
27
- }
@@ -1,9 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- import { ConfigOptions } from "./config-options.model";
3
-
4
- /**
5
- * An injection token that provides the configuration settings for the application.
6
- * This token can be used to inject the `ConfigSettings` instance into components or services
7
- * that require access to the application configuration.
8
- */
9
- export const CONFIG_SETTINGS_TOKEN = new InjectionToken<ConfigOptions>('http.config');
@@ -1,5 +0,0 @@
1
- export enum DataType {
2
- ANY = 0,
3
- ARRAY,
4
- OBJECT
5
- }
@@ -1,24 +0,0 @@
1
- export interface DatabaseStorageInterface {
2
- table: string
3
- expiresIn: string
4
- }
5
-
6
- export class DatabaseStorage implements DatabaseStorageInterface {
7
-
8
- constructor(
9
- public table = '',
10
- public expiresIn: '',
11
- ) {}
12
-
13
- static adapt(item?: any): any {
14
-
15
- if(!item?.table) return
16
-
17
- return new DatabaseStorage(
18
- item?.table,
19
- item?.expiresIn,
20
- )
21
-
22
- }
23
-
24
- }
@@ -1,12 +0,0 @@
1
- export * from './database-storage.model'
2
- export * from './retry-options.model'
3
-
4
- export * from './data-type.enum'
5
-
6
- export * from './config-token.model'
7
- export * from './config-http-options.model'
8
- export * from './config-local-storage-options.model'
9
- export * from './config-options.model'
10
-
11
- export * from '../http-request-services-demo/request-manager-ws-demo/models/user-data.model'
12
-
@@ -1,22 +0,0 @@
1
- export interface RetryOptionsInterface {
2
- times?: number // total request to be made including initial request
3
- delay?: number // seconds (<= 3 default 3 seconds)
4
- }
5
-
6
- export class RetryOptions implements RetryOptionsInterface {
7
-
8
- constructor(
9
- public times = 0,
10
- public delay = 3,
11
- ) {}
12
-
13
- static adapt(item?: any): RetryOptions {
14
-
15
- return new RetryOptions(
16
- item?.times,
17
- item?.delay
18
- )
19
-
20
- }
21
-
22
- }
@@ -1,262 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DbService } from './db.storage.service';
3
-
4
- import { TableSchemaDef } from './models/table-schema';
5
- import { EMPTY, from, Observable } from 'rxjs';
6
- import { map, switchMap } from 'rxjs/operators';
7
-
8
- @Injectable({
9
- providedIn: 'root'
10
- })
11
- export class DatabaseManagerService extends DbService {
12
-
13
- constructor() {
14
- super()
15
- }
16
-
17
- getDatabaseTables() {
18
- return from(this.DBOpened()).pipe(
19
- map(() => this.tables.map((item: any) => item.name))
20
- )
21
- }
22
-
23
- databaseExists(): Observable<boolean> {
24
- return from(this.hasDatabase());
25
- }
26
-
27
- hasDatabaseTable(table: string): Observable<boolean> {
28
- const tableName = this.cleanTableName(table);
29
- return from(this.DBOpened()).pipe(
30
- map(() => {
31
- return this.tableExists(tableName)
32
- })
33
- )
34
- }
35
-
36
- getDatabaseTable(table: string): Observable<any> {
37
- const tableName = this.cleanTableName(table);
38
- return from(this.DBOpened()).pipe(
39
- map(() => {
40
- const found = this.getTable(tableName);
41
- if(!found) {
42
- console.warn('No Such Table:', tableName)
43
- return null;
44
- }
45
- return found;
46
- })
47
- )
48
- }
49
-
50
- getDatabaseTableSchema(table: string): Observable<string[]> {
51
- const tableName = this.cleanTableName(table);
52
- return this.getDatabaseTable(tableName).pipe(
53
- map((dbTable: any) => {
54
- if(!dbTable) return []
55
- const cols = dbTable.schema.indexes.map((col: any) => col.name)
56
- const pri = dbTable.schema.primKey.name
57
- return [pri, ...cols]
58
- })
59
- )
60
- }
61
-
62
- createDatabaseTable(tableDef: TableSchemaDef) {
63
- return from(this.createTable(tableDef.table, tableDef.schema)).pipe(
64
- switchMap(() => this.DBOpened())
65
- )
66
- }
67
-
68
- updateDatabaseTableSchema(tableDef: TableSchemaDef) {
69
- return from(this.createTable(tableDef.table, tableDef.schema)).pipe(
70
- switchMap(() => this.getDatabaseTable(tableDef.table))
71
- )
72
- }
73
-
74
- // CRUD
75
- findTableRecords(table: string, column: string, value: any) {
76
- const tableName = this.cleanTableName(table);
77
- return this.getDatabaseTable(tableName).pipe(
78
- switchMap((tableData: any) => {
79
- if (!tableData) {
80
- console.warn(`findTableRecords: Table '${tableName}' not found`);
81
- return from([]);
82
- }
83
- return from(tableData.where(column).equals(value).toArray());
84
- })
85
- );
86
- }
87
-
88
- findTableRecord(table: string, column: string, value: any) {
89
- const tableName = this.cleanTableName(table);
90
- return this.findTableRecords(tableName, column, value).pipe(
91
- map((records: any) => records && records.length > 0 ? records[0] : null)
92
- );
93
- }
94
-
95
- getTableRecords(table: string) {
96
- const tableName = this.cleanTableName(table);
97
- return this.getDatabaseTable(tableName).pipe(
98
- switchMap((tableData: any) => {
99
- if (!tableData) {
100
- console.warn(`getTableRecords: Table '${tableName}' not found`);
101
- return from([]);
102
- }
103
- return from(tableData.toArray());
104
- })
105
- );
106
- }
107
-
108
- getTableRecord(table: string, id: number) {
109
- const tableName = this.cleanTableName(table);
110
- return this.getDatabaseTable(tableName).pipe(
111
- switchMap((tableData: any) => {
112
- if (!tableData) {
113
- console.warn(`getTableRecord: Table '${tableName}' not found`);
114
- return from([null]);
115
- }
116
- return from(tableData.get(id)).pipe(
117
- map((record: any) => record || null)
118
- );
119
- })
120
- );
121
- }
122
-
123
- createTableRecord(table: string, record: any) {
124
- const tableName = this.cleanTableName(table);
125
- return this.createTableRecords(tableName, [record])
126
- .pipe(
127
- map((item: any) => item ? item[0] : null))
128
- }
129
-
130
- createTableRecords(table: string, records: any[]) {
131
- const tableName = this.cleanTableName(table);
132
- return from(this.DBOpened()).pipe(
133
- switchMap(() => {
134
- if (!this.tables.some(t => t.name === tableName)) {
135
- console.error(`createTableRecords: Table '${tableName}' does not exist in DB version ${this.verno}. Available:`, this.tables.map(t => t.name));
136
- return EMPTY;
137
- }
138
-
139
- const tableInstance = this.table(tableName);
140
-
141
- // Extract schema fields directly from the table instance
142
- const schema = tableInstance.schema;
143
- const validFields = [
144
- schema.primKey.name,
145
- ...schema.indexes.map(idx => idx.name)
146
- ];
147
-
148
- const insertRecords = records.map((record: any) => {
149
- const objectFromSchema: { [key: string]: any } = {};
150
- validFields.forEach((field: string) => {
151
- if (field) {
152
- objectFromSchema[field] = (record as any)[field] ?? null;
153
- }
154
- });
155
- return objectFromSchema;
156
- });
157
-
158
- console.log(`createTableRecords: Bulk putting ${insertRecords.length} records into ${tableName}`);
159
-
160
- return from(tableInstance.bulkPut(insertRecords)).pipe(
161
- map(() => insertRecords)
162
- );
163
- })
164
- );
165
- }
166
-
167
- updateTableRecord(table: string, record: any) {
168
- const tableName = this.cleanTableName(table);
169
- return this.updateTableRecords(tableName, [record])
170
- .pipe(
171
- map(item => item.length > 0 ? item[0] : null)
172
- )
173
- }
174
-
175
- updateTableRecords(table: string, records: any[]) {
176
-
177
- const tableName = this.cleanTableName(table);
178
-
179
- return this.getDatabaseTable(tableName).pipe(
180
-
181
- switchMap((tableData: any) => {
182
-
183
- return this.getDatabaseTableSchema(tableName).pipe(
184
-
185
- switchMap((schema: string[]) => {
186
-
187
- const insertRecords = records.map((record: any) => {
188
-
189
- const objectFromSchema: { [key: string]: any } = {}
190
-
191
- schema.forEach((field: string) => {
192
- const data = (record as any)[field] ?? null
193
- objectFromSchema[field] = data
194
- })
195
-
196
- return objectFromSchema
197
-
198
- })
199
-
200
- return from(tableData.bulkPut(insertRecords)).pipe(
201
- map(() => insertRecords)
202
- );
203
-
204
- })
205
-
206
- )
207
-
208
- })
209
-
210
- )
211
-
212
- }
213
-
214
- deleteTableRecord<T>(table: string, id: number) {
215
- const tableName = this.cleanTableName(table);
216
- return this.deleteTableRecords(tableName, [id])
217
- .pipe(
218
- map(item => item.length > 0 ? item[0] : null)
219
- )
220
- }
221
-
222
- deleteTableRecords(table: string, ids: number[]) {
223
- const tableName = this.cleanTableName(table);
224
- return this.getDatabaseTable(tableName).pipe(
225
-
226
- switchMap((tableData: any) => {
227
-
228
- return this.getDatabaseTableSchema(tableName).pipe(
229
-
230
- switchMap((schema: string[]) => {
231
-
232
- console.log(`deleteTableRecords: Starting delete of ${ids.length} records from ${table}. IDs:`, ids);
233
-
234
- return from(tableData.bulkDelete(ids)).pipe(
235
- map(() => ids)
236
- );
237
-
238
- })
239
-
240
- )
241
-
242
- })
243
-
244
- )
245
-
246
- }
247
-
248
- clearTable(table: string) {
249
- const tableName = this.cleanTableName(table);
250
- return this.getDatabaseTable(tableName).pipe(
251
- switchMap((tableData: any) => {
252
- if (!tableData) {
253
- console.warn(`clearTable: Table '${tableName}' not found`);
254
- return from([]);
255
- }
256
- console.log(`clearTable: Clearing all records from ${tableName}`);
257
- return from(tableData.clear());
258
- })
259
- );
260
- }
261
-
262
- }