summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@codeispoetry.ru>2017-06-19 19:17:00 +0300
committerAndrej Mihajlov <and@codeispoetry.ru>2017-06-21 14:04:44 +0300
commitd5d189d66dbf633ae53c49984fb96ef16d953969 (patch)
tree7e58bfe2951a92b04208f0133556d759c0be7013
parente66612386ca9941f982b2d16cf4e8fc8e1d0fa14 (diff)
downloadmullvadvpn-d5d189d66dbf633ae53c49984fb96ef16d953969.tar.xz
mullvadvpn-d5d189d66dbf633ae53c49984fb96ef16d953969.zip
Add missing flow type annotations for 3rd party libraries
-rw-r--r--flow-libs/electron.js.flow160
-rw-r--r--flow-libs/history.js.flow24
-rw-r--r--flow-libs/nseventmonitor.js.flow42
-rw-r--r--flow-typed/npm/electron-log_vx.x.x.js4
-rw-r--r--flow-typed/npm/sudo-prompt_vx.x.x.js4
5 files changed, 214 insertions, 20 deletions
diff --git a/flow-libs/electron.js.flow b/flow-libs/electron.js.flow
index e1157020d5..98358003aa 100644
--- a/flow-libs/electron.js.flow
+++ b/flow-libs/electron.js.flow
@@ -1,7 +1,6 @@
-/**
- * Flow annotations for Electron
- * @flow
- */
+// @flow
+
+import EventEmitter from 'events';
declare module 'electron' {
@@ -19,6 +18,38 @@ declare module 'electron' {
y: number;
}
+ // http://electron.atom.io/docs/api/app
+
+ declare class App extends EventEmitter {
+ getPath(name: string): string;
+ setPath(name: string, path: string): void;
+ quit(): void;
+ }
+
+ // http://electron.atom.io/docs/api/shell
+ declare type OpenExternalOptions = {
+ activate: boolean;
+ }
+
+ declare class Shell {
+ openExternal(url: string, options?: OpenExternalOptions, callback: (error: Error) => void): boolean;
+ }
+
+ // http://electron.atom.io/docs/api/remote
+
+ declare class Remote {
+ app: App;
+ getCurrentWindow(): BrowserWindow;
+ getCurrentWebContents(): WebContents;
+ getGlobal(name: string): ?mixed;
+ }
+
+ // http://electron.atom.io/docs/api/clipboard
+
+ declare class Clipboard {
+ writeText(text: string, type?: string): void;
+ }
+
// http://electron.atom.io/docs/api/native-image
declare class NativeImage {
@@ -26,26 +57,123 @@ declare module 'electron' {
getSize(): Size;
}
- declare var nativeImage: {
- createEmpty(): NativeImage,
- createFromPath(path: string): NativeImage,
- createFromBuffer(buffer: Buffer, scaleFactor?: number): NativeImage,
- createFromDataURL(dataURL: string): NativeImage,
- }
-
// http://electron.atom.io/docs/api/tray
- declare type TrayEvent = 'click' | 'double-click'
- declare class Tray {
+ declare class Tray extends EventEmitter {
constructor(image: NativeImage | string): void;
getBounds(): Rectangle;
setHighlightMode(mode: 'selection' | 'always' | 'never'): void;
setImage(image: NativeImage | string): void;
setPressedImage(image: NativeImage | string): void;
+ }
+
+ // http://electron.atom.io/docs/api/web-frame
+
+ declare class WebFrame extends EventEmitter {
+ setZoomLevelLimits(minimumLevel: number, maximumLevel: number): void;
+ }
+
+ // http://electron.atom.io/docs/api/ipc-renderer
+
+ declare class IpcRenderer extends EventEmitter {
+ send(channel: string, ...args: Array<mixed>): void;
+ }
+
+ // http://electron.atom.io/docs/api/ipc-main
- on(event: TrayEvent, listener: Function): this;
- once(event: TrayEvent, listener: Function): this;
- removeEventListener(event: TrayEvent, listener: Function): this;
+ declare class IpcMain extends EventEmitter {}
+
+ declare class WebContents extends EventEmitter {}
+
+ // http://electron.atom.io/docs/api/browser-window
+
+ declare type OpenDevToolsOptions = {
+ mode: 'right' | 'bottom' | 'undocked' | 'detach';
+ }
+
+ declare type WebPreferences = {
+ backgroundThrottling?: boolean;
+ scrollBounce?: boolean;
+ blinkFeatures?: string;
+ disableBlinkFeatures?: string;
+ }
+
+ declare type BrowserWindowConstructorOptions = {
+ width?: number;
+ height?: number;
+ resizable?: boolean;
+ maximizable?: boolean;
+ fullscreenable?: boolean;
+ show?: boolean;
+ frame?: boolean;
+ transparent?: boolean;
+ webPreferences?: WebPreferences;
+ }
+
+ declare type LoadURLOptions = {
+ userAgent?: string;
+ }
+
+ declare class BrowserWindow extends EventEmitter {
+ constructor(options: ?BrowserWindowConstructorOptions): this;
+ isVisible(): boolean;
+ show(): void;
+ hide(): void;
+ focus(): void;
+ setPosition(x: number, y: number, animate?: boolean): void;
+ getBounds(): Rectangle;
+ inspectElement(x: number, y: number): void;
+ isDevToolsOpened(): boolean;isDevToolsOpened(): boolean;
+ openDevTools(options?: OpenDevToolsOptions): void;
+ closeDevTools(): void;
+ loadURL(url: string, options?: LoadURLOptions): void;
+ webContents: WebContents;
+ }
+
+ // http://electron.atom.io/docs/api/menu-item
+ declare class MenuItem {}
+
+ // http://electron.atom.io/docs/api/menu
+
+ declare type MenuItemConstructorOptions = {
+ type?: 'normal' | 'separator' | 'submenu' | 'checkbox' | 'radio';
+ label?: string;
+ role?: string;
+ click?: (menuItem: MenuItem, browserWindow: BrowserWindow, event: Event) => void;
+ }
+
+ declare type PopupOptions = {
+ x?: number;
+ y?: number;
+ }
+
+ declare class Menu {
+ static buildFromTemplate(template: Array<MenuItemConstructorOptions>): Menu;
+ static setApplicationMenu(menu: Menu): void;
+ popup(browserWindow?: BrowserWindow, options?: PopupOptions): void;
+ }
+
+ // http://electron.atom.io/docs/api/app
+
+ declare class App extends EventEmitter {
+ setPath(name: string, path: string): void;
+ getPath(name: string): string;
+ quit(): void;
}
+ // MainInterface
+
+ declare var nativeImage: {
+ createEmpty(): NativeImage,
+ createFromPath(path: string): NativeImage,
+ createFromBuffer(buffer: Buffer, scaleFactor?: number): NativeImage,
+ createFromDataURL(dataURL: string): NativeImage
+ };
+ declare var webFrame: WebFrame;
+ declare var app: App;
+ declare var ipcRenderer: IpcRenderer;
+ declare var ipcMain: IpcMain;
+ declare var remote: Remote;
+ declare var shell: Shell;
+ declare var clipboard: Clipboard;
} \ No newline at end of file
diff --git a/flow-libs/history.js.flow b/flow-libs/history.js.flow
new file mode 100644
index 0000000000..69c25e2011
--- /dev/null
+++ b/flow-libs/history.js.flow
@@ -0,0 +1,24 @@
+// @flow
+
+declare module 'history' {
+
+ declare class History {
+ length: number;
+ action: string;
+ location: string;
+ index: number;
+ entries: Array<string>;
+ createHref(location: string): string;
+ push(path: string): void;
+ replace(path: string): void;
+ go(index: number): void;
+ goBack(): void;
+ goForward(): void;
+ canGo(index: number): boolean;
+ block(prompt?: boolean): void;
+ listen(listener: (location: string, action: string) => void): void;
+ }
+
+ declare function createMemoryHistory(): History;
+
+} \ No newline at end of file
diff --git a/flow-libs/nseventmonitor.js.flow b/flow-libs/nseventmonitor.js.flow
new file mode 100644
index 0000000000..33b0c06966
--- /dev/null
+++ b/flow-libs/nseventmonitor.js.flow
@@ -0,0 +1,42 @@
+declare module 'nseventmonitor' {
+
+ declare export class NSEventMonitor {
+ start(eventMask: number, handler: () => void): void;
+ stop(): void;
+ }
+
+ declare export var NSEventMask: {
+ leftMouseDown: number;
+ leftMouseUp: number;
+ rightMouseDown: number;
+ rightMouseUp: number;
+ mouseMoved: number;
+ leftMouseDragged: number;
+ rightMouseDragged: number;
+ mouseEntered: number;
+ mouseExited: number;
+ keyDown: number;
+ keyUp: number;
+ flagsChanged: number;
+ appKitDefined: number;
+ applicationDefined: number;
+ periodic: number;
+ cursorUpdate: number;
+ scrollWheel: number;
+ tabletPoint: number;
+ tabletProximity: number;
+ otherMouseDown: number;
+ otherMouseUp: number;
+ otherMouseDragged: number;
+ gesture: number;
+ magnify: number;
+ swipe: number;
+ rotate: number;
+ beginGesture: number;
+ endGesture: number;
+ smartMagnify: number;
+ maskPressure: number;
+ directTouch: number;
+ any: number;
+ }
+} \ No newline at end of file
diff --git a/flow-typed/npm/electron-log_vx.x.x.js b/flow-typed/npm/electron-log_vx.x.x.js
index 021fae4cdf..ea47a182aa 100644
--- a/flow-typed/npm/electron-log_vx.x.x.js
+++ b/flow-typed/npm/electron-log_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 8f24be350d06d53ea4029a4a47f3c9ed
-// flow-typed version: <<STUB>>/electron-log_v^2.2.0/flow_v0.46.0
+// flow-typed signature: a2b1f23f2fe8286d15c43e28d1f28578
+// flow-typed version: <<STUB>>/electron-log_v2.2.6/flow_v0.48.0
/**
* This is an autogenerated libdef stub for:
diff --git a/flow-typed/npm/sudo-prompt_vx.x.x.js b/flow-typed/npm/sudo-prompt_vx.x.x.js
index 78a3eeda38..3c762d1dca 100644
--- a/flow-typed/npm/sudo-prompt_vx.x.x.js
+++ b/flow-typed/npm/sudo-prompt_vx.x.x.js
@@ -1,5 +1,5 @@
-// flow-typed signature: 9f8752969e81b3c77889d339ee49deb6
-// flow-typed version: <<STUB>>/sudo-prompt_v^7.0.0/flow_v0.46.0
+// flow-typed signature: ff03b3d5b4912b377eef1ed260d6968f
+// flow-typed version: <<STUB>>/sudo-prompt_v7.0.0/flow_v0.48.0
/**
* This is an autogenerated libdef stub for: