Skip to content

Commit

Permalink
Refactor TypeScript definition to CommonJS compatible export (#72)
Browse files Browse the repository at this point in the history
  • Loading branch information
BendingBender authored and sindresorhus committed Apr 6, 2019
1 parent dd55906 commit 3c66c18
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 64 deletions.
121 changes: 68 additions & 53 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -1,61 +1,76 @@
import {BrowserWindow} from 'electron';

export interface Options {
declare namespace electronDebug {
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';
}
}

declare const electronDebug: {
/**
Install keyboard shortcuts and optionally activate DevTools on each created `BrowserWindow`.
@example
```
import {app, BrowserWindow} from 'electron';
import electronDebug = require('electron-debug');
electronDebug();
let win;
(async () => {
await app.whenReady();
win = new BrowserWindow();
});
```
*/
(options?: electronDebug.Options): void;

/**
* Default: [Only in development](https://github.com/sindresorhus/electron-is-dev)
*/
readonly enabled?: boolean;
Reload the specified `BrowserWindow` instance or the focused one.
@param window - Default: `BrowserWindow.getFocusedWindow()`
*/
refresh(window?: BrowserWindow): void;

/**
* Show DevTools on each created `BrowserWindow`.
*
* @default true
*/
readonly showDevTools?: boolean;
Toggle DevTools for the specified `BrowserWindow` instance or the focused one.
@param window - Default: `BrowserWindow.getFocusedWindow()`
*/
devTools(window?: BrowserWindow): void;

/**
* The dock state to open DevTools in.
*
* @default 'undocked'
*/
readonly devToolsMode?: 'undocked' | 'right' | 'bottom' | 'previous' | 'detach';
}
Open DevTools for the specified `BrowserWindow` instance or the focused one.
@param window - Default: `BrowserWindow.getFocusedWindow()`
*/
openDevTools(window?: BrowserWindow): void;

// TODO: Remove this for the next major release
default: typeof electronDebug;
};

/**
* 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.
*
* @param window - Default: `BrowserWindow.getFocusedWindow()`
*/
export function refresh(window?: BrowserWindow): void;

/**
* Toggle DevTools for the specified `BrowserWindow` instance or the focused one.
*
* @param window - Default: `BrowserWindow.getFocusedWindow()`
*/
export function devTools(window?: BrowserWindow): void;

/**
* Open DevTools for the specified `BrowserWindow` instance or the focused one.
*
* @param window - Default: `BrowserWindow.getFocusedWindow()`
*/
export function openDevTools(window?: BrowserWindow): void;
export = electronDebug;
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ module.exports = options => {
});
};

// TODO: Remove this for the next major release
module.exports.default = module.exports;

module.exports.refresh = refresh;
Expand Down
17 changes: 11 additions & 6 deletions index.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import {expectType} from 'tsd-check';
/// <reference lib="dom"/>
/// <reference types="node"/>
import {expectType} from 'tsd';
import {BrowserWindow} from 'electron';
import electronDebug, {refresh, devTools, openDevTools} from '.';
import electronDebug = require('.');
import {refresh, devTools, openDevTools} from '.';

expectType<void>(electronDebug({
enabled: true,
showDevTools: true
}));
expectType<void>(
electronDebug({
enabled: true,
showDevTools: true
})
);

expectType<void>(refresh(new BrowserWindow()));
expectType<void>(devTools());
Expand Down
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
},
"scripts": {
"start": "electron test.js",
"test": "xo && tsd-check"
"test": "xo && tsd"
},
"files": [
"index.js",
Expand All @@ -28,14 +28,15 @@
],
"dependencies": {
"electron-is-dev": "^0.3.0",
"electron-localshortcut": "^3.0.0"
"electron-localshortcut": "^3.1.0"
},
"devDependencies": {
"devtron": "^1.1.0",
"@types/node": "^11.13.0",
"devtron": "^1.4.0",
"electron": "^2.0.2",
"electron-react-devtools": "^0.5.3",
"tsd-check": "^0.3.0",
"xo": "*"
"tsd": "^0.7.2",
"xo": "^0.24.0"
},
"xo": {
"envs": [
Expand Down

0 comments on commit 3c66c18

Please sign in to comment.