UNPKG

backendless-consul-config-provider

Version:

Consul Configs provider for Backendless' JS Servers

50 lines (37 loc) 1.05 kB
'use strict' function ensureObject(value) { return (typeof value === 'object' && value !== null) ? value : {} } function isObject(value) { return typeof value === 'object' && value !== null } function mergeObjects(target, source) { const result = {} const keys = Object.keys(target).concat(Object.keys(source)).reduce((memo, key) => { if (!memo.includes(key)) { memo.push(key) } return memo }, []) keys.forEach(key => { const isTargetValueObject = isObject(target[key]) const isSourceValueObject = isObject(source[key]) if (isTargetValueObject && isSourceValueObject) { result[key] = mergeObjects(target[key], source[key]) } else if (source[key] !== undefined) { result[key] = source[key] } else { result[key] = target[key] } }) return result } function wait(timeout) { return new Promise(resolve => setTimeout(resolve, timeout)) } exports.wait = wait exports.ensureObject = ensureObject exports.mergeObjects = mergeObjects exports.isObject = isObject