const handleESModule = (loader: ElectronInternal.ModuleLoader) => () => { const value = loader() if (value.__esModule && value.default) return value.default return value } // Attaches properties to |targetExports|. export function defineProperties (targetExports: Object, moduleList: ElectronInternal.ModuleEntry[]) { const descriptors: PropertyDescriptorMap = {} for (const module of moduleList) { descriptors[module.name] = { enumerable: !module.private, get: handleESModule(module.loader) } } return Object.defineProperties(targetExports, descriptors) }