diff --git a/types/user-idle-observer/index.d.ts b/types/user-idle-observer/index.d.ts new file mode 100644 index 0000000000..0a17328c11 --- /dev/null +++ b/types/user-idle-observer/index.d.ts @@ -0,0 +1,44 @@ +// Type definitions for user-idle-observer 1.0 +// Project: https://github.com/vladagurets/user-idle-observer#readme +// Definitions by: Piotr Błażejewicz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export as namespace userIDLEObserver; + +/** + * This lib allows you to track user inactivity time. + */ +declare function userIDLEObserver(opts?: userIDLEObserver.Options): userIDLEObserver.UserIDLEObserver; + +declare namespace userIDLEObserver { + /** + * observer options + */ + interface Options { + /** + * fire callback on user inactivity time in ms + * @default 3_000 + */ + idleTime?: number; + /** + * callback that will triger after opts.idleTime of user's IDLE + * @default console.log + */ + cb?: Callback; + /** + * @default ["mousemove", "mousedown", "keydown", "scroll", "touchstart", "resize", "visibilitychange"] + */ + listeners?: Array; + } + + interface UserIDLEObserver { + /** + * destroy observer instance + */ + destroy(): void; + } + + type Callback = (time: number) => void; +} + +export = userIDLEObserver; diff --git a/types/user-idle-observer/tsconfig.json b/types/user-idle-observer/tsconfig.json new file mode 100644 index 0000000000..f55a1b756a --- /dev/null +++ b/types/user-idle-observer/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "DOM" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "user-idle-observer-tests.ts" + ] +} diff --git a/types/user-idle-observer/tslint.json b/types/user-idle-observer/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/user-idle-observer/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/user-idle-observer/user-idle-observer-tests.ts b/types/user-idle-observer/user-idle-observer-tests.ts new file mode 100644 index 0000000000..21ed436cf3 --- /dev/null +++ b/types/user-idle-observer/user-idle-observer-tests.ts @@ -0,0 +1,15 @@ +import IDLEObserver = require('user-idle-observer'); + +const observer = IDLEObserver({ + idleTime: 5000, + cb: time => { + console.log(`User was innactive for ${time}ms`); + }, + listeners: ['mousemove', 'mousedown', 'keydown'], +}); + +IDLEObserver(); +IDLEObserver({}); +IDLEObserver({ + cb: console.log, +});