const path = require('path') const electron = require('electron') const dirname = path.dirname path.dirname = function (path) { if (typeof path !== 'string') { path = '' + path const Grim = require('grim') Grim.deprecate('Argument to `path.dirname` must be a string') } return dirname(path) } const extname = path.extname path.extname = function (path) { if (typeof path !== 'string') { path = '' + path const Grim = require('grim') Grim.deprecate('Argument to `path.extname` must be a string') } return extname(path) } const basename = path.basename path.basename = function (path, ext) { if (typeof path !== 'string' || (ext !== undefined && typeof ext !== 'string')) { path = '' + path const Grim = require('grim') Grim.deprecate('Arguments to `path.basename` must be strings') } return basename(path, ext) } electron.ipcRenderer.sendChannel = function () { const Grim = require('grim') Grim.deprecate('Use `ipcRenderer.send` instead of `ipcRenderer.sendChannel`') return this.send.apply(this, arguments) } const remoteRequire = electron.remote.require electron.remote.require = function (moduleName) { const Grim = require('grim') switch (moduleName) { case 'menu': Grim.deprecate('Use `remote.Menu` instead of `remote.require("menu")`') return this.Menu case 'menu-item': Grim.deprecate('Use `remote.MenuItem` instead of `remote.require("menu-item")`') return this.MenuItem case 'browser-window': Grim.deprecate('Use `remote.BrowserWindow` instead of `remote.require("browser-window")`') return this.BrowserWindow case 'dialog': Grim.deprecate('Use `remote.Dialog` instead of `remote.require("dialog")`') return this.Dialog case 'app': Grim.deprecate('Use `remote.app` instead of `remote.require("app")`') return this.app case 'crash-reporter': Grim.deprecate('Use `remote.crashReporter` instead of `remote.require("crashReporter")`') return this.crashReporter case 'global-shortcut': Grim.deprecate('Use `remote.globalShortcut` instead of `remote.require("global-shortcut")`') return this.globalShortcut case 'clipboard': Grim.deprecate('Use `remote.clipboard` instead of `remote.require("clipboard")`') return this.clipboard case 'native-image': Grim.deprecate('Use `remote.nativeImage` instead of `remote.require("native-image")`') return this.nativeImage case 'tray': Grim.deprecate('Use `remote.Tray` instead of `remote.require("tray")`') return this.Tray default: return remoteRequire.call(this, moduleName) } }