@dhis2/app-runtime
Advanced tools
Comparing version 2.1.0 to 2.1.1
@@ -251,3 +251,3 @@ 'use strict'; | ||
if (this.loadForever) { | ||
return new Promise(() => {}); | ||
return new Promise(() => undefined); | ||
} | ||
@@ -273,9 +273,11 @@ | ||
case 'function': | ||
const result = await customResource(type, query, options); | ||
{ | ||
const result = await customResource(type, query, options); | ||
if (typeof result === 'undefined' && this.failOnMiss) { | ||
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`); | ||
if (typeof result === 'undefined' && this.failOnMiss) { | ||
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`); | ||
} | ||
return result || null; | ||
} | ||
return result || null; | ||
} | ||
@@ -467,4 +469,30 @@ } | ||
const queryParametersToQueryString = params => Object.keys(params).filter(key => key && params[key]).map(key => `${encodeURIComponent(key)}=${encodeQueryParameter(params[key])}`).join('&'); | ||
const queryParametersMapToArray = params => Object.keys(params).reduce((out, key) => { | ||
const value = params[key]; | ||
if (key === 'filter' && Array.isArray(value)) { | ||
value.forEach(item => { | ||
out.push({ | ||
key: 'filter', | ||
value: item | ||
}); | ||
}); | ||
} else if (params[key] !== null && params[key] !== undefined) { | ||
out.push({ | ||
key, | ||
value: params[key] | ||
}); | ||
} | ||
return out; | ||
}, []); | ||
const queryParametersToQueryString = params => { | ||
const expandedParams = queryParametersMapToArray(params); | ||
return expandedParams.map(({ | ||
key, | ||
value | ||
}) => `${encodeURIComponent(key)}=${encodeQueryParameter(value)}`).join('&'); | ||
}; | ||
const actionPrefix = 'action::'; | ||
@@ -551,3 +579,3 @@ | ||
}; | ||
return React__default.createElement(DataContext.Provider, { | ||
return /*#__PURE__*/React__default.createElement(DataContext.Provider, { | ||
value: context | ||
@@ -678,3 +706,3 @@ }, children); | ||
return new Promise(() => {}); | ||
return new Promise(() => undefined); // Wait forever | ||
}).catch(error => { | ||
@@ -689,3 +717,3 @@ if (!controller.signal.aborted) { | ||
return new Promise(() => {}); // Don't throw errors in refetch promises, wait forever | ||
return new Promise(() => undefined); // Don't throw errors in refetch promises, wait forever | ||
}); | ||
@@ -777,3 +805,3 @@ }, [abort, onComplete, onError, singular, theExecute]); // Don't include immediate or refetch as deps, otherwise unintentional refetches | ||
children | ||
}) => React__default.createElement(ConfigContext.Provider, { | ||
}) => /*#__PURE__*/React__default.createElement(ConfigContext.Provider, { | ||
value: makeContext(config) | ||
@@ -838,3 +866,3 @@ }, children); | ||
}; | ||
return React__default.createElement(DataContext.Provider, { | ||
return /*#__PURE__*/React__default.createElement(DataContext.Provider, { | ||
value: context | ||
@@ -841,0 +869,0 @@ }, props.children); |
@@ -244,3 +244,3 @@ import React, { useRef, useState, useEffect, useCallback, useContext } from 'react'; | ||
if (this.loadForever) { | ||
return new Promise(() => {}); | ||
return new Promise(() => undefined); | ||
} | ||
@@ -266,9 +266,11 @@ | ||
case 'function': | ||
const result = await customResource(type, query, options); | ||
{ | ||
const result = await customResource(type, query, options); | ||
if (typeof result === 'undefined' && this.failOnMiss) { | ||
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`); | ||
if (typeof result === 'undefined' && this.failOnMiss) { | ||
throw new Error(`The custom function for resource ${query.resource} must always return a value but returned ${result}`); | ||
} | ||
return result || null; | ||
} | ||
return result || null; | ||
} | ||
@@ -460,4 +462,30 @@ } | ||
const queryParametersToQueryString = params => Object.keys(params).filter(key => key && params[key]).map(key => `${encodeURIComponent(key)}=${encodeQueryParameter(params[key])}`).join('&'); | ||
const queryParametersMapToArray = params => Object.keys(params).reduce((out, key) => { | ||
const value = params[key]; | ||
if (key === 'filter' && Array.isArray(value)) { | ||
value.forEach(item => { | ||
out.push({ | ||
key: 'filter', | ||
value: item | ||
}); | ||
}); | ||
} else if (params[key] !== null && params[key] !== undefined) { | ||
out.push({ | ||
key, | ||
value: params[key] | ||
}); | ||
} | ||
return out; | ||
}, []); | ||
const queryParametersToQueryString = params => { | ||
const expandedParams = queryParametersMapToArray(params); | ||
return expandedParams.map(({ | ||
key, | ||
value | ||
}) => `${encodeURIComponent(key)}=${encodeQueryParameter(value)}`).join('&'); | ||
}; | ||
const actionPrefix = 'action::'; | ||
@@ -544,3 +572,3 @@ | ||
}; | ||
return React.createElement(DataContext.Provider, { | ||
return /*#__PURE__*/React.createElement(DataContext.Provider, { | ||
value: context | ||
@@ -671,3 +699,3 @@ }, children); | ||
return new Promise(() => {}); | ||
return new Promise(() => undefined); // Wait forever | ||
}).catch(error => { | ||
@@ -682,3 +710,3 @@ if (!controller.signal.aborted) { | ||
return new Promise(() => {}); // Don't throw errors in refetch promises, wait forever | ||
return new Promise(() => undefined); // Don't throw errors in refetch promises, wait forever | ||
}); | ||
@@ -770,3 +798,3 @@ }, [abort, onComplete, onError, singular, theExecute]); // Don't include immediate or refetch as deps, otherwise unintentional refetches | ||
children | ||
}) => React.createElement(ConfigContext.Provider, { | ||
}) => /*#__PURE__*/React.createElement(ConfigContext.Provider, { | ||
value: makeContext(config) | ||
@@ -831,3 +859,3 @@ }, children); | ||
}; | ||
return React.createElement(DataContext.Provider, { | ||
return /*#__PURE__*/React.createElement(DataContext.Provider, { | ||
value: context | ||
@@ -834,0 +862,0 @@ }, props.children); |
{ | ||
"name": "@dhis2/app-runtime", | ||
"description": "A singular runtime dependency for applications on the DHIS2 platform", | ||
"version": "2.1.0", | ||
"version": "2.1.1", | ||
"main": "build/cjs/index.js", | ||
@@ -22,4 +22,4 @@ "module": "build/es/index.js", | ||
"devDependencies": { | ||
"@dhis2/app-service-config": "2.1.0", | ||
"@dhis2/app-service-data": "2.1.0" | ||
"@dhis2/app-service-config": "2.1.1", | ||
"@dhis2/app-service-data": "2.1.1" | ||
}, | ||
@@ -26,0 +26,0 @@ "peerDependencies": { |
@@ -19,9 +19,8 @@ # DHIS2 Application Runtime | ||
* es6.promise (i.e. [core-js/features/promise](https://github.com/zloirock/core-js)) | ||
* window.fetch (i.e. [whatwg-fetch](https://github.com/github/fetch)) | ||
* AbortController / AbortSignal (i.e. [abortcontroller-polyfill](https://www.npmjs.com/package/abortcontroller-polyfill)) | ||
- es6.promise (i.e. [core-js/features/promise](https://github.com/zloirock/core-js)) | ||
- window.fetch (i.e. [whatwg-fetch](https://github.com/github/fetch)) | ||
- AbortController / AbortSignal (i.e. [abortcontroller-polyfill](https://www.npmjs.com/package/abortcontroller-polyfill)) | ||
## Usage | ||
See [the docs](https://runtime.dhis2.nu) for usage and examples |
60956
1937
26