mirror of https://github.com/jiahaog/Nativefier
19 lines
586 B
JavaScript
19 lines
586 B
JavaScript
|
import fields from './fields';
|
||
|
|
||
|
function resultArrayToObject(fieldResults) {
|
||
|
return fieldResults.reduce((accumulator, value) => Object.assign({}, accumulator, value), {});
|
||
|
}
|
||
|
|
||
|
function inferredOptions(oldOptions, fieldResults) {
|
||
|
const newOptions = resultArrayToObject(fieldResults);
|
||
|
return Object.assign({}, oldOptions, newOptions);
|
||
|
}
|
||
|
|
||
|
// Takes the options object and infers new values
|
||
|
// which may need async work
|
||
|
export default function (options) {
|
||
|
const tasks = fields(options);
|
||
|
return Promise.all(tasks)
|
||
|
.then(fieldResults => inferredOptions(options, fieldResults));
|
||
|
}
|