'use strict'; // TODO(deepak1556): Deprecate and remove standalone netLog module, // it is now a property of session module. const { app, session } = require('electron'); // Fallback to default session. Object.setPrototypeOf(module.exports, new Proxy({}, { get(target, property) { if (!app.isReady()) return; const netLog = session.defaultSession.netLog; if (!Object.getPrototypeOf(netLog).hasOwnProperty(property)) return; // check for properties on the prototype chain that aren't functions if (typeof netLog[property] !== 'function') return netLog[property]; // Returning a native function directly would throw error. return (...args) => netLog[property](...args); }, ownKeys() { if (!app.isReady()) return []; return Object.getOwnPropertyNames(Object.getPrototypeOf(session.defaultSession.netLog)); }, getOwnPropertyDescriptor(target) { return { configurable: true, enumerable: true }; } }));