1
0
mirror of https://github.com/jiahaog/Nativefier synced 2024-06-26 07:38:59 +02:00
Nativefier/src/options/asyncConfig.js
2018-05-24 00:02:44 -07:00

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),
);
}