@cratis/arc.react 18.7.6 → 18.7.8
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/queries/for_useQuery/FakeQueryWithRequiredParameters.d.ts +18 -0
- package/dist/cjs/queries/for_useQuery/FakeQueryWithRequiredParameters.d.ts.map +1 -0
- package/dist/cjs/queries/for_useQuery/when_required_argument_changes.d.ts +2 -0
- package/dist/cjs/queries/for_useQuery/when_required_argument_changes.d.ts.map +1 -0
- package/dist/cjs/queries/for_useQuery/when_sorting_changes.d.ts +2 -0
- package/dist/cjs/queries/for_useQuery/when_sorting_changes.d.ts.map +1 -0
- package/dist/cjs/queries/for_useQueryWithPaging/when_paging_changes.d.ts +2 -0
- package/dist/cjs/queries/for_useQueryWithPaging/when_paging_changes.d.ts.map +1 -0
- package/dist/cjs/queries/for_useQueryWithPaging/when_required_argument_changes.d.ts +2 -0
- package/dist/cjs/queries/for_useQueryWithPaging/when_required_argument_changes.d.ts.map +1 -0
- package/dist/cjs/queries/useQuery.d.ts.map +1 -1
- package/dist/cjs/queries/useQuery.js +10 -22
- package/dist/cjs/queries/useQuery.js.map +1 -1
- package/dist/esm/queries/for_useQuery/FakeQueryWithRequiredParameters.d.ts +18 -0
- package/dist/esm/queries/for_useQuery/FakeQueryWithRequiredParameters.d.ts.map +1 -0
- package/dist/esm/queries/for_useQuery/FakeQueryWithRequiredParameters.js +13 -0
- package/dist/esm/queries/for_useQuery/FakeQueryWithRequiredParameters.js.map +1 -0
- package/dist/esm/queries/for_useQuery/when_required_argument_changes.d.ts +2 -0
- package/dist/esm/queries/for_useQuery/when_required_argument_changes.d.ts.map +1 -0
- package/dist/esm/queries/for_useQuery/when_required_argument_changes.js +37 -0
- package/dist/esm/queries/for_useQuery/when_required_argument_changes.js.map +1 -0
- package/dist/esm/queries/for_useQuery/when_sorting_changes.d.ts +2 -0
- package/dist/esm/queries/for_useQuery/when_sorting_changes.d.ts.map +1 -0
- package/dist/esm/queries/for_useQuery/when_sorting_changes.js +36 -0
- package/dist/esm/queries/for_useQuery/when_sorting_changes.js.map +1 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_paging_changes.d.ts +2 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_paging_changes.d.ts.map +1 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_paging_changes.js +36 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_paging_changes.js.map +1 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_required_argument_changes.d.ts +2 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_required_argument_changes.d.ts.map +1 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_required_argument_changes.js +38 -0
- package/dist/esm/queries/for_useQueryWithPaging/when_required_argument_changes.js.map +1 -0
- package/dist/esm/queries/useQuery.d.ts.map +1 -1
- package/dist/esm/queries/useQuery.js +11 -23
- package/dist/esm/queries/useQuery.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/queries/for_useQuery/FakeQueryWithRequiredParameters.ts +30 -0
- package/queries/for_useQuery/when_required_argument_changes.ts +55 -0
- package/queries/for_useQuery/when_sorting_changes.ts +54 -0
- package/queries/for_useQueryWithPaging/when_paging_changes.ts +54 -0
- package/queries/for_useQueryWithPaging/when_required_argument_changes.ts +57 -0
- package/queries/useQuery.ts +10 -23
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { QueryFor } from '@cratis/arc/queries';
|
|
2
|
+
import { ParameterDescriptor } from '@cratis/arc/reflection';
|
|
3
|
+
export interface FakeQueryWithRequiredParametersResult {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FakeQueryWithRequiredParametersArguments {
|
|
8
|
+
userId: string;
|
|
9
|
+
category: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class FakeQueryWithRequiredParameters extends QueryFor<FakeQueryWithRequiredParametersResult[]> {
|
|
12
|
+
readonly route = "/api/fake-query-with-required-parameters";
|
|
13
|
+
readonly parameterDescriptors: ParameterDescriptor[];
|
|
14
|
+
get requiredRequestParameters(): string[];
|
|
15
|
+
defaultValue: FakeQueryWithRequiredParametersResult[];
|
|
16
|
+
constructor();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FakeQueryWithRequiredParameters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeQueryWithRequiredParameters.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/FakeQueryWithRequiredParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,qCAAqC;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wCAAwC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,+BAAgC,SAAQ,QAAQ,CAAC,qCAAqC,EAAE,CAAC;IAClG,QAAQ,CAAC,KAAK,8CAA8C;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IAE1D,IAAI,yBAAyB,IAAI,MAAM,EAAE,CAExC;IAED,YAAY,EAAE,qCAAqC,EAAE,CAAM;;CAK9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_required_argument_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_sorting_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_sorting_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_paging_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_paging_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_required_argument_changes.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../queries/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAe,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../queries/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAe,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAkErF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAC1J;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;CAAC,CAG1E;AAYD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GACpL;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;IAAE,OAAO;IAAE,WAAW;CAAC,CAEhG"}
|
|
@@ -5,22 +5,22 @@ var React = require('react');
|
|
|
5
5
|
var ArcContext = require('../ArcContext.js');
|
|
6
6
|
|
|
7
7
|
function useQueryInternal(query, performer, sorting, paging, args) {
|
|
8
|
-
paging
|
|
9
|
-
sorting
|
|
8
|
+
const [currentPaging, setCurrentPaging] = React.useState(paging ?? queries.Paging.noPaging);
|
|
9
|
+
const [currentSorting, setCurrentSorting] = React.useState(sorting ?? queries.Sorting.none);
|
|
10
10
|
const arc = React.useContext(ArcContext.ArcContext);
|
|
11
11
|
const queryInstance = React.useRef(null);
|
|
12
|
-
const [renderCounter, setRenderCounter] = React.useState(0);
|
|
13
12
|
queryInstance.current = React.useMemo(() => {
|
|
14
13
|
const instance = new query();
|
|
15
|
-
instance.paging =
|
|
16
|
-
instance.sorting =
|
|
14
|
+
instance.paging = currentPaging;
|
|
15
|
+
instance.sorting = currentSorting;
|
|
17
16
|
instance.setMicroservice(arc.microservice);
|
|
18
17
|
instance.setApiBasePath(arc.apiBasePath ?? '');
|
|
19
18
|
instance.setOrigin(arc.origin ?? '');
|
|
20
19
|
instance.setHttpHeadersCallback(arc.httpHeadersCallback ?? (() => ({})));
|
|
21
20
|
return instance;
|
|
22
|
-
}, []);
|
|
21
|
+
}, [currentPaging, currentSorting, arc.microservice, arc.apiBasePath, arc.origin]);
|
|
23
22
|
const [result, setResult] = React.useState(queries.QueryResultWithState.initial(queryInstance.current.defaultValue));
|
|
23
|
+
const argumentsDependency = queryInstance.current.requiredRequestParameters.map(_ => args?.[_]);
|
|
24
24
|
const queryExecutor = (async (args) => {
|
|
25
25
|
if (queryInstance) {
|
|
26
26
|
try {
|
|
@@ -33,10 +33,7 @@ function useQueryInternal(query, performer, sorting, paging, args) {
|
|
|
33
33
|
});
|
|
34
34
|
React.useEffect(() => {
|
|
35
35
|
queryExecutor(args);
|
|
36
|
-
}, []);
|
|
37
|
-
const invalidate = () => {
|
|
38
|
-
setRenderCounter(renderCounter + 1);
|
|
39
|
-
};
|
|
36
|
+
}, [...argumentsDependency, ...[currentPaging, currentSorting]]);
|
|
40
37
|
return [
|
|
41
38
|
result,
|
|
42
39
|
async (args) => {
|
|
@@ -44,22 +41,13 @@ function useQueryInternal(query, performer, sorting, paging, args) {
|
|
|
44
41
|
await queryExecutor(args);
|
|
45
42
|
},
|
|
46
43
|
async (sorting) => {
|
|
47
|
-
|
|
48
|
-
queryInstance.current.sorting = sorting;
|
|
49
|
-
invalidate();
|
|
50
|
-
await queryExecutor(args);
|
|
44
|
+
setCurrentSorting(sorting);
|
|
51
45
|
},
|
|
52
46
|
async (page) => {
|
|
53
|
-
|
|
54
|
-
queryInstance.current.paging = new queries.Paging(page, queryInstance.current.paging?.pageSize ?? 0);
|
|
55
|
-
invalidate();
|
|
56
|
-
await queryExecutor(args);
|
|
47
|
+
setCurrentPaging(new queries.Paging(page, currentPaging.pageSize));
|
|
57
48
|
},
|
|
58
49
|
async (pageSize) => {
|
|
59
|
-
|
|
60
|
-
queryInstance.current.paging = new queries.Paging(queryInstance.current.paging?.page ?? 0, pageSize);
|
|
61
|
-
invalidate();
|
|
62
|
-
await queryExecutor(args);
|
|
50
|
+
setCurrentPaging(new queries.Paging(currentPaging.page, pageSize));
|
|
63
51
|
}
|
|
64
52
|
];
|
|
65
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sources":["../../../queries/useQuery.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IQueryFor, QueryResultWithState, QueryResult, Paging, Sorting } from '@cratis/arc/queries';\nimport { Constructor } from '@cratis/fundamentals';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'react';\nimport { SetSorting } from './SetSorting';\nimport { SetPage } from './SetPage';\nimport { SetPageSize } from './SetPageSize';\nimport { ArcContext } from '../ArcContext';\n\n/**\n * Delegate type for performing a {@link IQueryFor} in the context of the {@link useQuery} hook.\n */\nexport type PerformQuery<TArguments = object> = (args?: TArguments) => Promise<void>;\n\ntype QueryPerformer<TQuery extends IQueryFor<TDataType>, TDataType, TArguments = object> = (performer: TQuery, args?: TArguments) => Promise<QueryResult<TDataType>>;\n\nfunction useQueryInternal<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, performer: QueryPerformer<TQuery, TDataType, TArguments>, sorting?: Sorting, paging?: Paging, args?: TArguments):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n paging
|
|
1
|
+
{"version":3,"file":"useQuery.js","sources":["../../../queries/useQuery.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IQueryFor, QueryResultWithState, QueryResult, Paging, Sorting } from '@cratis/arc/queries';\nimport { Constructor } from '@cratis/fundamentals';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'react';\nimport { SetSorting } from './SetSorting';\nimport { SetPage } from './SetPage';\nimport { SetPageSize } from './SetPageSize';\nimport { ArcContext } from '../ArcContext';\n\n/**\n * Delegate type for performing a {@link IQueryFor} in the context of the {@link useQuery} hook.\n */\nexport type PerformQuery<TArguments = object> = (args?: TArguments) => Promise<void>;\n\ntype QueryPerformer<TQuery extends IQueryFor<TDataType>, TDataType, TArguments = object> = (performer: TQuery, args?: TArguments) => Promise<QueryResult<TDataType>>;\n\nfunction useQueryInternal<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, performer: QueryPerformer<TQuery, TDataType, TArguments>, sorting?: Sorting, paging?: Paging, args?: TArguments):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n const [currentPaging, setCurrentPaging] = useState<Paging>(paging ?? Paging.noPaging);\n const [currentSorting, setCurrentSorting] = useState<Sorting>(sorting ?? Sorting.none);\n const arc = useContext(ArcContext);\n const queryInstance = useRef<TQuery | null>(null);\n\n queryInstance.current = useMemo(() => {\n const instance = new query() as TQuery;\n instance.paging = currentPaging;\n instance.sorting = currentSorting;\n instance.setMicroservice(arc.microservice);\n instance.setApiBasePath(arc.apiBasePath ?? '');\n instance.setOrigin(arc.origin ?? '');\n instance.setHttpHeadersCallback(arc.httpHeadersCallback ?? (() => ({})));\n return instance;\n }, [currentPaging, currentSorting, arc.microservice, arc.apiBasePath, arc.origin]);\n\n const [result, setResult] = useState<QueryResultWithState<TDataType>>(QueryResultWithState.initial(queryInstance.current!.defaultValue));\n const argumentsDependency = queryInstance.current!.requiredRequestParameters.map(_ => args?.[_]);\n\n const queryExecutor = (async (args?: TArguments) => {\n if (queryInstance) {\n try {\n const queryResult = await performer(queryInstance.current!, args);\n setResult(QueryResultWithState.fromQueryResult(queryResult, false));\n } catch {\n // Ignore\n }\n }\n });\n\n useEffect(() => {\n queryExecutor(args);\n }, [...argumentsDependency, ...[currentPaging, currentSorting]]);\n\n return [\n result!,\n async (args?: TArguments) => {\n setResult(QueryResultWithState.fromQueryResult(result!, true));\n await queryExecutor(args);\n },\n async (sorting: Sorting) => {\n setCurrentSorting(sorting);\n },\n async (page: number) => {\n setCurrentPaging(new Paging(page, currentPaging.pageSize));\n },\n async (pageSize: number) => {\n setCurrentPaging(new Paging(currentPaging.page, pageSize));\n }];\n}\n\n/**\n * React hook for working with {@link IQueryFor} within the state management of React.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param args Optional: Arguments for the query, if any\n * @returns Tuple of {@link QueryResult} and a {@link PerformQuery} delegate.\n */\nexport function useQuery<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting] {\n const [result, perform, setSorting] = useQueryInternal(query, async (queryInstance: TQuery, actualArgs?: TArguments) => await queryInstance.perform(actualArgs!), sorting, undefined, args);\n return [result, perform, setSorting];\n}\n\n/**\n * React hook for working with {@link IQueryFor} within the state management of React for queries with paging.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param paging Paging information.\n * @param args Optional: Arguments for the query, if any\n * @returns Tuple of {@link QueryResult} and a {@link PerformQuery} delegate.\n */\nexport function useQueryWithPaging<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, paging: Paging, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n return useQueryInternal(query, async (queryInstance: TQuery, actualArgs?: TArguments) => await queryInstance.perform(actualArgs!), sorting, paging, args);\n}\n"],"names":["useState","Paging","Sorting","useContext","ArcContext","useRef","useMemo","QueryResultWithState","useEffect"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { QueryFor } from '@cratis/arc/queries';
|
|
2
|
+
import { ParameterDescriptor } from '@cratis/arc/reflection';
|
|
3
|
+
export interface FakeQueryWithRequiredParametersResult {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface FakeQueryWithRequiredParametersArguments {
|
|
8
|
+
userId: string;
|
|
9
|
+
category: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class FakeQueryWithRequiredParameters extends QueryFor<FakeQueryWithRequiredParametersResult[]> {
|
|
12
|
+
readonly route = "/api/fake-query-with-required-parameters";
|
|
13
|
+
readonly parameterDescriptors: ParameterDescriptor[];
|
|
14
|
+
get requiredRequestParameters(): string[];
|
|
15
|
+
defaultValue: FakeQueryWithRequiredParametersResult[];
|
|
16
|
+
constructor();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FakeQueryWithRequiredParameters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeQueryWithRequiredParameters.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/FakeQueryWithRequiredParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,qCAAqC;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wCAAwC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,+BAAgC,SAAQ,QAAQ,CAAC,qCAAqC,EAAE,CAAC;IAClG,QAAQ,CAAC,KAAK,8CAA8C;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,CAAM;IAE1D,IAAI,yBAAyB,IAAI,MAAM,EAAE,CAExC;IAED,YAAY,EAAE,qCAAqC,EAAE,CAAM;;CAK9D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { QueryFor } from '@cratis/arc/queries';
|
|
2
|
+
export class FakeQueryWithRequiredParameters extends QueryFor {
|
|
3
|
+
route = '/api/fake-query-with-required-parameters';
|
|
4
|
+
parameterDescriptors = [];
|
|
5
|
+
get requiredRequestParameters() {
|
|
6
|
+
return ['userId', 'category'];
|
|
7
|
+
}
|
|
8
|
+
defaultValue = [];
|
|
9
|
+
constructor() {
|
|
10
|
+
super(Object, true);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=FakeQueryWithRequiredParameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeQueryWithRequiredParameters.js","sourceRoot":"","sources":["../../../../queries/for_useQuery/FakeQueryWithRequiredParameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAa/C,MAAM,OAAO,+BAAgC,SAAQ,QAAiD;IACzF,KAAK,GAAG,0CAA0C,CAAC;IACnD,oBAAoB,GAA0B,EAAE,CAAC;IAE1D,IAAI,yBAAyB;QACzB,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,GAA4C,EAAE,CAAC;IAE3D;QACI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_required_argument_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import { useQuery } from '../useQuery';
|
|
4
|
+
import { FakeQueryWithRequiredParameters } from './FakeQueryWithRequiredParameters';
|
|
5
|
+
import { ArcContext } from '../../ArcContext';
|
|
6
|
+
import { createFetchHelper } from '@cratis/arc/helpers/fetchHelper';
|
|
7
|
+
describe('when required argument changes', () => {
|
|
8
|
+
let fetchStub;
|
|
9
|
+
let fetchHelper;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
fetchHelper = createFetchHelper();
|
|
12
|
+
fetchStub = fetchHelper.stubFetch();
|
|
13
|
+
fetchStub.resolves({
|
|
14
|
+
json: async () => ({ data: [], isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false, validationResults: [], exceptionMessages: [], exceptionStackTrace: '' })
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
fetchHelper.restore();
|
|
19
|
+
});
|
|
20
|
+
const config = {
|
|
21
|
+
microservice: 'test-microservice',
|
|
22
|
+
apiBasePath: '/api',
|
|
23
|
+
origin: 'https://example.com'
|
|
24
|
+
};
|
|
25
|
+
const wrapper = ({ children }) => (React.createElement(ArcContext.Provider, { value: config }, children));
|
|
26
|
+
it('should execute query again when argument changes', async () => {
|
|
27
|
+
const { rerender } = renderHook(({ args }) => useQuery(FakeQueryWithRequiredParameters, args), {
|
|
28
|
+
wrapper,
|
|
29
|
+
initialProps: { args: { userId: 'user-1', category: 'cat-1' } }
|
|
30
|
+
});
|
|
31
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
32
|
+
fetchStub.resetHistory();
|
|
33
|
+
rerender({ args: { userId: 'user-2', category: 'cat-1' } });
|
|
34
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=when_required_argument_changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.js","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_required_argument_changes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,+BAA+B,EAA4C,MAAM,mCAAmC,CAAC;AAC9H,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,IAAI,SAA0B,CAAC;IAC/B,IAAI,WAAsE,CAAC;IAE3E,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;SACxK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqB;QAC7B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,qBAAqB;KAChC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC7D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CACxE,CAAC;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAC3B,CAAC,EAAE,IAAI,EAAsD,EAAE,EAAE,CAAC,QAAQ,CAAC,+BAA+B,EAAE,IAAI,CAAC,EACjH;YACI,OAAO;YACP,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;SAClE,CACJ,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,SAAS,CAAC,YAAY,EAAE,CAAC;QAEzB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE5D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_sorting_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_sorting_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import { useQuery } from '../useQuery';
|
|
4
|
+
import { FakeQuery } from './FakeQuery';
|
|
5
|
+
import { ArcContext } from '../../ArcContext';
|
|
6
|
+
import { createFetchHelper } from '@cratis/arc/helpers/fetchHelper';
|
|
7
|
+
import { Sorting, SortDirection } from '@cratis/arc/queries';
|
|
8
|
+
describe('when sorting changes', () => {
|
|
9
|
+
let fetchStub;
|
|
10
|
+
let fetchHelper;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
fetchHelper = createFetchHelper();
|
|
13
|
+
fetchStub = fetchHelper.stubFetch();
|
|
14
|
+
fetchStub.resolves({
|
|
15
|
+
json: async () => ({ data: [], isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false, validationResults: [], exceptionMessages: [], exceptionStackTrace: '' })
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
fetchHelper.restore();
|
|
20
|
+
});
|
|
21
|
+
const config = {
|
|
22
|
+
microservice: 'test-microservice',
|
|
23
|
+
apiBasePath: '/api',
|
|
24
|
+
origin: 'https://example.com'
|
|
25
|
+
};
|
|
26
|
+
const wrapper = ({ children }) => (React.createElement(ArcContext.Provider, { value: config }, children));
|
|
27
|
+
it('should execute query again when sorting changes', async () => {
|
|
28
|
+
const { result } = renderHook(() => useQuery(FakeQuery), { wrapper });
|
|
29
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
30
|
+
fetchStub.resetHistory();
|
|
31
|
+
const [, , setSorting] = result.current;
|
|
32
|
+
await setSorting(new Sorting('name', SortDirection.ascending));
|
|
33
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=when_sorting_changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_sorting_changes.js","sourceRoot":"","sources":["../../../../queries/for_useQuery/when_sorting_changes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,IAAI,SAA0B,CAAC;IAC/B,IAAI,WAAsE,CAAC;IAE3E,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;SACxK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqB;QAC7B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,qBAAqB;KAChC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC7D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CACxE,CAAC;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EACzB,EAAE,OAAO,EAAE,CACd,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,SAAS,CAAC,YAAY,EAAE,CAAC;QAEzB,MAAM,CAAC,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,MAAM,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAE/D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_paging_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_paging_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import { useQueryWithPaging } from '../useQuery';
|
|
4
|
+
import { FakeQuery } from '../for_useQuery/FakeQuery';
|
|
5
|
+
import { ArcContext } from '../../ArcContext';
|
|
6
|
+
import { createFetchHelper } from '@cratis/arc/helpers/fetchHelper';
|
|
7
|
+
import { Paging } from '@cratis/arc/queries';
|
|
8
|
+
describe('when paging changes', () => {
|
|
9
|
+
let fetchStub;
|
|
10
|
+
let fetchHelper;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
fetchHelper = createFetchHelper();
|
|
13
|
+
fetchStub = fetchHelper.stubFetch();
|
|
14
|
+
fetchStub.resolves({
|
|
15
|
+
json: async () => ({ data: [], isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false, validationResults: [], exceptionMessages: [], exceptionStackTrace: '' })
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
fetchHelper.restore();
|
|
20
|
+
});
|
|
21
|
+
const config = {
|
|
22
|
+
microservice: 'test-microservice',
|
|
23
|
+
apiBasePath: '/api',
|
|
24
|
+
origin: 'https://example.com'
|
|
25
|
+
};
|
|
26
|
+
const wrapper = ({ children }) => (React.createElement(ArcContext.Provider, { value: config }, children));
|
|
27
|
+
it('should execute query again when page changes', async () => {
|
|
28
|
+
const { result } = renderHook(() => useQueryWithPaging(FakeQuery, new Paging(0, 10)), { wrapper });
|
|
29
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
30
|
+
fetchStub.resetHistory();
|
|
31
|
+
const [, , , setPage] = result.current;
|
|
32
|
+
await setPage(1);
|
|
33
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=when_paging_changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_paging_changes.js","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_paging_changes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,IAAI,SAA0B,CAAC;IAC/B,IAAI,WAAsE,CAAC;IAE3E,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;SACxK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqB;QAC7B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,qBAAqB;KAChC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC7D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CACxE,CAAC;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EACtD,EAAE,OAAO,EAAE,CACd,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,SAAS,CAAC,YAAY,EAAE,CAAC;QAEzB,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QACvC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAEjB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.d.ts","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_required_argument_changes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { renderHook, waitFor } from '@testing-library/react';
|
|
3
|
+
import { useQueryWithPaging } from '../useQuery';
|
|
4
|
+
import { FakeQueryWithRequiredParameters } from '../for_useQuery/FakeQueryWithRequiredParameters';
|
|
5
|
+
import { ArcContext } from '../../ArcContext';
|
|
6
|
+
import { createFetchHelper } from '@cratis/arc/helpers/fetchHelper';
|
|
7
|
+
import { Paging } from '@cratis/arc/queries';
|
|
8
|
+
describe('when required argument changes', () => {
|
|
9
|
+
let fetchStub;
|
|
10
|
+
let fetchHelper;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
fetchHelper = createFetchHelper();
|
|
13
|
+
fetchStub = fetchHelper.stubFetch();
|
|
14
|
+
fetchStub.resolves({
|
|
15
|
+
json: async () => ({ data: [], isSuccess: true, isAuthorized: true, isValid: true, hasExceptions: false, validationResults: [], exceptionMessages: [], exceptionStackTrace: '' })
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
fetchHelper.restore();
|
|
20
|
+
});
|
|
21
|
+
const config = {
|
|
22
|
+
microservice: 'test-microservice',
|
|
23
|
+
apiBasePath: '/api',
|
|
24
|
+
origin: 'https://example.com'
|
|
25
|
+
};
|
|
26
|
+
const wrapper = ({ children }) => (React.createElement(ArcContext.Provider, { value: config }, children));
|
|
27
|
+
it('should execute query again when argument changes', async () => {
|
|
28
|
+
const { rerender } = renderHook(({ args }) => useQueryWithPaging(FakeQueryWithRequiredParameters, new Paging(0, 10), args), {
|
|
29
|
+
wrapper,
|
|
30
|
+
initialProps: { args: { userId: 'user-1', category: 'cat-1' } }
|
|
31
|
+
});
|
|
32
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
33
|
+
fetchStub.resetHistory();
|
|
34
|
+
rerender({ args: { userId: 'user-2', category: 'cat-1' } });
|
|
35
|
+
await waitFor(() => fetchStub.should.have.been.calledOnce);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=when_required_argument_changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_required_argument_changes.js","sourceRoot":"","sources":["../../../../queries/for_useQueryWithPaging/when_required_argument_changes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,+BAA+B,EAA4C,MAAM,iDAAiD,CAAC;AAC5I,OAAO,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC5C,IAAI,SAA0B,CAAC;IAC/B,IAAI,WAAsE,CAAC;IAE3E,UAAU,CAAC,GAAG,EAAE;QACZ,WAAW,GAAG,iBAAiB,EAAE,CAAC;QAClC,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACpC,SAAS,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC;SACxK,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,WAAW,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqB;QAC7B,YAAY,EAAE,mBAAmB;QACjC,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,qBAAqB;KAChC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAiC,EAAE,EAAE,CAAC,CAC7D,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CACxE,CAAC;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAC3B,CAAC,EAAE,IAAI,EAAsD,EAAE,EAAE,CAC7D,kBAAkB,CAAC,+BAA+B,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAChF;YACI,OAAO;YACP,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;SAClE,CACJ,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,SAAS,CAAC,YAAY,EAAE,CAAC;QAEzB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAE5D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../queries/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAe,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../../queries/useQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAe,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAM5C,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAkErF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GAC1J;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;CAAC,CAG1E;AAYD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,SAAS,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,GACpL;IAAC,oBAAoB,CAAC,SAAS,CAAC;IAAE,YAAY,CAAC,UAAU,CAAC;IAAE,UAAU;IAAE,OAAO;IAAE,WAAW;CAAC,CAEhG"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { Paging, Sorting, QueryResultWithState } from '@cratis/arc/queries';
|
|
2
|
-
import { useContext, useRef,
|
|
2
|
+
import { useState, useContext, useRef, useMemo, useEffect } from 'react';
|
|
3
3
|
import { ArcContext } from '../ArcContext.js';
|
|
4
4
|
|
|
5
5
|
function useQueryInternal(query, performer, sorting, paging, args) {
|
|
6
|
-
paging
|
|
7
|
-
sorting
|
|
6
|
+
const [currentPaging, setCurrentPaging] = useState(paging ?? Paging.noPaging);
|
|
7
|
+
const [currentSorting, setCurrentSorting] = useState(sorting ?? Sorting.none);
|
|
8
8
|
const arc = useContext(ArcContext);
|
|
9
9
|
const queryInstance = useRef(null);
|
|
10
|
-
const [renderCounter, setRenderCounter] = useState(0);
|
|
11
10
|
queryInstance.current = useMemo(() => {
|
|
12
11
|
const instance = new query();
|
|
13
|
-
instance.paging =
|
|
14
|
-
instance.sorting =
|
|
12
|
+
instance.paging = currentPaging;
|
|
13
|
+
instance.sorting = currentSorting;
|
|
15
14
|
instance.setMicroservice(arc.microservice);
|
|
16
15
|
instance.setApiBasePath(arc.apiBasePath ?? '');
|
|
17
16
|
instance.setOrigin(arc.origin ?? '');
|
|
18
17
|
instance.setHttpHeadersCallback(arc.httpHeadersCallback ?? (() => ({})));
|
|
19
18
|
return instance;
|
|
20
|
-
}, []);
|
|
19
|
+
}, [currentPaging, currentSorting, arc.microservice, arc.apiBasePath, arc.origin]);
|
|
21
20
|
const [result, setResult] = useState(QueryResultWithState.initial(queryInstance.current.defaultValue));
|
|
21
|
+
const argumentsDependency = queryInstance.current.requiredRequestParameters.map(_ => args?.[_]);
|
|
22
22
|
const queryExecutor = (async (args) => {
|
|
23
23
|
if (queryInstance) {
|
|
24
24
|
try {
|
|
@@ -31,10 +31,7 @@ function useQueryInternal(query, performer, sorting, paging, args) {
|
|
|
31
31
|
});
|
|
32
32
|
useEffect(() => {
|
|
33
33
|
queryExecutor(args);
|
|
34
|
-
}, []);
|
|
35
|
-
const invalidate = () => {
|
|
36
|
-
setRenderCounter(renderCounter + 1);
|
|
37
|
-
};
|
|
34
|
+
}, [...argumentsDependency, ...[currentPaging, currentSorting]]);
|
|
38
35
|
return [
|
|
39
36
|
result,
|
|
40
37
|
async (args) => {
|
|
@@ -42,22 +39,13 @@ function useQueryInternal(query, performer, sorting, paging, args) {
|
|
|
42
39
|
await queryExecutor(args);
|
|
43
40
|
},
|
|
44
41
|
async (sorting) => {
|
|
45
|
-
|
|
46
|
-
queryInstance.current.sorting = sorting;
|
|
47
|
-
invalidate();
|
|
48
|
-
await queryExecutor(args);
|
|
42
|
+
setCurrentSorting(sorting);
|
|
49
43
|
},
|
|
50
44
|
async (page) => {
|
|
51
|
-
|
|
52
|
-
queryInstance.current.paging = new Paging(page, queryInstance.current.paging?.pageSize ?? 0);
|
|
53
|
-
invalidate();
|
|
54
|
-
await queryExecutor(args);
|
|
45
|
+
setCurrentPaging(new Paging(page, currentPaging.pageSize));
|
|
55
46
|
},
|
|
56
47
|
async (pageSize) => {
|
|
57
|
-
|
|
58
|
-
queryInstance.current.paging = new Paging(queryInstance.current.paging?.page ?? 0, pageSize);
|
|
59
|
-
invalidate();
|
|
60
|
-
await queryExecutor(args);
|
|
48
|
+
setCurrentPaging(new Paging(currentPaging.page, pageSize));
|
|
61
49
|
}
|
|
62
50
|
];
|
|
63
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.js","sources":["../../../queries/useQuery.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IQueryFor, QueryResultWithState, QueryResult, Paging, Sorting } from '@cratis/arc/queries';\nimport { Constructor } from '@cratis/fundamentals';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'react';\nimport { SetSorting } from './SetSorting';\nimport { SetPage } from './SetPage';\nimport { SetPageSize } from './SetPageSize';\nimport { ArcContext } from '../ArcContext';\n\n/**\n * Delegate type for performing a {@link IQueryFor} in the context of the {@link useQuery} hook.\n */\nexport type PerformQuery<TArguments = object> = (args?: TArguments) => Promise<void>;\n\ntype QueryPerformer<TQuery extends IQueryFor<TDataType>, TDataType, TArguments = object> = (performer: TQuery, args?: TArguments) => Promise<QueryResult<TDataType>>;\n\nfunction useQueryInternal<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, performer: QueryPerformer<TQuery, TDataType, TArguments>, sorting?: Sorting, paging?: Paging, args?: TArguments):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n paging
|
|
1
|
+
{"version":3,"file":"useQuery.js","sources":["../../../queries/useQuery.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IQueryFor, QueryResultWithState, QueryResult, Paging, Sorting } from '@cratis/arc/queries';\nimport { Constructor } from '@cratis/fundamentals';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'react';\nimport { SetSorting } from './SetSorting';\nimport { SetPage } from './SetPage';\nimport { SetPageSize } from './SetPageSize';\nimport { ArcContext } from '../ArcContext';\n\n/**\n * Delegate type for performing a {@link IQueryFor} in the context of the {@link useQuery} hook.\n */\nexport type PerformQuery<TArguments = object> = (args?: TArguments) => Promise<void>;\n\ntype QueryPerformer<TQuery extends IQueryFor<TDataType>, TDataType, TArguments = object> = (performer: TQuery, args?: TArguments) => Promise<QueryResult<TDataType>>;\n\nfunction useQueryInternal<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, performer: QueryPerformer<TQuery, TDataType, TArguments>, sorting?: Sorting, paging?: Paging, args?: TArguments):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n const [currentPaging, setCurrentPaging] = useState<Paging>(paging ?? Paging.noPaging);\n const [currentSorting, setCurrentSorting] = useState<Sorting>(sorting ?? Sorting.none);\n const arc = useContext(ArcContext);\n const queryInstance = useRef<TQuery | null>(null);\n\n queryInstance.current = useMemo(() => {\n const instance = new query() as TQuery;\n instance.paging = currentPaging;\n instance.sorting = currentSorting;\n instance.setMicroservice(arc.microservice);\n instance.setApiBasePath(arc.apiBasePath ?? '');\n instance.setOrigin(arc.origin ?? '');\n instance.setHttpHeadersCallback(arc.httpHeadersCallback ?? (() => ({})));\n return instance;\n }, [currentPaging, currentSorting, arc.microservice, arc.apiBasePath, arc.origin]);\n\n const [result, setResult] = useState<QueryResultWithState<TDataType>>(QueryResultWithState.initial(queryInstance.current!.defaultValue));\n const argumentsDependency = queryInstance.current!.requiredRequestParameters.map(_ => args?.[_]);\n\n const queryExecutor = (async (args?: TArguments) => {\n if (queryInstance) {\n try {\n const queryResult = await performer(queryInstance.current!, args);\n setResult(QueryResultWithState.fromQueryResult(queryResult, false));\n } catch {\n // Ignore\n }\n }\n });\n\n useEffect(() => {\n queryExecutor(args);\n }, [...argumentsDependency, ...[currentPaging, currentSorting]]);\n\n return [\n result!,\n async (args?: TArguments) => {\n setResult(QueryResultWithState.fromQueryResult(result!, true));\n await queryExecutor(args);\n },\n async (sorting: Sorting) => {\n setCurrentSorting(sorting);\n },\n async (page: number) => {\n setCurrentPaging(new Paging(page, currentPaging.pageSize));\n },\n async (pageSize: number) => {\n setCurrentPaging(new Paging(currentPaging.page, pageSize));\n }];\n}\n\n/**\n * React hook for working with {@link IQueryFor} within the state management of React.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param args Optional: Arguments for the query, if any\n * @returns Tuple of {@link QueryResult} and a {@link PerformQuery} delegate.\n */\nexport function useQuery<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting] {\n const [result, perform, setSorting] = useQueryInternal(query, async (queryInstance: TQuery, actualArgs?: TArguments) => await queryInstance.perform(actualArgs!), sorting, undefined, args);\n return [result, perform, setSorting];\n}\n\n/**\n * React hook for working with {@link IQueryFor} within the state management of React for queries with paging.\n * @template TDataType Type of model the query is for.\n * @template TQuery Type of query to use.\n * @template TArguments Optional: Arguments for the query, if any\n * @param query Query type constructor.\n * @param paging Paging information.\n * @param args Optional: Arguments for the query, if any\n * @returns Tuple of {@link QueryResult} and a {@link PerformQuery} delegate.\n */\nexport function useQueryWithPaging<TDataType, TQuery extends IQueryFor<TDataType>, TArguments = object>(query: Constructor<TQuery>, paging: Paging, args?: TArguments, sorting?: Sorting):\n [QueryResultWithState<TDataType>, PerformQuery<TArguments>, SetSorting, SetPage, SetPageSize] {\n return useQueryInternal(query, async (queryInstance: TQuery, actualArgs?: TArguments) => await queryInstance.perform(actualArgs!), sorting, paging, args);\n}\n"],"names":[],"mappings":"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"}
|