mirror of https://github.com/jiahaog/Nativefier
23 lines
603 B
JavaScript
23 lines
603 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),
|
|
);
|
|
}
|