default-options.js 464 B

12345678910111213141516171819202122
  1. "use strict";
  2. module.exports.defaultOptions = defaultOptions;
  3. // _.defaults(), but simplified:
  4. // * All inputs are plain objects
  5. // * Only own keys, not inherited
  6. function defaultOptions(...sources) {
  7. const options = {};
  8. for (const source of sources) {
  9. if (source != null) {
  10. for (const key of Object.keys(source)) {
  11. if (options[key] === undefined) {
  12. options[key] = source[key];
  13. }
  14. }
  15. }
  16. }
  17. return options;
  18. }