@evlop/commons 1.0.119 → 1.0.120
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/src/data-sources/scopeDataSource.d.ts.map +1 -1
- package/dist/src/data-sources/scopeDataSource.js +1 -14
- package/dist/src/data-sources/scopeDataSource.js.map +1 -1
- package/dist/src/hooks/useDataSource.d.ts +4 -2
- package/dist/src/hooks/useDataSource.d.ts.map +1 -1
- package/dist/src/hooks/useDataSource.js +25 -20
- package/dist/src/hooks/useDataSource.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scopeDataSource.d.ts","sourceRoot":"","sources":["../../../src/data-sources/scopeDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"scopeDataSource.d.ts","sourceRoot":"","sources":["../../../src/data-sources/scopeDataSource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,QAAA,MAAM,eAAe,EAAE,WAEtB,CAAC;AAWF,eAAe,eAAe,CAAC"}
|
@@ -1,23 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
const lodash_1 = require("lodash");
|
4
|
-
const uuid_1 = require("uuid");
|
5
|
-
const constants_1 = require("../constants");
|
6
4
|
const scopeDataSource = (options, { scope }) => {
|
7
5
|
return lodash_1.get(scope, lodash_1.get(options, 'path'));
|
8
6
|
};
|
9
|
-
scopeDataSource.keyExtractor = (
|
10
|
-
const path = lodash_1.get(options, 'path', '');
|
11
|
-
const scopeValue = lodash_1.get(scope, lodash_1.get(options, 'path'));
|
12
|
-
return uuid_1.v5([
|
13
|
-
path,
|
14
|
-
JSON.stringify(scopeValue),
|
15
|
-
// to detect change in collection
|
16
|
-
lodash_1.get(scopeValue, 'page', ''),
|
17
|
-
lodash_1.get(scopeValue, 'isLoading', ''),
|
18
|
-
lodash_1.get(scopeValue, 'hasMore', ''),
|
19
|
-
].join(':'), constants_1.DATA_SOURCE_KEY_NAMESPACE);
|
20
|
-
};
|
7
|
+
scopeDataSource.keyExtractor = () => 'scope';
|
21
8
|
scopeDataSource.displayName = 'Scope';
|
22
9
|
scopeDataSource.identifier = 'scope';
|
23
10
|
scopeDataSource.type = 'Object';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scopeDataSource.js","sourceRoot":"","sources":["../../../src/data-sources/scopeDataSource.ts"],"names":[],"mappings":";;AAAA,mCAA6B;
|
1
|
+
{"version":3,"file":"scopeDataSource.js","sourceRoot":"","sources":["../../../src/data-sources/scopeDataSource.ts"],"names":[],"mappings":";;AAAA,mCAA6B;AAI7B,MAAM,eAAe,GAAgB,CAAC,OAAO,EAAE,EAAC,KAAK,EAAC,EAAC,EAAE;IACjD,OAAO,YAAG,CAAC,KAAK,EAAC,YAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAC;AAEF,eAAe,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;AAC7C,eAAe,CAAC,WAAW,GAAG,OAAO,CAAC;AACtC,eAAe,CAAC,UAAU,GAAG,OAAO,CAAC;AACrC,eAAe,CAAC,IAAI,GAAG,QAAQ,CAAC;AAChC,eAAe,CAAC,oBAAoB,GAAG;IACnC,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAG,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAC;CAEjG,CAAC;AAEF,kBAAe,eAAe,CAAC"}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import { Collection } from '../classes';
|
2
|
+
declare type DataSourceName = 'static' | 'collection' | 'url' | 'scope' | any;
|
2
3
|
interface DataSourceOptions {
|
3
|
-
type
|
4
|
-
|
4
|
+
type?: DataSourceName;
|
5
|
+
memoize?: boolean;
|
5
6
|
params?: string;
|
6
7
|
transformer?: string;
|
7
8
|
data?: Object;
|
9
|
+
[key: string]: any;
|
8
10
|
}
|
9
11
|
declare type Data = Collection | Object;
|
10
12
|
export declare const useDataSource: (source: string | DataSourceOptions, options?: DataSourceOptions) => Data;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDataSource.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDataSource.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"useDataSource.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDataSource.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKxC,aAAK,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;AACtE,UAAU,iBAAiB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAE;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,aAAK,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;AAIhC,eAAO,MAAM,aAAa,WAAa,MAAM,GAAG,iBAAiB,YAAa,iBAAiB,KAAI,IA4GlG,CAAC"}
|
@@ -11,30 +11,27 @@ const classes_1 = require("../classes");
|
|
11
11
|
const reducers_1 = require("../reducers");
|
12
12
|
const useScope_1 = require("./useScope");
|
13
13
|
const useTemplate_1 = __importDefault(require("./useTemplate"));
|
14
|
+
const defaultDatasourceOptions = { memoize: true };
|
14
15
|
const useDataSource = (source, options) => {
|
15
16
|
const dispatch = react_redux_1.useDispatch();
|
16
17
|
const template = useTemplate_1.default();
|
17
18
|
const scope = useScope_1.useScope();
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
}
|
19
|
+
const { dataSourceName, options: _dataSourceOptions } = react_1.useMemo(() => {
|
20
|
+
if (typeof source === 'object') {
|
21
|
+
return { dataSourceName: source.type, options: lodash_1.defaults(lodash_1.omit(source, ['type']), defaultDatasourceOptions) };
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
return { dataSourceName: source, options: lodash_1.defaults(options, defaultDatasourceOptions) };
|
25
|
+
}
|
26
|
+
}, [source, options]);
|
27
27
|
const dataSource = react_redux_1.useSelector(state => state.dataSource.dataSources[dataSourceName]);
|
28
|
-
|
28
|
+
// prepare datasource options by filling values from scope using template
|
29
|
+
const dataSourceOptions = react_1.useMemo(() => {
|
29
30
|
const paramNames = lodash_1.sortedUniq(lodash_1.map(lodash_1.get(dataSource, 'configurationOptions'), 'name'));
|
30
31
|
const templatedValues = lodash_1.reduce(paramNames, (acc, paramName) => (Object.assign(Object.assign({}, acc), { [paramName]: template(lodash_1.get(_dataSourceOptions, paramName)) })), {});
|
31
|
-
|
32
|
-
// to refresh value when scope changes for scoope data source
|
33
|
-
if (dataSourceName === 'scope' && templatedValues['path']) {
|
34
|
-
dependencies.push(lodash_1.get(scope, templatedValues['path']));
|
35
|
-
}
|
36
|
-
return { dependencies, dataSourceOptions: lodash_1.defaults(templatedValues, _dataSourceOptions) };
|
32
|
+
return lodash_1.defaults(templatedValues, _dataSourceOptions);
|
37
33
|
}, [scope, template, dataSourceName, dataSource, _dataSourceOptions]);
|
34
|
+
const { memoize } = dataSourceOptions;
|
38
35
|
const key = dataSource && dataSource.keyExtractor(dataSourceOptions, { scope, dispatch });
|
39
36
|
const currentValue = react_redux_1.useSelector(state => state.dataSource.data[key]);
|
40
37
|
const loadData = react_1.useCallback((params) => {
|
@@ -77,11 +74,15 @@ const useDataSource = (source, options) => {
|
|
77
74
|
});
|
78
75
|
}, [loadData, dataSourceOptions, scope, key]);
|
79
76
|
react_1.useEffect(() => {
|
80
|
-
if (
|
77
|
+
if (dataSourceName === 'scope')
|
78
|
+
return;
|
79
|
+
if (!currentValue || !memoize) {
|
81
80
|
loadData();
|
82
81
|
}
|
83
|
-
}, [key]);
|
84
|
-
|
82
|
+
}, [dataSourceName, key, memoize]);
|
83
|
+
const value = react_1.useMemo(() => {
|
84
|
+
if (dataSourceName === 'scope')
|
85
|
+
return;
|
85
86
|
if (lodash_1.get(dataSource, 'type') === 'Array') {
|
86
87
|
let items = lodash_1.get(currentValue, 'items');
|
87
88
|
items = Array.isArray(items) ? items : [];
|
@@ -102,7 +103,11 @@ const useDataSource = (source, options) => {
|
|
102
103
|
});
|
103
104
|
}
|
104
105
|
return currentValue || { isLoading: true };
|
105
|
-
}, [currentValue, dataSource]);
|
106
|
+
}, [dataSourceName, currentValue, dataSource]);
|
107
|
+
if (dataSourceName === 'scope') {
|
108
|
+
return lodash_1.get(scope, dataSourceOptions.path);
|
109
|
+
}
|
110
|
+
return value;
|
106
111
|
};
|
107
112
|
exports.useDataSource = useDataSource;
|
108
113
|
//# sourceMappingURL=useDataSource.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDataSource.js","sourceRoot":"","sources":["../../../src/hooks/useDataSource.tsx"],"names":[],"mappings":";;;;;;AAAA,mCAAiG;AACjG,iCAAwD;AACxD,6CAAuD;AACvD,wCAAwC;AACxC,0CAAmK;AACnK,yCAAsC;AACtC,gEAAwC;
|
1
|
+
{"version":3,"file":"useDataSource.js","sourceRoot":"","sources":["../../../src/hooks/useDataSource.tsx"],"names":[],"mappings":"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"}
|