[gaze] Add typing for gaze (#43151)

Co-authored-by: Adam Zerella <adamzerella@users.noreply.github.com>
This commit is contained in:
Adam Zerella 2020-03-18 01:33:36 +10:30 committed by GitHub
parent 2f2b97cd5d
commit b9d846b9a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 132 additions and 0 deletions

29
types/gaze/gaze-tests.ts Normal file
View File

@ -0,0 +1,29 @@
import gaze = require('gaze');
gaze('**/*.js', null, (err, watcher) => {
watcher.watched();
watcher.relative('./', false);
});
gaze(['stylesheets/*.css', 'images/**/*.png'], {
interval: 5,
debounceDelay: 10,
mode: "auto",
cwd: './'
}, (err, watcher) => {
watcher.add(['js/*.js']);
});
const gazeInstance = new gaze.Gaze('**/*.js', null, (err, watcher) => {
watcher.add('file.js');
watcher.close();
watcher.emit('ready');
watcher.remove('file.js');
watcher.watched();
watcher.relative('.', true);
});
gazeInstance.add('file.js');
gazeInstance.close();
gazeInstance.emit('ready');
gazeInstance.remove('file.js');
gazeInstance.watched();
gazeInstance.relative('.', true);

75
types/gaze/index.d.ts vendored Normal file
View File

@ -0,0 +1,75 @@
// Type definitions for gaze 1.1
// Project: https://github.com/shama/gaze
// Definitions by: Adam Zerella <https://github.com/adamzerella>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.1
type Mode = 'auto' | 'watch' | 'poll';
interface Options {
/**
* Interval to pass to fs.watchFile.
*/
interval?: number;
/**
* Delay for events called in succession for the same file/event in milliseconds.
*/
debounceDelay?: number;
/**
* Force the watch mode. Either 'auto' (default),
* 'watch' (force native events), or 'poll' (force stat polling).
*/
mode?: Mode;
/**
* The current working directory to base file patterns from. Default is `process.cwd()`.
*/
cwd?: string;
}
declare namespace gaze {
class Gaze {
constructor(
patterns: string | string[],
options?: Options | null,
callback?: (error: Error | null, watcher: Gaze) => void
);
/**
* Wrapper for EventEmitter.emit. `added`|`changed`|`renamed`|`deleted` events will also trigger the `all` event.
*/
emit(event: string, ...args: any): boolean;
/**
* Unwatch all files and reset the watch instance.
*/
close(): void;
/**
* Adds file(s) patterns to be watched.
*/
add(patterns: string | string[]): void;
/**
* Removes a file or directory from being watched. Does not recurse directories.
*/
remove(filepath: string): void;
/**
* Returns the currently watched files.
*/
watched(): string[];
/**
* Returns the currently watched files with relative paths.
*/
relative(dir: string, unixify: boolean): string[];
}
}
declare function gaze(
patterns: string | string[],
options?: Options | null,
callback?: (error: Error | null, watcher: gaze.Gaze) => void
): void;
export = gaze;

25
types/gaze/tsconfig.json Normal file
View File

@ -0,0 +1,25 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [
],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"gaze-tests.ts"
]
}

3
types/gaze/tslint.json Normal file
View File

@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}