@neuralinnovations/dataisland-sdk 0.0.1-dev1 → 0.0.1-dev11

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 (276) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +174 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/package.json +98 -0
  8. package/dist/src/appBuilder.d.ts +44 -0
  9. package/dist/src/appBuilder.d.ts.map +1 -0
  10. package/dist/src/appBuilder.js +10 -0
  11. package/dist/src/appBuilder.js.map +1 -0
  12. package/dist/src/commands/startCommandHandler.d.ts +7 -0
  13. package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
  14. package/dist/src/commands/startCommandHandler.js +17 -0
  15. package/dist/src/commands/startCommandHandler.js.map +1 -0
  16. package/dist/src/context.d.ts +23 -0
  17. package/dist/src/context.d.ts.map +1 -0
  18. package/dist/src/context.js +31 -0
  19. package/dist/src/context.js.map +1 -0
  20. package/dist/src/credentials.d.ts +28 -0
  21. package/dist/src/credentials.d.ts.map +1 -0
  22. package/dist/src/credentials.js +70 -0
  23. package/dist/src/credentials.js.map +1 -0
  24. package/dist/src/dataIslandApp.d.ts +50 -0
  25. package/dist/src/dataIslandApp.d.ts.map +1 -0
  26. package/dist/src/dataIslandApp.js +10 -0
  27. package/dist/src/dataIslandApp.js.map +1 -0
  28. package/dist/src/disposable.d.ts +84 -0
  29. package/dist/src/disposable.d.ts.map +1 -0
  30. package/dist/src/disposable.js +140 -0
  31. package/dist/src/disposable.js.map +1 -0
  32. package/dist/src/dto/accessGroupResponse.d.ts +27 -0
  33. package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
  34. package/dist/src/dto/accessGroupResponse.js +3 -0
  35. package/dist/src/dto/accessGroupResponse.js.map +1 -0
  36. package/dist/src/dto/chatResponse.d.ts +78 -0
  37. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  38. package/dist/src/dto/chatResponse.js +45 -0
  39. package/dist/src/dto/chatResponse.js.map +1 -0
  40. package/dist/src/dto/userInfoResponse.d.ts +40 -0
  41. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  42. package/dist/src/dto/userInfoResponse.js +3 -0
  43. package/dist/src/dto/userInfoResponse.js.map +1 -0
  44. package/dist/src/dto/workspacesResponse.d.ts +43 -0
  45. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  46. package/dist/src/dto/workspacesResponse.js +3 -0
  47. package/dist/src/dto/workspacesResponse.js.map +1 -0
  48. package/dist/src/events.d.ts +17 -0
  49. package/dist/src/events.d.ts.map +1 -0
  50. package/dist/src/events.js +52 -0
  51. package/dist/src/events.js.map +1 -0
  52. package/dist/src/index.d.ts +56 -0
  53. package/dist/src/index.d.ts.map +1 -0
  54. package/dist/src/index.js +89 -0
  55. package/dist/src/index.js.map +1 -0
  56. package/dist/src/internal/app.impl.d.ts +28 -0
  57. package/dist/src/internal/app.impl.d.ts.map +1 -0
  58. package/dist/src/internal/app.impl.js +151 -0
  59. package/dist/src/internal/app.impl.js.map +1 -0
  60. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  61. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  62. package/dist/src/internal/appBuilder.impl.js +71 -0
  63. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  64. package/dist/src/internal/createApp.impl.d.ts +4 -0
  65. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  66. package/dist/src/internal/createApp.impl.js +11 -0
  67. package/dist/src/internal/createApp.impl.js.map +1 -0
  68. package/dist/src/internal/registry.d.ts +22 -0
  69. package/dist/src/internal/registry.d.ts.map +1 -0
  70. package/dist/src/internal/registry.js +69 -0
  71. package/dist/src/internal/registry.js.map +1 -0
  72. package/dist/src/middleware.d.ts +5 -0
  73. package/dist/src/middleware.d.ts.map +1 -0
  74. package/dist/src/middleware.js +3 -0
  75. package/dist/src/middleware.js.map +1 -0
  76. package/dist/src/services/commandService.d.ts +18 -0
  77. package/dist/src/services/commandService.d.ts.map +1 -0
  78. package/dist/src/services/commandService.js +40 -0
  79. package/dist/src/services/commandService.js.map +1 -0
  80. package/dist/src/services/credentialService.d.ts +9 -0
  81. package/dist/src/services/credentialService.d.ts.map +1 -0
  82. package/dist/src/services/credentialService.js +26 -0
  83. package/dist/src/services/credentialService.js.map +1 -0
  84. package/dist/src/services/middlewareService.d.ts +9 -0
  85. package/dist/src/services/middlewareService.d.ts.map +1 -0
  86. package/dist/src/services/middlewareService.js +34 -0
  87. package/dist/src/services/middlewareService.js.map +1 -0
  88. package/dist/src/services/organizationService.d.ts +10 -0
  89. package/dist/src/services/organizationService.d.ts.map +1 -0
  90. package/dist/src/services/organizationService.js +19 -0
  91. package/dist/src/services/organizationService.js.map +1 -0
  92. package/dist/src/services/requestBuilder.d.ts +17 -0
  93. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  94. package/dist/src/services/requestBuilder.js +104 -0
  95. package/dist/src/services/requestBuilder.js.map +1 -0
  96. package/dist/src/services/responseUtils.d.ts +6 -0
  97. package/dist/src/services/responseUtils.d.ts.map +1 -0
  98. package/dist/src/services/responseUtils.js +32 -0
  99. package/dist/src/services/responseUtils.js.map +1 -0
  100. package/dist/src/services/rpcService.d.ts +77 -0
  101. package/dist/src/services/rpcService.d.ts.map +1 -0
  102. package/dist/src/services/rpcService.js +125 -0
  103. package/dist/src/services/rpcService.js.map +1 -0
  104. package/dist/src/services/service.d.ts +21 -0
  105. package/dist/src/services/service.d.ts.map +1 -0
  106. package/dist/src/services/service.js +41 -0
  107. package/dist/src/services/service.js.map +1 -0
  108. package/dist/src/services/userProfileService.d.ts +8 -0
  109. package/dist/src/services/userProfileService.d.ts.map +1 -0
  110. package/dist/src/services/userProfileService.js +32 -0
  111. package/dist/src/services/userProfileService.js.map +1 -0
  112. package/dist/src/storages/chats/answer.d.ts +30 -0
  113. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  114. package/dist/src/storages/chats/answer.impl.d.ts +23 -0
  115. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  116. package/dist/src/storages/chats/answer.impl.js +110 -0
  117. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  118. package/dist/src/storages/chats/answer.js +7 -0
  119. package/dist/src/storages/chats/answer.js.map +1 -0
  120. package/dist/src/storages/chats/chat.d.ts +30 -0
  121. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  122. package/dist/src/storages/chats/chat.impl.d.ts +22 -0
  123. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  124. package/dist/src/storages/chats/chat.impl.js +67 -0
  125. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  126. package/dist/src/storages/chats/chat.js +12 -0
  127. package/dist/src/storages/chats/chat.js.map +1 -0
  128. package/dist/src/storages/chats/chats.d.ts +40 -0
  129. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  130. package/dist/src/storages/chats/chats.impl.d.ts +18 -0
  131. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  132. package/dist/src/storages/chats/chats.impl.js +102 -0
  133. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  134. package/dist/src/storages/chats/chats.js +16 -0
  135. package/dist/src/storages/chats/chats.js.map +1 -0
  136. package/dist/src/storages/files/file.d.ts +24 -0
  137. package/dist/src/storages/files/file.d.ts.map +1 -0
  138. package/dist/src/storages/files/file.impl.d.ts +18 -0
  139. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  140. package/dist/src/storages/files/file.impl.js +52 -0
  141. package/dist/src/storages/files/file.impl.js.map +1 -0
  142. package/dist/src/storages/files/file.js +10 -0
  143. package/dist/src/storages/files/file.js.map +1 -0
  144. package/dist/src/storages/files/files.d.ts +33 -0
  145. package/dist/src/storages/files/files.d.ts.map +1 -0
  146. package/dist/src/storages/files/files.impl.d.ts +33 -0
  147. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  148. package/dist/src/storages/files/files.impl.js +159 -0
  149. package/dist/src/storages/files/files.impl.js.map +1 -0
  150. package/dist/src/storages/files/files.js +19 -0
  151. package/dist/src/storages/files/files.js.map +1 -0
  152. package/dist/src/storages/files/filesPage.d.ts +23 -0
  153. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  154. package/dist/src/storages/files/filesPage.js +10 -0
  155. package/dist/src/storages/files/filesPage.js.map +1 -0
  156. package/dist/src/storages/groups/groups.d.ts +87 -0
  157. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  158. package/dist/src/storages/groups/groups.impl.d.ts +55 -0
  159. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  160. package/dist/src/storages/groups/groups.impl.js +245 -0
  161. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  162. package/dist/src/storages/groups/groups.js +26 -0
  163. package/dist/src/storages/groups/groups.js.map +1 -0
  164. package/dist/src/storages/organizations/organization.d.ts +38 -0
  165. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  166. package/dist/src/storages/organizations/organization.impl.d.ts +30 -0
  167. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  168. package/dist/src/storages/organizations/organization.impl.js +71 -0
  169. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  170. package/dist/src/storages/organizations/organization.js +10 -0
  171. package/dist/src/storages/organizations/organization.js.map +1 -0
  172. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  173. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  174. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  175. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  176. package/dist/src/storages/organizations/organizations.impl.js +151 -0
  177. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  178. package/dist/src/storages/organizations/organizations.js +20 -0
  179. package/dist/src/storages/organizations/organizations.js.map +1 -0
  180. package/dist/src/storages/user/userProfile.d.ts +32 -0
  181. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  182. package/dist/src/storages/user/userProfile.impl.d.ts +13 -0
  183. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  184. package/dist/src/storages/user/userProfile.impl.js +51 -0
  185. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  186. package/dist/src/storages/user/userProfile.js +12 -0
  187. package/dist/src/storages/user/userProfile.js.map +1 -0
  188. package/dist/src/storages/workspaces/workspace.d.ts +40 -0
  189. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  190. package/dist/src/storages/workspaces/workspace.impl.d.ts +22 -0
  191. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  192. package/dist/src/storages/workspaces/workspace.impl.js +87 -0
  193. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  194. package/dist/src/storages/workspaces/workspace.js +18 -0
  195. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  196. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  197. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  198. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  199. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  200. package/dist/src/storages/workspaces/workspaces.impl.js +157 -0
  201. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  202. package/dist/src/storages/workspaces/workspaces.js +19 -0
  203. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  204. package/dist/src/unitTest.d.ts +12 -0
  205. package/dist/src/unitTest.d.ts.map +1 -0
  206. package/dist/src/unitTest.js +44 -0
  207. package/dist/src/unitTest.js.map +1 -0
  208. package/index.d.ts +1 -0
  209. package/index.js +1 -0
  210. package/package.json +41 -3
  211. package/src/appBuilder.ts +24 -5
  212. package/src/commands/startCommandHandler.ts +14 -0
  213. package/src/context.ts +32 -0
  214. package/src/credentials.ts +31 -9
  215. package/src/dataIslandApp.ts +59 -0
  216. package/src/disposable.ts +4 -5
  217. package/src/dto/accessGroupResponse.ts +35 -0
  218. package/src/dto/chatResponse.ts +103 -0
  219. package/src/dto/userInfoResponse.ts +47 -0
  220. package/src/dto/workspacesResponse.ts +49 -0
  221. package/src/events.ts +13 -17
  222. package/src/index.ts +44 -18
  223. package/src/internal/app.impl.ts +97 -32
  224. package/src/internal/appBuilder.impl.ts +39 -12
  225. package/src/internal/createApp.impl.ts +5 -5
  226. package/src/middleware.ts +1 -1
  227. package/src/services/commandService.ts +44 -0
  228. package/src/services/credentialService.ts +3 -3
  229. package/src/services/middlewareService.ts +8 -6
  230. package/src/services/organizationService.ts +28 -0
  231. package/src/services/requestBuilder.ts +127 -0
  232. package/src/services/responseUtils.ts +32 -0
  233. package/src/services/rpcService.ts +129 -52
  234. package/src/services/service.ts +10 -8
  235. package/src/services/userProfileService.ts +38 -0
  236. package/src/storages/chats/answer.impl.ts +163 -0
  237. package/src/storages/chats/answer.ts +42 -0
  238. package/src/storages/chats/chat.impl.ts +87 -0
  239. package/src/storages/chats/chat.ts +38 -0
  240. package/src/storages/chats/chats.impl.ts +142 -0
  241. package/src/storages/chats/chats.ts +47 -0
  242. package/src/storages/files/file.impl.ts +69 -0
  243. package/src/storages/files/file.ts +28 -0
  244. package/src/storages/files/files.impl.ts +213 -0
  245. package/src/storages/files/files.ts +38 -0
  246. package/src/storages/files/filesPage.ts +27 -0
  247. package/src/storages/groups/groups.impl.ts +326 -0
  248. package/src/storages/groups/groups.ts +101 -0
  249. package/src/storages/organizations/organization.impl.ts +95 -0
  250. package/src/storages/organizations/organization.ts +44 -0
  251. package/src/storages/organizations/organizations.impl.ts +197 -0
  252. package/src/storages/organizations/organizations.ts +56 -0
  253. package/src/storages/user/userProfile.impl.ts +56 -0
  254. package/src/storages/user/userProfile.ts +42 -0
  255. package/src/storages/workspaces/workspace.impl.ts +109 -0
  256. package/src/storages/workspaces/workspace.ts +49 -0
  257. package/src/storages/workspaces/workspaces.impl.ts +212 -0
  258. package/src/storages/workspaces/workspaces.ts +53 -0
  259. package/src/unitTest.ts +53 -0
  260. package/.browserslistrc +0 -5
  261. package/.editorconfig +0 -22
  262. package/.eslintrc.json +0 -44
  263. package/.github/workflows/publish-npm.yml +0 -28
  264. package/.prettierignore +0 -1
  265. package/.prettierrc +0 -11
  266. package/.yarnrc +0 -2
  267. package/babel.config.js +0 -6
  268. package/jest.config.ts +0 -199
  269. package/src/appSdk.ts +0 -40
  270. package/src/internal/context.ts +0 -13
  271. package/src/types.ts +0 -110
  272. package/test/disposable.test.ts +0 -39
  273. package/test/events.test.ts +0 -151
  274. package/test/index.test.ts +0 -83
  275. package/test/registry.test.ts +0 -44
  276. package/tsconfig.json +0 -31
@@ -1,13 +0,0 @@
1
- import { type Constructor, type Registry } from './registry'
2
- import { type Lifetime } from '../disposable'
3
-
4
- export class Context {
5
- constructor(
6
- private readonly registry: Registry,
7
- public readonly lifetime: Lifetime
8
- ) {}
9
-
10
- resolve<T>(type: Constructor<T>): T | undefined {
11
- return this.registry.get(type)
12
- }
13
- }
package/src/types.ts DELETED
@@ -1,110 +0,0 @@
1
- import { type Events, type Event } from './events'
2
- import { type Disposable } from './disposable'
3
-
4
- export interface Collection<T> {
5
- get collection(): T[]
6
- }
7
-
8
- export type OrganizationId = string
9
- export type WorkspaceId = string
10
- export type ChatId = string
11
- export type FileId = string
12
-
13
- export enum OrganizationEvent {
14
- ADDED,
15
- REMOVED,
16
- UPDATED
17
- }
18
-
19
- export enum FileEvent {
20
- ADDED,
21
- REMOVED,
22
- UPDATED
23
- }
24
-
25
- export enum ChatEvent {
26
- ADDED,
27
- REMOVED,
28
- UPDATED
29
- }
30
-
31
- export enum ChatMessageEvent {
32
- ADDED,
33
- REMOVED,
34
- UPDATED
35
- }
36
-
37
- export interface File {
38
- id: FileId
39
- name: string
40
-
41
- download: () => Promise<void>
42
- }
43
-
44
- export interface Files {
45
- files: File[]
46
- on: (callback: (event: Event<FileEvent, File>) => void) => Disposable
47
- fetch: () => Promise<void>
48
- upload: (path: string, name: string) => Promise<File>
49
- }
50
-
51
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
52
- export interface ChatMessage {}
53
-
54
- export interface Chat {
55
- id: ChatId
56
- name: string
57
- on: (
58
- callback: (event: Event<ChatMessageEvent, ChatMessage>) => void
59
- ) => Disposable
60
- messages: ChatMessage[]
61
- fetch: () => Promise<void>
62
- subscribe: () => void
63
- unsubscribe: () => void
64
- }
65
-
66
- export interface Chats {
67
- chats: Chat[]
68
- newChat: (name: string) => Promise<Chat>
69
- on: (callback: (event: Event<ChatEvent, Chat>) => void) => Disposable
70
- fetch: () => Promise<void>
71
- }
72
-
73
- export interface Invites {
74
- invite: (email: string) => Promise<void>
75
- accept: (id: OrganizationId) => Promise<void>
76
- decline: (id: OrganizationId) => Promise<void>
77
- on: (
78
- callback: (organization: Event<OrganizationEvent, Organization>) => void
79
- ) => Disposable
80
- }
81
-
82
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
83
- export interface Statistics {}
84
-
85
- export interface Organization {
86
- name: string
87
- description: string
88
- id: OrganizationId
89
- chats: Chats
90
- files: Files
91
- invites: Invites
92
- statistics: Statistics
93
- workspaces: Workspaces
94
- }
95
-
96
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
97
- export interface Workspace {}
98
-
99
- export interface Workspaces {
100
- newWorkspace: (name: string) => Promise<Workspace>
101
-
102
- delete: (id: WorkspaceId) => Promise<void>
103
- }
104
-
105
- export interface Organizations
106
- extends Events<OrganizationEvent, Organization>,
107
- Collection<Organization> {
108
- create: (name: string) => Promise<Organization>
109
- delete: (id: OrganizationId) => Promise<void>
110
- }
@@ -1,39 +0,0 @@
1
- import { DisposableContainer } from '../src'
2
-
3
- test('DisposableContainer', () => {
4
- const disposable = new DisposableContainer()
5
- expect(disposable.isDisposed).toBe(false)
6
- expect(disposable.lifetime.isDisposed).toBe(false)
7
- disposable.dispose()
8
- expect(disposable.isDisposed).toBe(true)
9
- expect(disposable.lifetime.isDisposed).toBe(true)
10
- })
11
-
12
- test('DisposableContainer, dispose order', () => {
13
- const indexes: number[] = []
14
- const disposable = new DisposableContainer()
15
- disposable.addCallback(() => {
16
- indexes.push(1)
17
- })
18
-
19
- const nested = disposable.defineNested()
20
- nested.addCallback(() => {
21
- indexes.push(2)
22
- })
23
-
24
- nested.lifetime.addCallback(() => {
25
- indexes.push(3)
26
- })
27
-
28
- nested.lifetime.defineNested().addCallback(() => {
29
- indexes.push(4)
30
- })
31
-
32
- nested.lifetime.defineNested().addCallback(() => {
33
- indexes.push(5)
34
- })
35
-
36
- disposable.dispose()
37
-
38
- expect(indexes).toEqual([5, 4, 3, 2, 1])
39
- })
@@ -1,151 +0,0 @@
1
- import { EventDispatcher } from '../src'
2
-
3
- test('Events, test general', () => {
4
- enum ET {
5
- A,
6
- B
7
- }
8
-
9
- const dispatch = new EventDispatcher<ET, number>()
10
-
11
- let a1 = 0
12
- let a2 = 0
13
- let b1 = 0
14
- let b2 = 0
15
-
16
- const aDisposable1 = dispatch.subscribe((evt: { data: number }) => {
17
- a1 += evt.data
18
- }, ET.A)
19
- const aDisposable2 = dispatch.subscribe(evt => {
20
- if (evt.type === ET.A) a2 += evt.data
21
- })
22
- const bDisposable1 = dispatch.subscribe(evt => {
23
- b1 += evt.data
24
- }, ET.B)
25
- const bDisposable2 = dispatch.subscribe(evt => {
26
- if (evt.type === ET.B) b2 += evt.data
27
- })
28
-
29
- dispatch.dispatch({
30
- type: ET.A,
31
- data: 1
32
- })
33
-
34
- expect(a1).toBe(1)
35
- expect(a2).toBe(1)
36
- expect(b1).toBe(0)
37
- expect(b2).toBe(0)
38
-
39
- aDisposable1.dispose()
40
-
41
- dispatch.dispatch({
42
- type: ET.A,
43
- data: 2
44
- })
45
- dispatch.dispatch({
46
- type: ET.B,
47
- data: 3
48
- })
49
-
50
- expect(a1).toBe(1)
51
- expect(a2).toBe(3)
52
- expect(b1).toBe(3)
53
- expect(b2).toBe(3)
54
-
55
- aDisposable2.dispose()
56
-
57
- dispatch.dispatch({
58
- type: ET.A,
59
- data: 3
60
- })
61
-
62
- expect(a1).toBe(1)
63
- expect(a2).toBe(3)
64
- expect(b1).toBe(3)
65
- expect(b2).toBe(3)
66
-
67
- bDisposable1.dispose()
68
- bDisposable2.dispose()
69
-
70
- dispatch.dispatch({
71
- type: ET.B,
72
- data: 4
73
- })
74
-
75
- expect(a1).toBe(1)
76
- expect(a2).toBe(3)
77
- expect(b1).toBe(3)
78
- expect(b2).toBe(3)
79
- })
80
-
81
- test('Events, test this', () => {
82
- enum ET {
83
- A,
84
- B
85
- }
86
-
87
- const dispatch = new EventDispatcher<ET, number>()
88
-
89
- const a = {
90
- value: 0
91
- }
92
- const b = {
93
- value: 0
94
- }
95
-
96
- const aDisposable = dispatch.subscribe((evt: { data: number }) => {
97
- a.value += evt.data
98
- }, ET.A)
99
- const bDisposable = dispatch.subscribe((evt: { data: number }) => {
100
- b.value += evt.data
101
- }, ET.B)
102
-
103
- dispatch.dispatch({
104
- type: ET.A,
105
- data: 1
106
- })
107
- dispatch.dispatch({
108
- type: ET.B,
109
- data: 2
110
- })
111
-
112
- expect(a.value).toBe(1)
113
- expect(b.value).toBe(2)
114
-
115
- aDisposable.dispose()
116
- bDisposable.dispose()
117
-
118
- dispatch.dispatch({
119
- type: ET.A,
120
- data: 3
121
- })
122
- dispatch.dispatch({
123
- type: ET.B,
124
- data: 4
125
- })
126
-
127
- expect(a.value).toBe(1)
128
- expect(b.value).toBe(2)
129
- })
130
-
131
- test('Events, test unsubscribe', () => {
132
- const dispatch = new EventDispatcher<unknown, number>()
133
-
134
- let index = 0
135
-
136
- dispatch.subscribe(evt => {
137
- index += evt.data
138
- evt.unsubscribe()
139
- })
140
- dispatch.subscribe(evt => {
141
- index += evt.data
142
- })
143
-
144
- dispatch.dispatch({ data: 1 })
145
-
146
- expect(index).toBe(2)
147
-
148
- dispatch.dispatch({ data: 1 })
149
-
150
- expect(index).toBe(3)
151
- })
@@ -1,83 +0,0 @@
1
- import { version } from '../package.json'
2
- import {
3
- BasicCredential,
4
- appSdk,
5
- SDK_VERSION,
6
- DEFAULT_NAME,
7
- DEFAULT_HOST
8
- } from '../src'
9
- import { MiddlewareService } from '../src/services/middlewareService'
10
- import { CredentialService } from '../src/services/credentialService'
11
- import { RpcService, RpcServiceImpl } from '../src/services/rpcService'
12
- import { AppBuilder } from '../src/appBuilder'
13
-
14
- test('SDK_VERSION', () => {
15
- expect(SDK_VERSION).toBe(version)
16
- })
17
-
18
- test('Default SDK', async () => {
19
- // default
20
- const app = await appSdk()
21
- expect(app.name).toBe(DEFAULT_NAME)
22
- expect(app.host).toBe(DEFAULT_HOST)
23
- expect(app.automaticDataCollectionEnabled).toBe(true)
24
- })
25
-
26
- test('Custom SDK settings', async () => {
27
- const app = await appSdk('test', async (builder: AppBuilder) => {
28
- builder.useHost('https://test.com')
29
- builder.useAutomaticDataCollectionEnabled(false)
30
- builder.useCredential(new BasicCredential('email', 'password'))
31
- builder.addMiddleware(async (req, next) => {
32
- req.headers.set('X-Test', 'test')
33
- await next(req)
34
- })
35
- })
36
- expect(app.name).toBe('test')
37
- expect(app.host).toBe('https://test.com')
38
- expect(app.automaticDataCollectionEnabled).toBe(false)
39
- })
40
-
41
- test('SDK, services', async () => {
42
- const app = await appSdk('test')
43
- const middlewareService = app.resolve(MiddlewareService)
44
- expect(middlewareService).not.toBeUndefined()
45
- expect(app.resolve(MiddlewareService)).toBe(middlewareService)
46
- expect(app.resolve(CredentialService)).not.toBeUndefined()
47
- expect(app.resolve(RpcService)).not.toBeUndefined()
48
- expect(app.resolve(RpcService)).toBeInstanceOf(RpcServiceImpl)
49
- })
50
-
51
- test('SDK, middleware', async () => {
52
- const app = await appSdk('test')
53
- const middlewareService = app.resolve(MiddlewareService)
54
- expect(middlewareService).not.toBeUndefined()
55
- expect(app.resolve(MiddlewareService)).toBe(middlewareService)
56
- expect(app.resolve(CredentialService)).not.toBeUndefined()
57
-
58
- const response = await middlewareService?.process(
59
- new Request('http://localhost:8080'),
60
- async (req: Request): Promise<Response> => {
61
- const headerXTest = req.headers.get('Custom-Test-Header')
62
- expect(headerXTest).toBeNull()
63
- return new Response('', { status: 200 })
64
- }
65
- )
66
- expect(response).not.toBeUndefined()
67
- expect(response?.status).toBe(200)
68
-
69
- middlewareService?.useMiddleware(async (req, next) => {
70
- req.headers.set('X-Test', 'test-value')
71
- await next(req)
72
- })
73
-
74
- const response2 = await middlewareService?.process(
75
- new Request('https://localhost:8080'),
76
- async (req: Request): Promise<Response> => {
77
- expect(req.headers.get('X-Test')).toBe('test-value')
78
- return new Response('', { status: 400 })
79
- }
80
- )
81
- expect(response2).not.toBeUndefined()
82
- expect(response2?.status).toBe(400)
83
- })
@@ -1,44 +0,0 @@
1
- import { Registry } from '../src/internal/registry'
2
-
3
- class TestClass {
4
- constructor(public readonly value: string) {}
5
- }
6
-
7
- test('Registry, test factory', () => {
8
- const registry = new Registry()
9
-
10
- const item = new TestClass('test1')
11
- registry.map(TestClass).asValue(item)
12
- expect(registry.get(TestClass)).toBe(item)
13
-
14
- let index = 0
15
-
16
- registry.map(TestClass).asFactory(() => {
17
- index++
18
- return new TestClass(`test_${index}`)
19
- })
20
-
21
- expect(registry.get(TestClass)).toBeInstanceOf(TestClass)
22
- expect(registry.get(TestClass)).not.toBe(item)
23
- expect(registry.get(TestClass)).not.toBe(registry.get(TestClass))
24
-
25
- expect(registry.get(TestClass)?.value).toBe('test_5')
26
- })
27
-
28
- test('Registry, test value', () => {
29
- const registry = new Registry()
30
-
31
- const item = new TestClass('test1')
32
- registry.map(TestClass).asValue(item)
33
- expect(registry.get(TestClass)).toBeInstanceOf(TestClass)
34
- expect(registry.get(TestClass)).toBe(item)
35
- })
36
-
37
- test('Registry, test singleton', () => {
38
- const registry = new Registry()
39
-
40
- registry.map(TestClass).asSingleton(() => new TestClass('test1'))
41
- const singleton = registry.get(TestClass)
42
- expect(singleton).toBeInstanceOf(TestClass)
43
- expect(singleton).toBe(registry.get(TestClass))
44
- })
package/tsconfig.json DELETED
@@ -1,31 +0,0 @@
1
- {
2
- "compileOnSave": false,
3
- "compilerOptions": {
4
- "target": "ES2015",
5
- "module": "amd",
6
- "moduleResolution": "node",
7
- "typeRoots": [
8
- "node_modules/@types"
9
- ],
10
- "resolveJsonModule": true,
11
- "declaration": true,
12
- "sourceMap": true,
13
- "importHelpers": true,
14
- "esModuleInterop": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "strict": true,
17
- "skipLibCheck": true,
18
- "outDir": "dist",
19
- "outFile": "dist/dataisland-sdk.js",
20
- "rootDir": ".",
21
- "allowJs": true,
22
- "checkJs": true,
23
- "downlevelIteration": true
24
- },
25
- "exclude": [
26
- "dist/**/*"
27
- ],
28
- "include": [
29
- "src/**/*"
30
- ]
31
- }