@integration-app/react 0.3.8 → 0.3.9

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.
@@ -0,0 +1,60 @@
1
+ import {
2
+ ExternalEventSubscription,
3
+ ExternalEventSubscriptionAccessor,
4
+ } from '@integration-app/sdk'
5
+ import { useElement } from '../hooks/useElement'
6
+
7
+ export function useExternalEventSubscription(id: string | undefined) {
8
+ const {
9
+ item: externalEventSubscription,
10
+ accessor,
11
+ refresh,
12
+ ...rest
13
+ } = useElement<
14
+ ExternalEventSubscription,
15
+ undefined,
16
+ undefined,
17
+ ExternalEventSubscriptionAccessor
18
+ >(id, (integrationApp) =>
19
+ id ? integrationApp.externalEventSubscription(id) : undefined,
20
+ )
21
+
22
+ async function setup() {
23
+ await accessor?.setup()
24
+ await refresh()
25
+ }
26
+
27
+ async function subscribe() {
28
+ await accessor?.subscribe()
29
+ await refresh()
30
+ }
31
+
32
+ async function resubscribe() {
33
+ await accessor?.resubscribe()
34
+ await refresh()
35
+ }
36
+
37
+ async function unsubscribe() {
38
+ await accessor?.unsubscribe()
39
+ await refresh()
40
+ }
41
+
42
+ async function pullEvents() {
43
+ await accessor?.pullEvents()
44
+ await refresh()
45
+ }
46
+
47
+ return {
48
+ externalEventSubscription,
49
+ accessor,
50
+ refresh,
51
+
52
+ setup,
53
+ subscribe,
54
+ resubscribe,
55
+ unsubscribe,
56
+ pullEvents,
57
+
58
+ ...rest,
59
+ }
60
+ }
@@ -0,0 +1,19 @@
1
+ import {
2
+ FindExternalEventSubscriptionsQuery,
3
+ DataSourceInstance,
4
+ } from '@integration-app/sdk'
5
+ import { useElements } from '../hooks/useElements'
6
+
7
+ export function useExternalEventSubscriptions(
8
+ query?: FindExternalEventSubscriptionsQuery,
9
+ ) {
10
+ const { ...rest } = useElements<DataSourceInstance>(
11
+ 'external-event-subscriptions',
12
+ query,
13
+ )
14
+
15
+ return {
16
+ externalEventSubscriptions: rest.items,
17
+ ...rest,
18
+ }
19
+ }
@@ -27,9 +27,7 @@ export function useFieldMapping(
27
27
  async function apply(integrationKeys: string[]): Promise<FieldMapping[]> {
28
28
  const result = await accessor?.apply(integrationKeys)
29
29
  await refresh()
30
- /* FIXME: strictNullCheck temporary fix */
31
- // @ts-expect-error TS(2322): Type 'FieldMapping[] | undefined' is not assignabl... Remove this comment to see the full error message
32
- return result
30
+ return result ?? []
33
31
  }
34
32
 
35
33
  async function reset() {
@@ -43,7 +43,7 @@ export function useElement<
43
43
  // To make sure all instances of useElement with the same IntegrationAppClient and selector
44
44
  // are synchronized, we cache them using selector and token as a key
45
45
  const elementKeyData: any = {
46
- token: integrationApp.token,
46
+ token: integrationApp?.token,
47
47
  selector,
48
48
  }
49
49
  const elementKey = JSON.stringify(elementKeyData)
package/src/index.tsx CHANGED
@@ -14,7 +14,6 @@ export { useFieldMappingInstances } from './field-mappings/useFieldMappingInstan
14
14
  export { useFieldMappings } from './field-mappings/useFieldMappings.js'
15
15
 
16
16
  export { useDataSource } from './data-sources/useDataSource.js'
17
- export { useDataSourceEvents } from './data-sources/useDataSourceEvents.js'
18
17
  export { useDataSourceInstance } from './data-sources/useDataSourceInstance.js'
19
18
  export { useDataSourceInstanceCollection } from './data-sources/useDataSourceInstanceCollection.js'
20
19
  export { useDataSourceInstances } from './data-sources/useDataSourceInstances.js'
@@ -60,4 +59,7 @@ export { useScenarios } from './scenarios/useScenarios.js'
60
59
 
61
60
  export { useDataCollectionSpec } from './data-collections/useDataCollectionSpec.js'
62
61
 
62
+ export { useExternalEventSubscriptions } from './external-events/useExternalEventSubscriptions.js'
63
+ export { useExternalEventSubscription } from './external-events/useExternalEventSubscription.js'
64
+
63
65
  export { DataForm } from '@integration-app/sdk'
@@ -6,13 +6,13 @@ import {
6
6
  } from '@integration-app/sdk'
7
7
  import { useElement } from '../hooks/useElement'
8
8
 
9
- export function useConnection(id: string) {
9
+ export function useConnection(id?: string | undefined) {
10
10
  const { item: connection, ...rest } = useElement<
11
11
  Connection,
12
12
  UpdateConnectionRequest,
13
13
  CreateConnectionRequest,
14
14
  ConnectionAccessor
15
- >(id, (integrationApp) => integrationApp.connection(id))
15
+ >(id, (integrationApp) => (id ? integrationApp.connection(id) : undefined))
16
16
 
17
17
  return {
18
18
  connection,
@@ -1,14 +0,0 @@
1
- import {
2
- DataSourceEvent,
3
- FindDataSourceEventsQuery,
4
- } from '@integration-app/sdk'
5
- import { useElements } from '../hooks/useElements'
6
-
7
- export function useDataSourceEvents(query?: FindDataSourceEventsQuery) {
8
- const { ...rest } = useElements<DataSourceEvent>('data-source-events', query)
9
-
10
- return {
11
- dataSourceEvents: rest,
12
- ...rest,
13
- }
14
- }