diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..209e2bd --- /dev/null +++ b/index.d.ts @@ -0,0 +1,55 @@ +import {BrowserWindow} from 'electron'; + +export interface Options { + /** + * Default: [Only in development](https://github.com/sindresorhus/electron-is-dev) + */ + readonly enabled?: boolean; + + /** + * Show DevTools on each created `BrowserWindow`. + * + * @default true + */ + readonly showDevTools?: boolean; + + /** + * The dock state to open DevTools in. + * + * @default 'undocked' + */ + readonly devToolsMode?: 'undocked' | 'right' | 'bottom' | 'previous' | 'detach'; +} + +/** + * Install keyboard shortcuts and optionally activate DevTools on each created `BrowserWindow`. + * + * @example + * + * import {app, BrowserWindow} from 'electron'; + * import electronDebug from 'electron-debug'; + * + * electronDebug(); + * + * let win; + * (async () => { + * await app.whenReady(); + * win = new BrowserWindow(); + * }); + */ +export default function electronDebug(options?: Options): void; + +/** + * Reload the specified `BrowserWindow` instance or the focused one. + */ +export function refresh(window?: BrowserWindow = BrowserWindow.getFocusedWindow()): void; + +/** + * Toggle DevTools for the specified `BrowserWindow` instance or the focused one. + */ +export function devTools(window?: BrowserWindow = BrowserWindow.getFocusedWindow()): void; + +/** + * Open DevTools for the specified `BrowserWindow` instance or the focused one. + */ +export function openDevTools(window?: BrowserWindow = BrowserWindow.getFocusedWindow()): void; diff --git a/index.js b/index.js index e1c7b40..1816509 100644 --- a/index.js +++ b/index.js @@ -110,6 +110,8 @@ module.exports = opts => { }); }; +module.exports.default = module.exports; + module.exports.refresh = refresh; module.exports.devTools = devTools; module.exports.openDevTools = openDevTools; diff --git a/index.test-d.ts b/index.test-d.ts new file mode 100644 index 0000000..748db19 --- /dev/null +++ b/index.test-d.ts @@ -0,0 +1,12 @@ +import {expectType} from 'tsd-check'; +import {BrowserWindow} from 'electron'; +import electronDebug, {refresh, devTools, openDevTools} from '.'; + +expectType(electronDebug({ + enabled: true, + showDevTools: true +})); + +expectType(refresh(new BrowserWindow())); +expectType(devTools()); +expectType(openDevTools()); diff --git a/package.json b/package.json index 9ed0134..a0daa5b 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,11 @@ }, "scripts": { "start": "electron test.js", - "test": "xo" + "test": "xo && tsd-check" }, "files": [ - "index.js" + "index.js", + "index.d.ts" ], "keywords": [ "electron", @@ -33,6 +34,7 @@ "devtron": "^1.1.0", "electron": "^2.0.2", "electron-react-devtools": "^0.5.3", + "tsd-check": "^0.3.0", "xo": "*" }, "xo": { diff --git a/readme.md b/readme.md index 9b2e15b..0934a17 100644 --- a/readme.md +++ b/readme.md @@ -90,7 +90,7 @@ Show DevTools on each created `BrowserWindow`. Type: `string`
Default: `undocked`
-Values: `undocked` `right` `bottom` `previous` +Values: `undocked` `right` `bottom` `previous` `detach` The dock state to open DevTools in.