mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-01 12:42:58 +08:00
[fsevents] add typings (#18916)
This commit is contained in:
committed by
Mohamed Hegazy
parent
2b91b27c3f
commit
60f9b065ca
17
types/fsevents/fsevents-tests.ts
Normal file
17
types/fsevents/fsevents-tests.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import fsevents = require('fsevents');
|
||||
const watcher = fsevents(__dirname);
|
||||
|
||||
watcher.on('fsevent', (path, flags, id) => {});
|
||||
watcher.on('change', (path, info) => {});
|
||||
// $ExpectType Watcher
|
||||
watcher.start();
|
||||
// $ExpectType Watcher
|
||||
watcher.stop();
|
||||
|
||||
const nativeWatcher = new fsevents.FSEvents('', (path, flags, id) => {});
|
||||
// $ExpectType FSEvents
|
||||
nativeWatcher.start();
|
||||
// $ExpectType FSEvents
|
||||
nativeWatcher.stop();
|
||||
|
||||
const num: number = fsevents.Constants.kFSEventStreamEventFlagEventIdsWrapped;
|
||||
90
types/fsevents/index.d.ts
vendored
Normal file
90
types/fsevents/index.d.ts
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
// Type definitions for fsevents 1.1
|
||||
// Project: https://github.com/strongloop/fsevents
|
||||
// Definitions by: BendingBender <https://github.com/BendingBender>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="node" />
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
export = fsevents;
|
||||
|
||||
declare function fsevents(path: string): fsevents.Watcher;
|
||||
|
||||
declare namespace fsevents {
|
||||
function getInfo(path: string, flags: number): BaseEventInfo<BaseEventType | 'moved'>;
|
||||
|
||||
class FSEvents {
|
||||
constructor(path: string, handler: (path: string, flags: number, id: number) => void);
|
||||
start(): this;
|
||||
stop(): this;
|
||||
}
|
||||
|
||||
const Constants: {
|
||||
kFSEventStreamEventFlagNone: 0x0;
|
||||
kFSEventStreamEventFlagMustScanSubDirs: 0x1;
|
||||
kFSEventStreamEventFlagUserDropped: 0x2;
|
||||
kFSEventStreamEventFlagKernelDropped: 0x4;
|
||||
kFSEventStreamEventFlagEventIdsWrapped: 0x8;
|
||||
kFSEventStreamEventFlagHistoryDone: 0x10;
|
||||
kFSEventStreamEventFlagRootChanged: 0x20;
|
||||
kFSEventStreamEventFlagMount: 0x40;
|
||||
kFSEventStreamEventFlagUnmount: 0x80;
|
||||
kFSEventStreamEventFlagItemCreated: 0x100;
|
||||
kFSEventStreamEventFlagItemRemoved: 0x200;
|
||||
kFSEventStreamEventFlagItemInodeMetaMod: 0x400;
|
||||
kFSEventStreamEventFlagItemRenamed: 0x800;
|
||||
kFSEventStreamEventFlagItemModified: 0x1000;
|
||||
kFSEventStreamEventFlagItemFinderInfoMod: 0x2000;
|
||||
kFSEventStreamEventFlagItemChangeOwner: 0x4000;
|
||||
kFSEventStreamEventFlagItemXattrMod: 0x8000;
|
||||
kFSEventStreamEventFlagItemIsFile: 0x10000;
|
||||
kFSEventStreamEventFlagItemIsDir: 0x20000;
|
||||
kFSEventStreamEventFlagItemIsSymlink: 0x40000;
|
||||
};
|
||||
|
||||
interface Watcher extends EventEmitter {
|
||||
start(): this;
|
||||
stop(): this;
|
||||
|
||||
addListener(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
addListener(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
on(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
on(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
once(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
once(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
prependListener(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
prependListener(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
prependOnceListener(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
prependOnceListener(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
removeListener(event: 'fsevent', listener: (path: string, flags: number, id: number) => void): this;
|
||||
removeListener(event: EventType | 'change', listener: (path: string, info: EventInfo) => void): this;
|
||||
removeAllListeners(event?: EventType | 'change' | 'fsevent'): this;
|
||||
// tslint:disable-next-line ban-types
|
||||
listeners(event: EventType | 'change' | 'fsevent'): Function[];
|
||||
emit(event: 'fsevent', path: string, flags: number, id: number): boolean;
|
||||
emit(event: EventType | 'change', path: string, info: EventInfo): boolean;
|
||||
eventNames(): Array<EventType | 'change' | 'fsevent'>;
|
||||
listenerCount(type: EventType | 'change' | 'fsevent'): number;
|
||||
}
|
||||
|
||||
type EventType = 'moved-out' | 'moved-in' | BaseEventType;
|
||||
|
||||
interface EventInfo extends BaseEventInfo<EventType> {
|
||||
id: number;
|
||||
}
|
||||
|
||||
type BaseEventType = 'created' | 'deleted' | 'modified' | 'root-changed' | 'unknown';
|
||||
|
||||
interface BaseEventInfo<E extends string> {
|
||||
event: E;
|
||||
path: string;
|
||||
type: 'file' | 'directory' | 'symlink';
|
||||
changes: {
|
||||
inode: boolean;
|
||||
finder: boolean;
|
||||
access: boolean;
|
||||
xattrs: boolean;
|
||||
};
|
||||
flags: number;
|
||||
}
|
||||
}
|
||||
22
types/fsevents/tsconfig.json
Normal file
22
types/fsevents/tsconfig.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"fsevents-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/fsevents/tslint.json
Normal file
1
types/fsevents/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user