aidbox-react 1.5.0 → 1.7.0
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.
- package/dist/cjs/components/RenderRemoteData/index.d.ts +15 -0
- package/dist/cjs/hooks/bus.d.ts +17 -0
- package/dist/cjs/hooks/crud.d.ts +7 -0
- package/dist/cjs/hooks/pager.d.ts +13 -0
- package/dist/cjs/hooks/service.d.ts +8 -0
- package/dist/cjs/hooks/shared-state.d.ts +9 -0
- package/dist/cjs/index.d.ts +16 -0
- package/dist/cjs/index.js +3317 -0
- package/dist/cjs/libs/remoteData.d.ts +35 -0
- package/dist/cjs/services/fhir.d.ts +44 -0
- package/dist/cjs/services/instance.d.ts +6 -0
- package/dist/cjs/services/search.d.ts +4 -0
- package/dist/cjs/services/service.d.ts +33 -0
- package/dist/cjs/services/token.d.ts +4 -0
- package/dist/cjs/utils/date.d.ts +14 -0
- package/dist/cjs/utils/error.d.ts +30 -0
- package/dist/cjs/utils/tests.d.ts +10 -0
- package/dist/cjs/utils/uuid.d.ts +1 -0
- package/dist/esm/components/RenderRemoteData/index.d.ts +15 -0
- package/dist/esm/hooks/bus.d.ts +17 -0
- package/dist/esm/hooks/crud.d.ts +7 -0
- package/dist/esm/hooks/pager.d.ts +13 -0
- package/dist/esm/hooks/service.d.ts +8 -0
- package/dist/esm/hooks/shared-state.d.ts +9 -0
- package/dist/esm/index.d.ts +16 -0
- package/dist/esm/index.js +3226 -0
- package/dist/esm/libs/remoteData.d.ts +35 -0
- package/dist/esm/services/fhir.d.ts +44 -0
- package/dist/esm/services/instance.d.ts +6 -0
- package/dist/esm/services/search.d.ts +4 -0
- package/dist/esm/services/service.d.ts +33 -0
- package/dist/esm/services/token.d.ts +4 -0
- package/dist/esm/utils/date.d.ts +14 -0
- package/dist/esm/utils/error.d.ts +30 -0
- package/dist/esm/utils/tests.d.ts +10 -0
- package/dist/esm/utils/uuid.d.ts +1 -0
- package/dist/index.d.ts +248 -0
- package/lib/components/RenderRemoteData/index.d.ts +1 -1
- package/lib/components/RenderRemoteData/index.js +5 -5
- package/lib/components/RenderRemoteData/index.js.map +1 -1
- package/lib/hooks/bus.d.ts +5 -5
- package/lib/hooks/bus.js +1 -1
- package/lib/hooks/bus.js.map +1 -1
- package/lib/hooks/crud.js +14 -14
- package/lib/hooks/crud.js.map +1 -1
- package/lib/hooks/pager.d.ts +4 -0
- package/lib/hooks/pager.js +21 -12
- package/lib/hooks/pager.js.map +1 -1
- package/lib/hooks/service.js +15 -15
- package/lib/hooks/service.js.map +1 -1
- package/lib/hooks/shared-state.js +3 -3
- package/lib/hooks/shared-state.js.map +1 -1
- package/lib/index.d.ts +16 -0
- package/lib/index.js +20 -0
- package/lib/index.js.map +1 -0
- package/lib/libs/remoteData.d.ts +2 -2
- package/lib/services/fhir.d.ts +3 -3
- package/lib/services/fhir.js +38 -38
- package/lib/services/fhir.js.map +1 -1
- package/lib/services/instance.js +1 -1
- package/lib/services/instance.js.map +1 -1
- package/lib/services/search.d.ts +1 -1
- package/lib/services/service.d.ts +4 -4
- package/lib/services/service.js +13 -13
- package/lib/services/service.js.map +1 -1
- package/lib/utils/date.js +9 -9
- package/lib/utils/date.js.map +1 -1
- package/lib/utils/error.js +1 -1
- package/lib/utils/error.js.map +1 -1
- package/lib/utils/tests.d.ts +1 -1
- package/lib/utils/tests.js +7 -7
- package/lib/utils/tests.js.map +1 -1
- package/package.json +18 -7
- package/src/hooks/pager.ts +37 -12
- package/src/index.ts +20 -0
- package/CHANGELOG.md +0 -28
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare enum Status {
|
|
2
|
+
Success = "Success",
|
|
3
|
+
Failure = "Failure",
|
|
4
|
+
Loading = "Loading",
|
|
5
|
+
NotAsked = "NotAsked"
|
|
6
|
+
}
|
|
7
|
+
interface RemoteDataNotAsked {
|
|
8
|
+
status: Status.NotAsked;
|
|
9
|
+
}
|
|
10
|
+
export declare const notAsked: RemoteDataNotAsked;
|
|
11
|
+
interface RemoteDataLoading {
|
|
12
|
+
status: Status.Loading;
|
|
13
|
+
}
|
|
14
|
+
export declare const loading: RemoteDataLoading;
|
|
15
|
+
interface RemoteDataSuccess<s> {
|
|
16
|
+
status: Status.Success;
|
|
17
|
+
data: s;
|
|
18
|
+
}
|
|
19
|
+
export declare function success<S = any>(data: S): RemoteDataSuccess<S>;
|
|
20
|
+
interface RemoteDataFailure<F> {
|
|
21
|
+
status: Status.Failure;
|
|
22
|
+
error: F;
|
|
23
|
+
}
|
|
24
|
+
export declare function failure<F = any>(error: F): RemoteDataFailure<F>;
|
|
25
|
+
export type RemoteDataResult<S = any, F = any> = RemoteDataSuccess<S> | RemoteDataFailure<F>;
|
|
26
|
+
export type RemoteData<S = any, F = any> = RemoteDataNotAsked | RemoteDataLoading | RemoteDataResult<S, F>;
|
|
27
|
+
export declare function isNotAsked(remoteData: RemoteData): remoteData is RemoteDataNotAsked;
|
|
28
|
+
export declare function isLoading(remoteData: RemoteData): remoteData is RemoteDataLoading;
|
|
29
|
+
export declare function isSuccess<S>(remoteData: RemoteData<S>): remoteData is RemoteDataSuccess<S>;
|
|
30
|
+
export declare function isSuccessAll<S>(responses: Array<RemoteData<S>>): responses is Array<RemoteDataSuccess<S>>;
|
|
31
|
+
export declare function isFailure<F>(remoteData: RemoteData<any, F>): remoteData is RemoteDataFailure<F>;
|
|
32
|
+
export declare function isFailureAny<F>(responses: Array<RemoteData<any, F>>): responses is Array<RemoteDataFailure<F>>;
|
|
33
|
+
export declare function isLoadingAny(responses: Array<RemoteData>): responses is Array<RemoteDataLoading>;
|
|
34
|
+
export declare function isNotAskedAny(responses: Array<RemoteData>): responses is Array<RemoteDataNotAsked>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { AidboxReference, AidboxResource, ValueSet, Bundle, BundleEntry, id } from 'shared/src/contrib/aidbox';
|
|
3
|
+
import { RemoteDataResult } from '../libs/remoteData';
|
|
4
|
+
import { SearchParams } from './search';
|
|
5
|
+
export type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
|
|
6
|
+
export declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
7
|
+
export declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
|
|
8
|
+
export declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
9
|
+
export declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
|
|
10
|
+
export declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
11
|
+
export declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
|
|
12
|
+
export declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
13
|
+
export declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
14
|
+
export declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
|
|
15
|
+
export declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
|
|
16
|
+
export declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
|
|
17
|
+
export declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
|
|
18
|
+
export declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
19
|
+
type NullableRecursivePartial<T> = {
|
|
20
|
+
[P in keyof T]?: NullableRecursivePartial<T[P]> | null;
|
|
21
|
+
};
|
|
22
|
+
export declare function patchFHIRResource<R extends AidboxResource>(resource: NullableRecursivePartial<R> & Required<Pick<R, 'id' | 'resourceType'>>, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
23
|
+
export declare function patch<R extends AidboxResource>(resource: NullableRecursivePartial<R> & Required<Pick<R, 'resourceType'>>, searchParams?: SearchParams): AxiosRequestConfig;
|
|
24
|
+
export declare function deleteFHIRResource<R extends AidboxResource>(resource: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
25
|
+
export declare function markAsDeleted<R extends AidboxResource>(resource: AidboxReference<R>): AxiosRequestConfig;
|
|
26
|
+
export declare function forceDeleteFHIRResource<R extends AidboxResource>(resource: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
27
|
+
export declare function forceDelete<R extends AidboxResource>(resourceType: R['resourceType'], idOrSearchParams: id | SearchParams): AxiosRequestConfig;
|
|
28
|
+
export declare function getReference<T extends AidboxResource>(resource: T, display?: string): AidboxReference<T>;
|
|
29
|
+
export declare function makeReference<T extends AidboxResource>(resourceType: string, id: string, display?: string): AidboxReference<T>;
|
|
30
|
+
export declare function isReference<T extends AidboxResource>(resource: T | AidboxReference<T>): resource is AidboxReference<T>;
|
|
31
|
+
export type ResourcesMap<T extends AidboxResource> = {
|
|
32
|
+
[P in T['resourceType']]: T extends {
|
|
33
|
+
resourceType: P;
|
|
34
|
+
} ? T[] : never;
|
|
35
|
+
};
|
|
36
|
+
export declare function extractBundleResources<T extends AidboxResource>(bundle: Bundle<T>): ResourcesMap<T>;
|
|
37
|
+
export declare function getIncludedResource<T extends AidboxResource>(resources: ResourcesMap<T | any>, reference: AidboxReference<T>): T | undefined;
|
|
38
|
+
export declare function getIncludedResources<T extends AidboxResource>(resources: ResourcesMap<T | any>, resourceType: T['resourceType']): T[];
|
|
39
|
+
export declare function getMainResources<T extends AidboxResource>(bundle: Bundle<T>, resourceType: T['resourceType']): T[];
|
|
40
|
+
export declare function getConcepts(valueSetId: string, params?: SearchParams): Promise<RemoteDataResult<ValueSet>>;
|
|
41
|
+
export declare function applyFHIRService<T extends AidboxResource, F = any>(request: AxiosRequestConfig): Promise<RemoteDataResult<WithId<T>, F>>;
|
|
42
|
+
export declare function transformToBundleEntry<R extends AidboxResource>(config: AxiosRequestConfig): BundleEntry<R> | null;
|
|
43
|
+
export declare function applyFHIRServices<T extends AidboxResource, F = any>(requests: Array<AxiosRequestConfig>, type?: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<T>>, F>>;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Token } from './token';
|
|
2
|
+
export declare function buildQueryParams(params: Record<string, any>): string;
|
|
3
|
+
export declare const axiosInstance: import("axios").AxiosInstance;
|
|
4
|
+
export declare function setInstanceBaseURL(baseURL: string): void;
|
|
5
|
+
export declare function setInstanceToken(token: Token): void;
|
|
6
|
+
export declare function resetInstanceToken(): void;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { RemoteDataResult, RemoteData } from '../libs/remoteData';
|
|
3
|
+
export declare function service<S = any, F = any>(config: AxiosRequestConfig): Promise<RemoteDataResult<S, F>>;
|
|
4
|
+
export declare function applyDataTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteDataResult<S, F>>, transformer: (data: S) => R): Promise<RemoteDataResult<R, F>>;
|
|
5
|
+
export declare function applyDataTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteData<S, F>>, transformer: (data: S) => R): Promise<RemoteData<R, F>>;
|
|
6
|
+
export declare function applyErrorTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteDataResult<S, F>>, transformer: (error: F) => R): Promise<RemoteDataResult<S, R>>;
|
|
7
|
+
export declare function applyErrorTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteData<S, F>>, transformer: (error: F) => R): Promise<RemoteData<S, R>>;
|
|
8
|
+
export declare function mapSuccess<S = any, F = any, R = any>(remoteData: RemoteDataResult<S, F>, transformer: (data: S) => R): RemoteDataResult<R, F>;
|
|
9
|
+
export declare function mapSuccess<S = any, F = any, R = any>(remoteData: RemoteData<S, F>, transformer: (data: S) => R): RemoteData<R, F>;
|
|
10
|
+
export declare function mapFailure<S = any, F = any, R = any>(remoteData: RemoteDataResult<S, F>, transformer: (error: F) => R): RemoteDataResult<S, R>;
|
|
11
|
+
export declare function mapFailure<S = any, F = any, R = any>(remoteData: RemoteData<S, F>, transformer: (error: F) => R): RemoteData<S, R>;
|
|
12
|
+
export type PromiseRemoteDataResultMap<T, F> = {
|
|
13
|
+
[P in keyof T]: Promise<RemoteDataResult<T[P], F>>;
|
|
14
|
+
};
|
|
15
|
+
export type RemoteDataResultMap<T, F> = {
|
|
16
|
+
[P in keyof T]: RemoteDataResult<T[P], F>;
|
|
17
|
+
};
|
|
18
|
+
export type PromiseRemoteDataMap<T, F> = {
|
|
19
|
+
[P in keyof T]: Promise<RemoteData<T[P], F>>;
|
|
20
|
+
};
|
|
21
|
+
export type RemoteDataMap<T, F> = {
|
|
22
|
+
[P in keyof T]: RemoteData<T[P], F>;
|
|
23
|
+
};
|
|
24
|
+
export declare function sequenceArray<T, F>(remoteDataArray: Array<RemoteDataResult<T, F>>): RemoteDataResult<T[], F[]>;
|
|
25
|
+
export declare function sequenceArray<T, F>(remoteDataArray: Array<RemoteData<T, F>>): RemoteData<T[], F[]>;
|
|
26
|
+
export declare function sequenceMap<I, F>(remoteDataMap: RemoteDataResultMap<I, F>): RemoteDataResult<I, F[]>;
|
|
27
|
+
export declare function sequenceMap<I, F>(remoteDataMap: RemoteDataMap<I, F>): RemoteData<I, F[]>;
|
|
28
|
+
export declare function resolveArray<T, F>(promiseArray: Array<Promise<RemoteDataResult<T, F>>>): Promise<RemoteDataResult<T[], F[]>>;
|
|
29
|
+
export declare function resolveArray<T, F>(promiseArray: Array<Promise<RemoteData<T, F>>>): Promise<RemoteData<T[], F[]>>;
|
|
30
|
+
export declare function resolveMap<I, F>(promiseMap: PromiseRemoteDataResultMap<I, F>): Promise<RemoteDataResult<I, F[]>>;
|
|
31
|
+
export declare function resolveMap<I, F>(promiseMap: PromiseRemoteDataMap<I, F>): Promise<RemoteData<I, F[]>>;
|
|
32
|
+
export declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataResultMap<I, F>): Promise<RemoteDataResult<I, F[]>>;
|
|
33
|
+
export declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataMap<I, F>): Promise<RemoteData<I, F[]>>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
export declare const FHIRDateFormat = "YYYY-MM-DD";
|
|
3
|
+
export declare const FHIRTimeFormat = "HH:mm:ss";
|
|
4
|
+
export declare const FHIRDateTimeFormat = "YYYY-MM-DDTHH:mm:ss[Z]";
|
|
5
|
+
export declare const formatFHIRTime: (date: Date | moment.Moment) => string;
|
|
6
|
+
export declare const formatFHIRDate: (date: Date | moment.Moment) => string;
|
|
7
|
+
export declare const formatFHIRDateTime: (date: Date | moment.Moment) => string;
|
|
8
|
+
export declare const parseFHIRTime: (date: string) => moment.Moment;
|
|
9
|
+
export declare const parseFHIRDate: (date: string) => moment.Moment;
|
|
10
|
+
export declare const parseFHIRDateTime: (date: string) => moment.Moment;
|
|
11
|
+
export declare const makeFHIRDateTime: (date: string, time?: string) => string;
|
|
12
|
+
export declare const extractFHIRDate: (date: string) => string;
|
|
13
|
+
export declare const extractFHIRTime: (date: string) => string;
|
|
14
|
+
export declare const isFHIRDateEqual: (date1: string, date2: string) => boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { OperationOutcome } from 'shared/src/contrib/aidbox';
|
|
2
|
+
interface BackendError {
|
|
3
|
+
error: string;
|
|
4
|
+
error_description: string;
|
|
5
|
+
}
|
|
6
|
+
interface ErrorMapping {
|
|
7
|
+
[code: string]: string;
|
|
8
|
+
}
|
|
9
|
+
interface FormatErrorConfig {
|
|
10
|
+
mapping?: ErrorMapping;
|
|
11
|
+
format?: (errorCode: string, errorDescription: string) => string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns formatted error (when you need to display human-friendly error message)
|
|
15
|
+
*
|
|
16
|
+
* formatError(
|
|
17
|
+
* error,
|
|
18
|
+
* {
|
|
19
|
+
* mapping: {'conflict': 'Please reload page'},
|
|
20
|
+
* format: (errorCode, errorDescription) =>
|
|
21
|
+
* `An error occurred: ${errorDescription} (${errorCode}). Please reach tech support`
|
|
22
|
+
* }
|
|
23
|
+
* )
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatError(error: any, config?: FormatErrorConfig): any;
|
|
26
|
+
export declare function extractErrorDescription(error: any): any;
|
|
27
|
+
export declare function extractErrorCode(error: any): string;
|
|
28
|
+
export declare function isOperationOutcome(error: any): error is OperationOutcome;
|
|
29
|
+
export declare function isBackendError(error: any): error is BackendError;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { User } from 'shared/src/contrib/aidbox';
|
|
2
|
+
import { RemoteData } from '../libs/remoteData';
|
|
3
|
+
import { Token } from '../services/token';
|
|
4
|
+
export type LoginService = (user: User) => Promise<RemoteData<Token>>;
|
|
5
|
+
export declare function withRootAccess<R>(fn: () => Promise<R>): Promise<R>;
|
|
6
|
+
export declare function ensure<R>(result: RemoteData<R>): R;
|
|
7
|
+
export declare function investigate<R = any>(result: RemoteData<unknown, R>): R;
|
|
8
|
+
export declare function getToken(user: User, loginService: LoginService): Promise<Token>;
|
|
9
|
+
export declare function login(user: User, loginService: LoginService): Promise<Token>;
|
|
10
|
+
export declare function getUserInfo(): Promise<User>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function uuid4(): string;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import * as axios from 'axios';
|
|
2
|
+
import { AxiosRequestConfig } from 'axios';
|
|
3
|
+
import { AidboxResource, AidboxReference, Bundle, id, ValueSet, BundleEntry, OperationOutcome, User } from 'shared/src/contrib/aidbox';
|
|
4
|
+
import moment from 'moment';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
7
|
+
declare enum Status {
|
|
8
|
+
Success = "Success",
|
|
9
|
+
Failure = "Failure",
|
|
10
|
+
Loading = "Loading",
|
|
11
|
+
NotAsked = "NotAsked"
|
|
12
|
+
}
|
|
13
|
+
interface RemoteDataNotAsked {
|
|
14
|
+
status: Status.NotAsked;
|
|
15
|
+
}
|
|
16
|
+
declare const notAsked: RemoteDataNotAsked;
|
|
17
|
+
interface RemoteDataLoading {
|
|
18
|
+
status: Status.Loading;
|
|
19
|
+
}
|
|
20
|
+
declare const loading: RemoteDataLoading;
|
|
21
|
+
interface RemoteDataSuccess<s> {
|
|
22
|
+
status: Status.Success;
|
|
23
|
+
data: s;
|
|
24
|
+
}
|
|
25
|
+
declare function success<S = any>(data: S): RemoteDataSuccess<S>;
|
|
26
|
+
interface RemoteDataFailure<F> {
|
|
27
|
+
status: Status.Failure;
|
|
28
|
+
error: F;
|
|
29
|
+
}
|
|
30
|
+
declare function failure<F = any>(error: F): RemoteDataFailure<F>;
|
|
31
|
+
type RemoteDataResult<S = any, F = any> = RemoteDataSuccess<S> | RemoteDataFailure<F>;
|
|
32
|
+
type RemoteData<S = any, F = any> = RemoteDataNotAsked | RemoteDataLoading | RemoteDataResult<S, F>;
|
|
33
|
+
declare function isNotAsked(remoteData: RemoteData): remoteData is RemoteDataNotAsked;
|
|
34
|
+
declare function isLoading(remoteData: RemoteData): remoteData is RemoteDataLoading;
|
|
35
|
+
declare function isSuccess<S>(remoteData: RemoteData<S>): remoteData is RemoteDataSuccess<S>;
|
|
36
|
+
declare function isSuccessAll<S>(responses: Array<RemoteData<S>>): responses is Array<RemoteDataSuccess<S>>;
|
|
37
|
+
declare function isFailure<F>(remoteData: RemoteData<any, F>): remoteData is RemoteDataFailure<F>;
|
|
38
|
+
declare function isFailureAny<F>(responses: Array<RemoteData<any, F>>): responses is Array<RemoteDataFailure<F>>;
|
|
39
|
+
declare function isLoadingAny(responses: Array<RemoteData>): responses is Array<RemoteDataLoading>;
|
|
40
|
+
declare function isNotAskedAny(responses: Array<RemoteData>): responses is Array<RemoteDataNotAsked>;
|
|
41
|
+
|
|
42
|
+
interface Token {
|
|
43
|
+
access_token: string;
|
|
44
|
+
token_type: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
declare function buildQueryParams(params: Record<string, any>): string;
|
|
48
|
+
declare const axiosInstance: axios.AxiosInstance;
|
|
49
|
+
declare function setInstanceBaseURL(baseURL: string): void;
|
|
50
|
+
declare function setInstanceToken(token: Token): void;
|
|
51
|
+
declare function resetInstanceToken(): void;
|
|
52
|
+
|
|
53
|
+
type SearchParam<T> = T | T[] | undefined;
|
|
54
|
+
interface SearchParams {
|
|
55
|
+
[key: string]: SearchParam<string | number | boolean>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
declare function service<S = any, F = any>(config: AxiosRequestConfig): Promise<RemoteDataResult<S, F>>;
|
|
59
|
+
declare function applyDataTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteDataResult<S, F>>, transformer: (data: S) => R): Promise<RemoteDataResult<R, F>>;
|
|
60
|
+
declare function applyDataTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteData<S, F>>, transformer: (data: S) => R): Promise<RemoteData<R, F>>;
|
|
61
|
+
declare function applyErrorTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteDataResult<S, F>>, transformer: (error: F) => R): Promise<RemoteDataResult<S, R>>;
|
|
62
|
+
declare function applyErrorTransformer<S = any, F = any, R = any>(servicePromise: Promise<RemoteData<S, F>>, transformer: (error: F) => R): Promise<RemoteData<S, R>>;
|
|
63
|
+
declare function mapSuccess<S = any, F = any, R = any>(remoteData: RemoteDataResult<S, F>, transformer: (data: S) => R): RemoteDataResult<R, F>;
|
|
64
|
+
declare function mapSuccess<S = any, F = any, R = any>(remoteData: RemoteData<S, F>, transformer: (data: S) => R): RemoteData<R, F>;
|
|
65
|
+
declare function mapFailure<S = any, F = any, R = any>(remoteData: RemoteDataResult<S, F>, transformer: (error: F) => R): RemoteDataResult<S, R>;
|
|
66
|
+
declare function mapFailure<S = any, F = any, R = any>(remoteData: RemoteData<S, F>, transformer: (error: F) => R): RemoteData<S, R>;
|
|
67
|
+
type PromiseRemoteDataResultMap<T, F> = {
|
|
68
|
+
[P in keyof T]: Promise<RemoteDataResult<T[P], F>>;
|
|
69
|
+
};
|
|
70
|
+
type RemoteDataResultMap<T, F> = {
|
|
71
|
+
[P in keyof T]: RemoteDataResult<T[P], F>;
|
|
72
|
+
};
|
|
73
|
+
type PromiseRemoteDataMap<T, F> = {
|
|
74
|
+
[P in keyof T]: Promise<RemoteData<T[P], F>>;
|
|
75
|
+
};
|
|
76
|
+
type RemoteDataMap<T, F> = {
|
|
77
|
+
[P in keyof T]: RemoteData<T[P], F>;
|
|
78
|
+
};
|
|
79
|
+
declare function sequenceArray<T, F>(remoteDataArray: Array<RemoteDataResult<T, F>>): RemoteDataResult<T[], F[]>;
|
|
80
|
+
declare function sequenceArray<T, F>(remoteDataArray: Array<RemoteData<T, F>>): RemoteData<T[], F[]>;
|
|
81
|
+
declare function sequenceMap<I, F>(remoteDataMap: RemoteDataResultMap<I, F>): RemoteDataResult<I, F[]>;
|
|
82
|
+
declare function sequenceMap<I, F>(remoteDataMap: RemoteDataMap<I, F>): RemoteData<I, F[]>;
|
|
83
|
+
declare function resolveArray<T, F>(promiseArray: Array<Promise<RemoteDataResult<T, F>>>): Promise<RemoteDataResult<T[], F[]>>;
|
|
84
|
+
declare function resolveArray<T, F>(promiseArray: Array<Promise<RemoteData<T, F>>>): Promise<RemoteData<T[], F[]>>;
|
|
85
|
+
declare function resolveMap<I, F>(promiseMap: PromiseRemoteDataResultMap<I, F>): Promise<RemoteDataResult<I, F[]>>;
|
|
86
|
+
declare function resolveMap<I, F>(promiseMap: PromiseRemoteDataMap<I, F>): Promise<RemoteData<I, F[]>>;
|
|
87
|
+
declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataResultMap<I, F>): Promise<RemoteDataResult<I, F[]>>;
|
|
88
|
+
declare function resolveServiceMap<I, F>(promiseMap: PromiseRemoteDataMap<I, F>): Promise<RemoteData<I, F[]>>;
|
|
89
|
+
|
|
90
|
+
type WithId<T extends AidboxResource> = T & Required<Pick<T, 'id'>>;
|
|
91
|
+
declare function createFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
92
|
+
declare function create<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
|
|
93
|
+
declare function updateFHIRResource<R extends AidboxResource>(resource: R, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
94
|
+
declare function update<R extends AidboxResource>(resource: R, searchParams?: SearchParams): AxiosRequestConfig;
|
|
95
|
+
declare function getFHIRResource<R extends AidboxResource>(reference: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
96
|
+
declare function get<R extends AidboxResource>(reference: AidboxReference<R>): AxiosRequestConfig;
|
|
97
|
+
declare function getFHIRResources<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
98
|
+
declare function getAllFHIRResources<R extends AidboxResource>(resourceType: string, params: SearchParams, extraPath?: string): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
99
|
+
declare function list<R extends AidboxResource>(resourceType: R['resourceType'], searchParams: SearchParams, extraPath?: string): AxiosRequestConfig;
|
|
100
|
+
declare function findFHIRResource<R extends AidboxResource>(resourceType: R['resourceType'], params: SearchParams, extraPath?: string): Promise<RemoteDataResult<WithId<R>>>;
|
|
101
|
+
declare function saveFHIRResource<R extends AidboxResource>(resource: R): Promise<RemoteDataResult<WithId<R>>>;
|
|
102
|
+
declare function save<R extends AidboxResource>(resource: R): AxiosRequestConfig;
|
|
103
|
+
declare function saveFHIRResources<R extends AidboxResource>(resources: R[], bundleType: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<R>>>>;
|
|
104
|
+
type NullableRecursivePartial<T> = {
|
|
105
|
+
[P in keyof T]?: NullableRecursivePartial<T[P]> | null;
|
|
106
|
+
};
|
|
107
|
+
declare function patchFHIRResource<R extends AidboxResource>(resource: NullableRecursivePartial<R> & Required<Pick<R, 'id' | 'resourceType'>>, searchParams?: SearchParams): Promise<RemoteDataResult<WithId<R>>>;
|
|
108
|
+
declare function patch<R extends AidboxResource>(resource: NullableRecursivePartial<R> & Required<Pick<R, 'resourceType'>>, searchParams?: SearchParams): AxiosRequestConfig;
|
|
109
|
+
declare function deleteFHIRResource<R extends AidboxResource>(resource: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
110
|
+
declare function markAsDeleted<R extends AidboxResource>(resource: AidboxReference<R>): AxiosRequestConfig;
|
|
111
|
+
declare function forceDeleteFHIRResource<R extends AidboxResource>(resource: AidboxReference<R>): Promise<RemoteDataResult<WithId<R>>>;
|
|
112
|
+
declare function forceDelete<R extends AidboxResource>(resourceType: R['resourceType'], idOrSearchParams: id | SearchParams): AxiosRequestConfig;
|
|
113
|
+
declare function getReference<T extends AidboxResource>(resource: T, display?: string): AidboxReference<T>;
|
|
114
|
+
declare function makeReference<T extends AidboxResource>(resourceType: string, id: string, display?: string): AidboxReference<T>;
|
|
115
|
+
declare function isReference<T extends AidboxResource>(resource: T | AidboxReference<T>): resource is AidboxReference<T>;
|
|
116
|
+
type ResourcesMap<T extends AidboxResource> = {
|
|
117
|
+
[P in T['resourceType']]: T extends {
|
|
118
|
+
resourceType: P;
|
|
119
|
+
} ? T[] : never;
|
|
120
|
+
};
|
|
121
|
+
declare function extractBundleResources<T extends AidboxResource>(bundle: Bundle<T>): ResourcesMap<T>;
|
|
122
|
+
declare function getIncludedResource<T extends AidboxResource>(resources: ResourcesMap<T | any>, reference: AidboxReference<T>): T | undefined;
|
|
123
|
+
declare function getIncludedResources<T extends AidboxResource>(resources: ResourcesMap<T | any>, resourceType: T['resourceType']): T[];
|
|
124
|
+
declare function getMainResources<T extends AidboxResource>(bundle: Bundle<T>, resourceType: T['resourceType']): T[];
|
|
125
|
+
declare function getConcepts(valueSetId: string, params?: SearchParams): Promise<RemoteDataResult<ValueSet>>;
|
|
126
|
+
declare function applyFHIRService<T extends AidboxResource, F = any>(request: AxiosRequestConfig): Promise<RemoteDataResult<WithId<T>, F>>;
|
|
127
|
+
declare function transformToBundleEntry<R extends AidboxResource>(config: AxiosRequestConfig): BundleEntry<R> | null;
|
|
128
|
+
declare function applyFHIRServices<T extends AidboxResource, F = any>(requests: Array<AxiosRequestConfig>, type?: 'transaction' | 'batch'): Promise<RemoteDataResult<Bundle<WithId<T>>, F>>;
|
|
129
|
+
|
|
130
|
+
declare const FHIRDateFormat = "YYYY-MM-DD";
|
|
131
|
+
declare const FHIRTimeFormat = "HH:mm:ss";
|
|
132
|
+
declare const FHIRDateTimeFormat = "YYYY-MM-DDTHH:mm:ss[Z]";
|
|
133
|
+
declare const formatFHIRTime: (date: Date | moment.Moment) => string;
|
|
134
|
+
declare const formatFHIRDate: (date: Date | moment.Moment) => string;
|
|
135
|
+
declare const formatFHIRDateTime: (date: Date | moment.Moment) => string;
|
|
136
|
+
declare const parseFHIRTime: (date: string) => moment.Moment;
|
|
137
|
+
declare const parseFHIRDate: (date: string) => moment.Moment;
|
|
138
|
+
declare const parseFHIRDateTime: (date: string) => moment.Moment;
|
|
139
|
+
declare const makeFHIRDateTime: (date: string, time?: string) => string;
|
|
140
|
+
declare const extractFHIRDate: (date: string) => string;
|
|
141
|
+
declare const extractFHIRTime: (date: string) => string;
|
|
142
|
+
declare const isFHIRDateEqual: (date1: string, date2: string) => boolean;
|
|
143
|
+
|
|
144
|
+
interface BackendError {
|
|
145
|
+
error: string;
|
|
146
|
+
error_description: string;
|
|
147
|
+
}
|
|
148
|
+
interface ErrorMapping {
|
|
149
|
+
[code: string]: string;
|
|
150
|
+
}
|
|
151
|
+
interface FormatErrorConfig {
|
|
152
|
+
mapping?: ErrorMapping;
|
|
153
|
+
format?: (errorCode: string, errorDescription: string) => string;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Returns formatted error (when you need to display human-friendly error message)
|
|
157
|
+
*
|
|
158
|
+
* formatError(
|
|
159
|
+
* error,
|
|
160
|
+
* {
|
|
161
|
+
* mapping: {'conflict': 'Please reload page'},
|
|
162
|
+
* format: (errorCode, errorDescription) =>
|
|
163
|
+
* `An error occurred: ${errorDescription} (${errorCode}). Please reach tech support`
|
|
164
|
+
* }
|
|
165
|
+
* )
|
|
166
|
+
*/
|
|
167
|
+
declare function formatError(error: any, config?: FormatErrorConfig): any;
|
|
168
|
+
declare function extractErrorDescription(error: any): any;
|
|
169
|
+
declare function extractErrorCode(error: any): string;
|
|
170
|
+
declare function isOperationOutcome(error: any): error is OperationOutcome;
|
|
171
|
+
declare function isBackendError(error: any): error is BackendError;
|
|
172
|
+
|
|
173
|
+
type LoginService = (user: User) => Promise<RemoteData<Token>>;
|
|
174
|
+
declare function withRootAccess<R>(fn: () => Promise<R>): Promise<R>;
|
|
175
|
+
declare function ensure<R>(result: RemoteData<R>): R;
|
|
176
|
+
declare function investigate<R = any>(result: RemoteData<unknown, R>): R;
|
|
177
|
+
declare function getToken(user: User, loginService: LoginService): Promise<Token>;
|
|
178
|
+
declare function login(user: User, loginService: LoginService): Promise<Token>;
|
|
179
|
+
declare function getUserInfo(): Promise<User>;
|
|
180
|
+
|
|
181
|
+
declare function uuid4(): string;
|
|
182
|
+
|
|
183
|
+
interface BaseAction {
|
|
184
|
+
type: unknown;
|
|
185
|
+
}
|
|
186
|
+
type ExactlyOne<T, TKey = keyof T> = TKey extends keyof T ? {
|
|
187
|
+
[key in Exclude<keyof T, TKey>]?: never;
|
|
188
|
+
} & {
|
|
189
|
+
[key in TKey]: T[key];
|
|
190
|
+
} : never;
|
|
191
|
+
type GetOnlyBaseActions<T> = T extends ExactlyOne<T, 'type'> ? T : never;
|
|
192
|
+
type Callback<T extends BaseAction> = (e: T) => void;
|
|
193
|
+
type Dispatch<T extends BaseAction> = (action: T | GetOnlyBaseActions<T>['type']) => void;
|
|
194
|
+
type UseBus<T extends BaseAction> = (type: T['type'], callback: Callback<T>, deps: Array<any>) => Dispatch<T>;
|
|
195
|
+
declare function createBus<T extends BaseAction = never>(): {
|
|
196
|
+
useBus: UseBus<T>;
|
|
197
|
+
dispatch: Dispatch<T>;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
interface ServiceManager<S, F> {
|
|
201
|
+
reload: () => void;
|
|
202
|
+
reloadAsync: () => Promise<RemoteDataResult<S, F>>;
|
|
203
|
+
softReloadAsync: () => Promise<RemoteDataResult<S, F>>;
|
|
204
|
+
set: (dataOrFn: S | ((data: S) => S)) => void;
|
|
205
|
+
}
|
|
206
|
+
declare function useService<S = any, F = any>(asyncFunction: () => Promise<RemoteDataResult<S, F>>, deps?: ReadonlyArray<any>): [RemoteData<S, F>, ServiceManager<S, F>];
|
|
207
|
+
|
|
208
|
+
interface CRUDManager<T> {
|
|
209
|
+
handleSave: (updatedResource: T, relatedResources?: AidboxResource[]) => Promise<RemoteData<T>>;
|
|
210
|
+
handleDelete: (resourceToDelete: T) => void;
|
|
211
|
+
}
|
|
212
|
+
declare function useCRUD<T extends AidboxResource>(resourceType: T['resourceType'], id?: string, getOrCreate?: boolean, defaultResource?: Partial<T>): [RemoteData<T>, CRUDManager<T>];
|
|
213
|
+
|
|
214
|
+
interface StateManager<S> {
|
|
215
|
+
getSharedState: () => S;
|
|
216
|
+
setSharedState: (s: S) => void;
|
|
217
|
+
useSharedState: () => [S, (s: S) => void];
|
|
218
|
+
}
|
|
219
|
+
declare class SharedStateInitializationError extends Error {
|
|
220
|
+
constructor(message?: string);
|
|
221
|
+
}
|
|
222
|
+
declare function createSharedState<S>(initial?: S): StateManager<S>;
|
|
223
|
+
|
|
224
|
+
interface PagerManager {
|
|
225
|
+
loadNext: () => void;
|
|
226
|
+
loadPrevious: () => void;
|
|
227
|
+
loadPage: (page: number) => void;
|
|
228
|
+
reload: () => void;
|
|
229
|
+
hasNext: boolean;
|
|
230
|
+
hasPrevious: boolean;
|
|
231
|
+
currentPage: number;
|
|
232
|
+
}
|
|
233
|
+
declare function usePager<T extends AidboxResource>(resourceType: T['resourceType'], resourcesOnPage?: number, searchParams?: SearchParams): [RemoteData<Bundle<T>>, PagerManager];
|
|
234
|
+
|
|
235
|
+
interface RenderConfig<E = any> {
|
|
236
|
+
renderFailure?: (error: E) => React.ReactElement;
|
|
237
|
+
renderLoading?: () => React.ReactElement;
|
|
238
|
+
renderNotAsked?: () => React.ReactElement;
|
|
239
|
+
}
|
|
240
|
+
interface RenderRemoteDataBasicProps<S, E = any> {
|
|
241
|
+
remoteData: RemoteData<S, E>;
|
|
242
|
+
children: (data: S) => React.ReactElement;
|
|
243
|
+
}
|
|
244
|
+
type RenderRemoteDataProps<S, E = any> = RenderRemoteDataBasicProps<S> & RenderConfig<E>;
|
|
245
|
+
declare function RenderRemoteData<S, E = any>(props: RenderRemoteDataProps<S, E>): JSX.Element | null;
|
|
246
|
+
declare function withRender<E = any>(config: RenderConfig<E>): <S>(props: RenderRemoteDataProps<S, E>) => JSX.Element;
|
|
247
|
+
|
|
248
|
+
export { CRUDManager, FHIRDateFormat, FHIRDateTimeFormat, FHIRTimeFormat, LoginService, PagerManager, PromiseRemoteDataMap, PromiseRemoteDataResultMap, RemoteData, RemoteDataMap, RemoteDataResult, RemoteDataResultMap, RenderRemoteData, ResourcesMap, SearchParam, SearchParams, ServiceManager, SharedStateInitializationError, StateManager, Token, WithId, applyDataTransformer, applyErrorTransformer, applyFHIRService, applyFHIRServices, axiosInstance, buildQueryParams, create, createBus, createFHIRResource, createSharedState, deleteFHIRResource, ensure, extractBundleResources, extractErrorCode, extractErrorDescription, extractFHIRDate, extractFHIRTime, failure, findFHIRResource, forceDelete, forceDeleteFHIRResource, formatError, formatFHIRDate, formatFHIRDateTime, formatFHIRTime, get, getAllFHIRResources, getConcepts, getFHIRResource, getFHIRResources, getIncludedResource, getIncludedResources, getMainResources, getReference, getToken, getUserInfo, investigate, isBackendError, isFHIRDateEqual, isFailure, isFailureAny, isLoading, isLoadingAny, isNotAsked, isNotAskedAny, isOperationOutcome, isReference, isSuccess, isSuccessAll, list, loading, login, makeFHIRDateTime, makeReference, mapFailure, mapSuccess, markAsDeleted, notAsked, parseFHIRDate, parseFHIRDateTime, parseFHIRTime, patch, patchFHIRResource, resetInstanceToken, resolveArray, resolveMap, resolveServiceMap, save, saveFHIRResource, saveFHIRResources, sequenceArray, sequenceMap, service, setInstanceBaseURL, setInstanceToken, success, transformToBundleEntry, update, updateFHIRResource, useCRUD, usePager, useService, uuid4, withRender, withRootAccess };
|
|
@@ -9,7 +9,7 @@ interface RenderRemoteDataBasicProps<S, E = any> {
|
|
|
9
9
|
remoteData: RemoteData<S, E>;
|
|
10
10
|
children: (data: S) => React.ReactElement;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
type RenderRemoteDataProps<S, E = any> = RenderRemoteDataBasicProps<S> & RenderConfig<E>;
|
|
13
13
|
export declare function RenderRemoteData<S, E = any>(props: RenderRemoteDataProps<S, E>): JSX.Element | null;
|
|
14
14
|
export declare function withRender<E = any>(config: RenderConfig<E>): <S>(props: RenderRemoteDataProps<S, E>) => JSX.Element;
|
|
15
15
|
export {};
|
|
@@ -6,23 +6,23 @@ var react_1 = tslib_1.__importDefault(require("react"));
|
|
|
6
6
|
var remoteData_1 = require("../../libs/remoteData");
|
|
7
7
|
var error_1 = require("../../utils/error");
|
|
8
8
|
function renderFailureDefault(error) {
|
|
9
|
-
return react_1.default.createElement(react_1.default.Fragment, null, error_1.formatError(error));
|
|
9
|
+
return react_1.default.createElement(react_1.default.Fragment, null, (0, error_1.formatError)(error));
|
|
10
10
|
}
|
|
11
11
|
function renderLoadingDefault() {
|
|
12
12
|
return react_1.default.createElement(react_1.default.Fragment, null, "Loading...");
|
|
13
13
|
}
|
|
14
14
|
function RenderRemoteData(props) {
|
|
15
15
|
var remoteData = props.remoteData, children = props.children, renderFailure = props.renderFailure, renderLoading = props.renderLoading, renderNotAsked = props.renderNotAsked;
|
|
16
|
-
if (remoteData_1.isNotAsked(remoteData)) {
|
|
16
|
+
if ((0, remoteData_1.isNotAsked)(remoteData)) {
|
|
17
17
|
return renderNotAsked ? renderNotAsked() : null;
|
|
18
18
|
}
|
|
19
|
-
else if (remoteData_1.isLoading(remoteData)) {
|
|
19
|
+
else if ((0, remoteData_1.isLoading)(remoteData)) {
|
|
20
20
|
return (renderLoading !== null && renderLoading !== void 0 ? renderLoading : renderLoadingDefault)();
|
|
21
21
|
}
|
|
22
|
-
else if (remoteData_1.isFailure(remoteData)) {
|
|
22
|
+
else if ((0, remoteData_1.isFailure)(remoteData)) {
|
|
23
23
|
return (renderFailure !== null && renderFailure !== void 0 ? renderFailure : renderFailureDefault)(remoteData.error);
|
|
24
24
|
}
|
|
25
|
-
else if (remoteData_1.isSuccess(remoteData)) {
|
|
25
|
+
else if ((0, remoteData_1.isSuccess)(remoteData)) {
|
|
26
26
|
return children(remoteData.data);
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RenderRemoteData/index.tsx"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAE1B,oDAAgG;AAChG,2CAAgD;AAahD,SAAS,oBAAoB,CAAI,KAAQ;IACrC,OAAO,8DAAG,mBAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/RenderRemoteData/index.tsx"],"names":[],"mappings":";;;;AAAA,wDAA0B;AAE1B,oDAAgG;AAChG,2CAAgD;AAahD,SAAS,oBAAoB,CAAI,KAAQ;IACrC,OAAO,8DAAG,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAI,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB;IACzB,OAAO,2EAAe,CAAC;AAC3B,CAAC;AAID,SAAgB,gBAAgB,CAAa,KAAkC;IACnE,IAAA,UAAU,GAA6D,KAAK,WAAlE,EAAE,QAAQ,GAAmD,KAAK,SAAxD,EAAE,aAAa,GAAoC,KAAK,cAAzC,EAAE,aAAa,GAAqB,KAAK,cAA1B,EAAE,cAAc,GAAK,KAAK,eAAV,CAAW;IACrF,IAAI,IAAA,uBAAU,EAAC,UAAU,CAAC,EAAE;QACxB,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACnD;SAAM,IAAI,IAAA,sBAAS,EAAC,UAAU,CAAC,EAAE;QAC9B,OAAO,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,oBAAoB,CAAC,EAAE,CAAC;KACpD;SAAM,IAAI,IAAA,sBAAS,EAAC,UAAU,CAAC,EAAE;QAC9B,OAAO,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,oBAAoB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KACpE;SAAM,IAAI,IAAA,sBAAS,EAAC,UAAU,CAAC,EAAE;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACpC;SAAM;QACH,IAAM,CAAC,GAAU,UAAU,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;KACtB;AACL,CAAC;AAdD,4CAcC;AAED,SAAgB,UAAU,CAAU,MAAuB;IACvD,OAAO,UAAY,KAAkC;QACjD,OAAO,8BAAC,gBAAgB,uBAAK,MAAM,EAAM,KAAK,EAAI,CAAC;IACvD,CAAC,CAAC;AACN,CAAC;AAJD,gCAIC"}
|
package/lib/hooks/bus.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
interface BaseAction {
|
|
2
2
|
type: unknown;
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
type ExactlyOne<T, TKey = keyof T> = TKey extends keyof T ? {
|
|
5
5
|
[key in Exclude<keyof T, TKey>]?: never;
|
|
6
6
|
} & {
|
|
7
7
|
[key in TKey]: T[key];
|
|
8
8
|
} : never;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
type GetOnlyBaseActions<T> = T extends ExactlyOne<T, 'type'> ? T : never;
|
|
10
|
+
type Callback<T extends BaseAction> = (e: T) => void;
|
|
11
|
+
type Dispatch<T extends BaseAction> = (action: T | GetOnlyBaseActions<T>['type']) => void;
|
|
12
|
+
type UseBus<T extends BaseAction> = (type: T['type'], callback: Callback<T>, deps: Array<any>) => Dispatch<T>;
|
|
13
13
|
export declare function createBus<T extends BaseAction = never>(): {
|
|
14
14
|
useBus: UseBus<T>;
|
|
15
15
|
dispatch: Dispatch<T>;
|
package/lib/hooks/bus.js
CHANGED
|
@@ -42,7 +42,7 @@ function dispatch(actionOrType) {
|
|
|
42
42
|
}
|
|
43
43
|
function useBus(type, callback, deps) {
|
|
44
44
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
45
|
-
react_1.useEffect(function () {
|
|
45
|
+
(0, react_1.useEffect)(function () {
|
|
46
46
|
subscribe(type, callback);
|
|
47
47
|
return function () {
|
|
48
48
|
unsubscribe(type, callback);
|
package/lib/hooks/bus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/hooks/bus.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAoBlC,IAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAE9B,SAAS,SAAS,CAAuB,IAAe,EAAE,QAAqB;IAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAExD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAuB,IAAe,EAAE,QAAqB;IAC7E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAExD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAID,SAAS,QAAQ,CAAuB,YAA+C;IACnF,OAAO,OAAO,YAAY,KAAK,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAuB,YAA+C;IACnF,IAAM,MAAM,GAAM,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,YAAY,EAAQ,CAAC;IAExF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO;IAE1C,4CAA4C;IAC5C,gCAAgC;IAChC,yCAAyC;IACzC,gDAAgD;IAChD,kCAAkC;IAClC,kCAAkC;IAClC,2CAA2C;IAC3C,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAc,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,UAAC,QAAqB;QAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAID,SAAS,MAAM,CAAuB,IAAe,EAAE,QAAqB,EAAE,IAAgB;IAC1F,sDAAsD;IACtD,iBAAS,
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../src/hooks/bus.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAoBlC,IAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;AAE9B,SAAS,SAAS,CAAuB,IAAe,EAAE,QAAqB;IAC3E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAExD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAuB,IAAe,EAAE,QAAqB;IAC7E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IACnC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAExD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAID,SAAS,QAAQ,CAAuB,YAA+C;IACnF,OAAO,OAAO,YAAY,KAAK,QAAQ,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAuB,YAA+C;IACnF,IAAM,MAAM,GAAM,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,YAAY,EAAQ,CAAC;IAExF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO;IAE1C,4CAA4C;IAC5C,gCAAgC;IAChC,yCAAyC;IACzC,gDAAgD;IAChD,kCAAkC;IAClC,kCAAkC;IAClC,2CAA2C;IAC3C,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAc,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,UAAC,QAAqB;QAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAID,SAAS,MAAM,CAAuB,IAAe,EAAE,QAAqB,EAAE,IAAgB;IAC1F,sDAAsD;IACtD,IAAA,iBAAS,EAAC;QACN,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE1B,OAAO;YACH,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,uDAAuD;IAC3D,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAgB,SAAS;IACrB,IAAM,WAAW,GAAc,MAAM,CAAC;IACtC,IAAM,aAAa,GAAgB,QAAQ,CAAC;IAC5C,OAAO;QACH,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,aAAa;KAC1B,CAAC;AACN,CAAC;AAPD,8BAOC;AAED,mBAAmB;AAEnB,kBAAkB;AAClB,mBAAmB;AACnB,IAAI;AAEJ,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,IAAI;AAEJ,0BAA0B;AAE1B,gCAAgC;AAEhC,QAAQ;AACR,+BAA+B;AAC/B,qBAAqB;AACrB,yCAAyC;AACzC,iCAAiC;AACjC,iCAAiC;AAEjC,WAAW;AACX,+BAA+B;AAC/B,qBAAqB;AACrB,+BAA+B;AAC/B,6CAA6C"}
|
package/lib/hooks/crud.js
CHANGED
|
@@ -7,9 +7,9 @@ var remoteData_1 = require("../libs/remoteData");
|
|
|
7
7
|
var fhir_1 = require("../services/fhir");
|
|
8
8
|
function useCRUD(resourceType, id, getOrCreate, defaultResource) {
|
|
9
9
|
var _this = this;
|
|
10
|
-
var _a = react_1.useState(remoteData_1.notAsked), remoteData = _a[0], setRemoteData = _a[1];
|
|
11
|
-
var makeDefaultResource = react_1.useCallback(function () { return (tslib_1.__assign(tslib_1.__assign({ resourceType: resourceType }, (id && getOrCreate ? { id: id } : {})), defaultResource)); }, [resourceType, defaultResource, id, getOrCreate]);
|
|
12
|
-
react_1.useEffect(function () {
|
|
10
|
+
var _a = (0, react_1.useState)(remoteData_1.notAsked), remoteData = _a[0], setRemoteData = _a[1];
|
|
11
|
+
var makeDefaultResource = (0, react_1.useCallback)(function () { return (tslib_1.__assign(tslib_1.__assign({ resourceType: resourceType }, (id && getOrCreate ? { id: id } : {})), defaultResource)); }, [resourceType, defaultResource, id, getOrCreate]);
|
|
12
|
+
(0, react_1.useEffect)(function () {
|
|
13
13
|
(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
14
14
|
var response;
|
|
15
15
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -17,18 +17,18 @@ function useCRUD(resourceType, id, getOrCreate, defaultResource) {
|
|
|
17
17
|
case 0:
|
|
18
18
|
if (!id) return [3 /*break*/, 2];
|
|
19
19
|
setRemoteData(remoteData_1.loading);
|
|
20
|
-
return [4 /*yield*/, fhir_1.getFHIRResource(fhir_1.makeReference(resourceType, id))];
|
|
20
|
+
return [4 /*yield*/, (0, fhir_1.getFHIRResource)((0, fhir_1.makeReference)(resourceType, id))];
|
|
21
21
|
case 1:
|
|
22
22
|
response = _a.sent();
|
|
23
|
-
if (remoteData_1.isFailure(response) && getOrCreate) {
|
|
24
|
-
setRemoteData(remoteData_1.success(makeDefaultResource()));
|
|
23
|
+
if ((0, remoteData_1.isFailure)(response) && getOrCreate) {
|
|
24
|
+
setRemoteData((0, remoteData_1.success)(makeDefaultResource()));
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
setRemoteData(response);
|
|
28
28
|
}
|
|
29
29
|
return [3 /*break*/, 3];
|
|
30
30
|
case 2:
|
|
31
|
-
setRemoteData(remoteData_1.success(makeDefaultResource()));
|
|
31
|
+
setRemoteData((0, remoteData_1.success)(makeDefaultResource()));
|
|
32
32
|
_a.label = 3;
|
|
33
33
|
case 3: return [2 /*return*/];
|
|
34
34
|
}
|
|
@@ -47,18 +47,18 @@ function useCRUD(resourceType, id, getOrCreate, defaultResource) {
|
|
|
47
47
|
// TODO refactor
|
|
48
48
|
setRemoteData(remoteData_1.loading);
|
|
49
49
|
if (!(relatedResources && relatedResources.length)) return [3 /*break*/, 2];
|
|
50
|
-
return [4 /*yield*/, fhir_1.saveFHIRResources(tslib_1.
|
|
50
|
+
return [4 /*yield*/, (0, fhir_1.saveFHIRResources)(tslib_1.__spreadArray([updatedResource], relatedResources, true), 'transaction')];
|
|
51
51
|
case 1:
|
|
52
52
|
bundleResponse = _a.sent();
|
|
53
|
-
if (remoteData_1.isSuccess(bundleResponse)) {
|
|
54
|
-
extracted = fhir_1.extractBundleResources(bundleResponse.data);
|
|
53
|
+
if ((0, remoteData_1.isSuccess)(bundleResponse)) {
|
|
54
|
+
extracted = (0, fhir_1.extractBundleResources)(bundleResponse.data);
|
|
55
55
|
if (extracted) {
|
|
56
|
-
resource = remoteData_1.success(extracted[resourceType][0]);
|
|
56
|
+
resource = (0, remoteData_1.success)(extracted[resourceType][0]);
|
|
57
57
|
setRemoteData(resource);
|
|
58
58
|
return [2 /*return*/, resource];
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
|
-
return [2 /*return*/, remoteData_1.failure({ message: 'empty response from server' })];
|
|
61
|
+
return [2 /*return*/, (0, remoteData_1.failure)({ message: 'empty response from server' })];
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
@@ -66,7 +66,7 @@ function useCRUD(resourceType, id, getOrCreate, defaultResource) {
|
|
|
66
66
|
return [2 /*return*/, bundleResponse];
|
|
67
67
|
}
|
|
68
68
|
return [3 /*break*/, 4];
|
|
69
|
-
case 2: return [4 /*yield*/, fhir_1.saveFHIRResource(updatedResource)];
|
|
69
|
+
case 2: return [4 /*yield*/, (0, fhir_1.saveFHIRResource)(updatedResource)];
|
|
70
70
|
case 3:
|
|
71
71
|
response = _a.sent();
|
|
72
72
|
setRemoteData(response);
|
|
@@ -82,7 +82,7 @@ function useCRUD(resourceType, id, getOrCreate, defaultResource) {
|
|
|
82
82
|
case 0:
|
|
83
83
|
setRemoteData(remoteData_1.loading);
|
|
84
84
|
_a = setRemoteData;
|
|
85
|
-
return [4 /*yield*/, fhir_1.deleteFHIRResource(fhir_1.getReference(resourceToDelete))];
|
|
85
|
+
return [4 /*yield*/, (0, fhir_1.deleteFHIRResource)((0, fhir_1.getReference)(resourceToDelete))];
|
|
86
86
|
case 1:
|
|
87
87
|
_a.apply(void 0, [_b.sent()]);
|
|
88
88
|
return [2 /*return*/];
|