@sitecore-feaas/clientside 0.2.2 → 0.3.1
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/README.md +1 -1
- package/build/components/FEAASComponent.js +11 -5
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/components/FEAASElement.js +34 -9
- package/build/components/FEAASElement.js.map +1 -1
- package/build/dom/rendering.js +1 -1
- package/build/dom/rendering.js.map +1 -1
- package/build/dom/thumbnail.js +29 -24
- package/build/dom/thumbnail.js.map +1 -1
- package/build/headless.js +5 -1
- package/build/headless.js.map +1 -1
- package/build/ui/FEAASExternal.js +15 -13
- package/build/ui/FEAASExternal.js.map +1 -1
- package/build/ui/FEAASPicker.js +20 -5
- package/build/ui/FEAASPicker.js.map +1 -1
- package/build/ui/react.js +33 -10
- package/build/ui/react.js.map +1 -1
- package/build/{dom → utils}/data.js +3 -0
- package/build/utils/data.js.map +1 -0
- package/build/utils/datapath.js +21 -2
- package/build/utils/datapath.js.map +1 -1
- package/build/utils/settings.js +162 -0
- package/build/utils/settings.js.map +1 -0
- package/dist/browser/headless.cjs +8 -6
- package/dist/browser/headless.cjs.map +4 -4
- package/dist/browser/headless.esm.js +8 -6
- package/dist/browser/headless.esm.js.map +1 -1
- package/dist/browser/index.cjs +8 -6
- package/dist/browser/index.cjs.map +4 -4
- package/dist/browser/index.esm.js +8 -6
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/react.cjs +8 -6
- package/dist/browser/react.cjs.map +4 -4
- package/dist/browser/react.esm.js +8 -6
- package/dist/browser/react.esm.js.map +1 -1
- package/dist/node/headless.cjs +6 -4
- package/dist/node/headless.cjs.map +4 -4
- package/dist/node/headless.esm.js +6 -4
- package/dist/node/headless.esm.js.map +4 -4
- package/dist/node/index.cjs +6 -4
- package/dist/node/index.cjs.map +4 -4
- package/dist/node/index.esm.js +6 -4
- package/dist/node/index.esm.js.map +4 -4
- package/dist/node/react.cjs +6 -4
- package/dist/node/react.cjs.map +4 -4
- package/dist/node/react.esm.js +6 -4
- package/dist/node/react.esm.js.map +4 -4
- package/headless.cjs +6 -4
- package/headless.cjs.map +4 -4
- package/headless.js +6 -4
- package/headless.js.map +4 -4
- package/package.json +1 -1
- package/react.cjs +8 -6
- package/react.cjs.map +4 -4
- package/react.js +8 -6
- package/react.js.map +4 -4
- package/src/components/FEAASComponent.tsx +21 -8
- package/src/components/FEAASElement.tsx +35 -8
- package/src/dom/component.ts +2 -2
- package/src/dom/html.ts +2 -2
- package/src/dom/rendering.ts +10 -7
- package/src/dom/thumbnail.ts +29 -24
- package/src/headless.ts +6 -1
- package/src/ui/FEAASExternal.tsx +15 -13
- package/src/ui/FEAASPicker.tsx +23 -6
- package/src/ui/react.tsx +53 -16
- package/src/{dom → utils}/data.ts +3 -1
- package/src/utils/datapath.ts +24 -2
- package/src/utils/settings.ts +200 -0
- package/test/FEAASComponent.react.test.tsx +1 -1
- package/test/{FEAASComponent2.test.tsx → FEAASComponentData.test.tsx} +56 -52
- package/test/ServerComponent.test.tsx +33 -0
- package/test/cdn.ts +1 -1
- package/test/datasettings.test.ts +248 -0
- package/test/{extras.ts → extras.test.ts} +1 -1
- package/test/fetch.ts +2 -2
- package/types/components/FEAASComponent.d.ts +10 -5
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/components/FEAASElement.d.ts +2 -0
- package/types/components/FEAASElement.d.ts.map +1 -1
- package/types/dom/component.d.ts +2 -2
- package/types/dom/component.d.ts.map +1 -1
- package/types/dom/html.d.ts +2 -2
- package/types/dom/html.d.ts.map +1 -1
- package/types/dom/rendering.d.ts +8 -7
- package/types/dom/rendering.d.ts.map +1 -1
- package/types/dom/thumbnail.d.ts +16 -16
- package/types/dom/thumbnail.d.ts.map +1 -1
- package/types/headless.d.ts +6 -1
- package/types/headless.d.ts.map +1 -1
- package/types/tsbuildinfo +1 -1
- package/types/ui/FEAASExternal.d.ts +15 -13
- package/types/ui/FEAASExternal.d.ts.map +1 -1
- package/types/ui/FEAASPicker.d.ts +9 -6
- package/types/ui/FEAASPicker.d.ts.map +1 -1
- package/types/ui/react.d.ts +8 -3
- package/types/ui/react.d.ts.map +1 -1
- package/types/ui/tsbuildinfo +1 -1
- package/types/{dom → utils}/data.d.ts +1 -1
- package/types/utils/data.d.ts.map +1 -0
- package/types/utils/datapath.d.ts +3 -0
- package/types/utils/datapath.d.ts.map +1 -1
- package/types/utils/settings.d.ts +89 -0
- package/types/utils/settings.d.ts.map +1 -0
- package/build/dom/data.js.map +0 -1
- package/build/utils/fetch.js +0 -26
- package/build/utils/fetch.js.map +0 -1
- package/src/utils/fetch.ts +0 -44
- package/test/cjs/tsconfig.json +0 -9
- package/test/fetch-data.ts +0 -55
- package/types/dom/data.d.ts.map +0 -1
- package/types/utils/fetch.d.ts +0 -9
- package/types/utils/fetch.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSONPath } from 'jsonpath-plus';
|
|
2
|
-
export
|
|
2
|
+
export declare function queryObject(json: any, path: string): any;
|
|
3
3
|
export declare function queryScopes(scopes: any, datapath: string, singleValue?: boolean, json?: any): any;
|
|
4
4
|
export type CH1Node = {
|
|
5
5
|
type: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/utils/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAElD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,UAAQ,EAAE,IAAI,GAAE,GAAY,OAsDjG;AAED,MAAM,MAAM,OAAO,GACf;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B,GACD,OAAO,EAAE,CAAA;AAQb,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAqCtF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -3,4 +3,7 @@ export declare const parseRange: (qualifier: string) => string;
|
|
|
3
3
|
export declare const getQualifier: (jsonpath: string) => string;
|
|
4
4
|
export declare function cleanCollectionBit(path: string): string;
|
|
5
5
|
export declare function normalizeCollectionScope(path: string): string;
|
|
6
|
+
export declare function adjustNumbers(string: string, diff: number): string;
|
|
7
|
+
export declare function getHumanizedLabel(path: string, maxBits?: number): string;
|
|
8
|
+
export declare function getLastPathBit(path: string): string;
|
|
6
9
|
//# sourceMappingURL=datapath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datapath.d.ts","sourceRoot":"","sources":["../../src/utils/datapath.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,cAAe,MAAM,WAI3C,CAAA;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,WAc3C,CAAA;AAED,eAAO,MAAM,YAAY,aAAc,MAAM,WAA+C,CAAA;AAE5F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAE9C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAEpD"}
|
|
1
|
+
{"version":3,"file":"datapath.d.ts","sourceRoot":"","sources":["../../src/utils/datapath.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,cAAe,MAAM,WAI3C,CAAA;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,WAc3C,CAAA;AAED,eAAO,MAAM,YAAY,aAAc,MAAM,WAA+C,CAAA;AAE5F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAE9C;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,UAEpD;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAEzD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,UAW1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export type DataSourceId = string;
|
|
2
|
+
export type Data = Record<string, any> | any[];
|
|
3
|
+
export type DataScopes = Data | Record<DataSourceId, Data>;
|
|
4
|
+
export type DataSettings = ReturnType<typeof DataSettings>;
|
|
5
|
+
export type DataOptionsById = Record<DataSourceId, DataSettings | Data>;
|
|
6
|
+
export type DataOptions = Data | DataSettings | DataOptionsById;
|
|
7
|
+
/**
|
|
8
|
+
* Cleans the provided settings object by removing unnecessary properties that match the defaults that will be re-added
|
|
9
|
+
* back through normalizations. This method is used for code generated for the user, neant to make it look neater.
|
|
10
|
+
*
|
|
11
|
+
* @param {any} settings - The settings object to be cleaned.
|
|
12
|
+
* @returns {Object} - The cleaned settings object.
|
|
13
|
+
*/
|
|
14
|
+
export declare function clean(settings: any): Partial<{
|
|
15
|
+
params: Record<string, any>;
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
jsonpath: string;
|
|
18
|
+
method: "HEAD" | "GET" | "POST" | "OPTIONS" | "PUT" | "DELETE" | "UPDATE";
|
|
19
|
+
body: Record<string, any>;
|
|
20
|
+
url: string;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if the provided data is of type DataSettings by checking if all keys are recognized as settings keys.
|
|
24
|
+
*
|
|
25
|
+
* @param {any} data - The data to be checked.
|
|
26
|
+
* @returns {boolean} - True if the data is of type DataSettings, false otherwise.
|
|
27
|
+
*/
|
|
28
|
+
export declare const isDataSettings: (data: any) => data is {
|
|
29
|
+
params: Record<string, any>;
|
|
30
|
+
headers: Record<string, string>;
|
|
31
|
+
jsonpath: string;
|
|
32
|
+
method: "HEAD" | "GET" | "POST" | "OPTIONS" | "PUT" | "DELETE" | "UPDATE";
|
|
33
|
+
body: Record<string, any>;
|
|
34
|
+
url: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Converts settings object into fetch function arguments.
|
|
38
|
+
*
|
|
39
|
+
* @param {any} settings - The settings object.
|
|
40
|
+
* @returns {Array} - An array containing URL and options objects as fetch function arguments.
|
|
41
|
+
*/
|
|
42
|
+
export declare function toFetchArguments(settings?: any): Parameters<typeof fetch>;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a DataSettings object based on the provided settings. These settings are used later to fetch data for the
|
|
45
|
+
* component. It's essentially fetch options with url.
|
|
46
|
+
*
|
|
47
|
+
* @param {any} settings - The settings object.
|
|
48
|
+
* @returns {DataSettings} - The DataSettings object.
|
|
49
|
+
*/
|
|
50
|
+
export declare function DataSettings(settings: any): {
|
|
51
|
+
params: Record<string, any>;
|
|
52
|
+
headers: Record<string, string>;
|
|
53
|
+
jsonpath: string;
|
|
54
|
+
method: "HEAD" | "GET" | "POST" | "OPTIONS" | "PUT" | "DELETE" | "UPDATE";
|
|
55
|
+
body: Record<string, any>;
|
|
56
|
+
url: string;
|
|
57
|
+
};
|
|
58
|
+
export declare namespace DataSettings {
|
|
59
|
+
var clean: typeof import("./settings.js").clean;
|
|
60
|
+
var toFetchArguments: typeof import("./settings.js").toFetchArguments;
|
|
61
|
+
var fetchOne: (settings: {
|
|
62
|
+
params: Record<string, any>;
|
|
63
|
+
headers: Record<string, string>;
|
|
64
|
+
jsonpath: string;
|
|
65
|
+
method: "HEAD" | "GET" | "POST" | "OPTIONS" | "PUT" | "DELETE" | "UPDATE";
|
|
66
|
+
body: Record<string, any>;
|
|
67
|
+
url: string;
|
|
68
|
+
}) => Promise<Data>;
|
|
69
|
+
var fetch: typeof fetchData;
|
|
70
|
+
var isDataSettings: (data: any) => data is {
|
|
71
|
+
params: Record<string, any>;
|
|
72
|
+
headers: Record<string, string>;
|
|
73
|
+
jsonpath: string;
|
|
74
|
+
method: "HEAD" | "GET" | "POST" | "OPTIONS" | "PUT" | "DELETE" | "UPDATE";
|
|
75
|
+
body: Record<string, any>;
|
|
76
|
+
url: string;
|
|
77
|
+
};
|
|
78
|
+
var fetchImplementation: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fetches data based on the provided data options. Options is a union of different types, settngs, data or
|
|
82
|
+
* datasource-id keyed settings/data. If the function doesnt find settings in the object, it returns it as is. It
|
|
83
|
+
* supports mixing of static and fetched data. If multiple data settings are found, requests are made in parallel.
|
|
84
|
+
*
|
|
85
|
+
* @param {DataOptions} data - The data options.
|
|
86
|
+
* @returns {Promise<DataScopes>} - A promise that resolves to the fetched data.
|
|
87
|
+
*/
|
|
88
|
+
export declare function fetchData(data: DataOptions): Promise<DataScopes>;
|
|
89
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAGjC,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAA;AAG9C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAG1D,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAG1D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,CAAA;AAGvE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,YAAY,GAAG,eAAe,CAAA;AAE/D;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,GAAG;;;;;;;GAmBlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,SAAU,GAAG;;;;;;;CAmBvC,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CA2BzE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,GAAG;;;;;;;EAwBzC;yBAxBe,YAAY;;;;;;;;;;;;;;;;;;;;;;AAgD5B;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAoBtE"}
|
package/build/dom/data.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/dom/data.ts"],"names":[],"mappings":"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"}
|
package/build/utils/fetch.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export const isDataSettings = (data) => typeof data === 'object' && 'jsonpath' in data && 'url' in data;
|
|
2
|
-
const performFetch = async (settings) => {
|
|
3
|
-
try {
|
|
4
|
-
const response = await fetch(settings.url, settings);
|
|
5
|
-
if (!response)
|
|
6
|
-
return {};
|
|
7
|
-
return await response.json();
|
|
8
|
-
}
|
|
9
|
-
catch (e) {
|
|
10
|
-
return {};
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
export async function fetchData(data) {
|
|
14
|
-
if (!data)
|
|
15
|
-
return data;
|
|
16
|
-
console.log(data);
|
|
17
|
-
if (isDataSettings(data))
|
|
18
|
-
return performFetch(data);
|
|
19
|
-
const keys = Object.keys(data);
|
|
20
|
-
const allRequests = await Promise.all(keys.map((key) => (isDataSettings(data[key]) ? performFetch(data[key]) : null)).filter(Boolean));
|
|
21
|
-
return keys.reduce((obj, key) => ({
|
|
22
|
-
...obj,
|
|
23
|
-
[key]: isDataSettings(data[key]) ? allRequests.shift() : data[key]
|
|
24
|
-
}), {});
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=fetch.js.map
|
package/build/utils/fetch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAS,EAAwB,EAAE,CAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAA;AAEjE,MAAM,YAAY,GAAG,KAAK,EACxB,QAEC,EACc,EAAE;IACjB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAEpD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAExB,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;KAC7B;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,CAAA;KACV;AACH,CAAC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAA+D;IAC7F,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAEtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAEjB,IAAI,cAAc,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;IAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE9B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAsB,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACnH,CAAA;IAED,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,GAAG,EAAE,GAAsB,EAAE,EAAE,CAAC,CAAC;QAChC,GAAG,GAAG;QACN,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KACnE,CAAC,EACF,EAAE,CACH,CAAA;AACH,CAAC"}
|
package/src/utils/fetch.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
type Data = object | any[]
|
|
2
|
-
|
|
3
|
-
type DataSettings = { jsonpath: string; url: string }
|
|
4
|
-
|
|
5
|
-
export const isDataSettings = (data: any): data is DataSettings =>
|
|
6
|
-
typeof data === 'object' && 'jsonpath' in data && 'url' in data
|
|
7
|
-
|
|
8
|
-
const performFetch = async (
|
|
9
|
-
settings: Parameters<typeof fetch>[1] & {
|
|
10
|
-
url: Parameters<typeof fetch>[0]
|
|
11
|
-
}
|
|
12
|
-
): Promise<Data> => {
|
|
13
|
-
try {
|
|
14
|
-
const response = await fetch(settings.url, settings)
|
|
15
|
-
|
|
16
|
-
if (!response) return {}
|
|
17
|
-
|
|
18
|
-
return await response.json()
|
|
19
|
-
} catch (e) {
|
|
20
|
-
return {}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export async function fetchData(data: DataSettings | Record<string, DataSettings | Data> | Data): Promise<Data> {
|
|
25
|
-
if (!data) return data
|
|
26
|
-
|
|
27
|
-
console.log(data)
|
|
28
|
-
|
|
29
|
-
if (isDataSettings(data)) return performFetch(data)
|
|
30
|
-
|
|
31
|
-
const keys = Object.keys(data)
|
|
32
|
-
|
|
33
|
-
const allRequests = await Promise.all(
|
|
34
|
-
keys.map((key: keyof typeof data) => (isDataSettings(data[key]) ? performFetch(data[key]) : null)).filter(Boolean)
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
return keys.reduce(
|
|
38
|
-
(obj, key: keyof typeof data) => ({
|
|
39
|
-
...obj,
|
|
40
|
-
[key]: isDataSettings(data[key]) ? allRequests.shift() : data[key]
|
|
41
|
-
}),
|
|
42
|
-
{}
|
|
43
|
-
)
|
|
44
|
-
}
|
package/test/cjs/tsconfig.json
DELETED
package/test/fetch-data.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { vi, describe, it, expect } from 'vitest'
|
|
2
|
-
import { fetchData } from '../src/utils/fetch.js'
|
|
3
|
-
|
|
4
|
-
describe('Fetches data', () => {
|
|
5
|
-
it('fetches when passed data object', async () => {
|
|
6
|
-
const result = await fetchData({ hello: 'world' })
|
|
7
|
-
|
|
8
|
-
expect(result).toEqual({ hello: 'world' })
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
it('fetches when passed settings object', async () => {
|
|
12
|
-
const spy = vi.spyOn(global, 'fetch')
|
|
13
|
-
spy.mockImplementation(
|
|
14
|
-
async (url: string, options?: Parameters<typeof fetch>[1]) =>
|
|
15
|
-
new Response(JSON.stringify({ data: 'My data' }), {})
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
const result = await fetchData({ jsonpath: '$', url: 'http://my-url' })
|
|
19
|
-
|
|
20
|
-
expect(result).toEqual({ data: 'My data' })
|
|
21
|
-
|
|
22
|
-
expect(spy).toHaveBeenCalledOnce()
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
it('fetches when passed mapping object', async () => {
|
|
26
|
-
const spy = vi.spyOn(global, 'fetch')
|
|
27
|
-
spy.mockImplementation(async (url: string, options?: Parameters<typeof fetch>[1]) => {
|
|
28
|
-
if (url === 'http://my-url1') return new Response(JSON.stringify({ data: 'My data1' }), {})
|
|
29
|
-
if (url === 'http://my-url2') return new Response(JSON.stringify({ data: 'My data2' }), {})
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
const inputData = {
|
|
33
|
-
datasourceId1: { jsonpath: '$', url: 'http://my-url1' },
|
|
34
|
-
datasourceId2: { data: 'This is plain data' },
|
|
35
|
-
datasourceId3: { jsonpath: '$', url: 'http://my-url2' },
|
|
36
|
-
datasourceId4: { jsonpath: '$', url: 'http://bad-url' }
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const result = await fetchData(inputData)
|
|
40
|
-
|
|
41
|
-
expect(result).to.have.property('datasourceId1')
|
|
42
|
-
expect((result as Record<keyof typeof inputData, any>).datasourceId1).toEqual({ data: 'My data1' })
|
|
43
|
-
|
|
44
|
-
expect(result).to.have.property('datasourceId2')
|
|
45
|
-
expect((result as Record<keyof typeof inputData, any>).datasourceId2).toEqual({ data: 'This is plain data' })
|
|
46
|
-
|
|
47
|
-
expect(result).to.have.property('datasourceId3')
|
|
48
|
-
expect((result as Record<keyof typeof inputData, any>).datasourceId3).toEqual({ data: 'My data2' })
|
|
49
|
-
|
|
50
|
-
expect(result).to.have.property('datasourceId4')
|
|
51
|
-
expect((result as Record<keyof typeof inputData, any>).datasourceId4).toEqual({})
|
|
52
|
-
|
|
53
|
-
expect(spy).toHaveBeenCalledTimes(3)
|
|
54
|
-
})
|
|
55
|
-
})
|
package/types/dom/data.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/dom/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAA;AAEpD,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,UAAQ,EAAE,IAAI,GAAE,GAAY,OAsDjG;AAED,MAAM,MAAM,OAAO,GACf;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B,GACD,OAAO,EAAE,CAAA;AAQb,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAqCtF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
package/types/utils/fetch.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type Data = object | any[];
|
|
2
|
-
type DataSettings = {
|
|
3
|
-
jsonpath: string;
|
|
4
|
-
url: string;
|
|
5
|
-
};
|
|
6
|
-
export declare const isDataSettings: (data: any) => data is DataSettings;
|
|
7
|
-
export declare function fetchData(data: DataSettings | Record<string, DataSettings | Data> | Data): Promise<Data>;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,MAAM,GAAG,GAAG,EAAE,CAAA;AAE1B,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,cAAc,SAAU,GAAG,yBACyB,CAAA;AAkBjE,wBAAsB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9G"}
|