@idlebox/chokidar 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/main.cjs +16 -5
- package/lib/cjs/main.cjs.map +1 -1
- package/lib/esm/main.d.ts +2 -2
- package/lib/esm/main.d.ts.map +1 -1
- package/lib/esm/main.js +16 -5
- package/lib/esm/main.js.map +1 -1
- package/package.json +2 -2
- package/src/main.ts +19 -7
package/lib/cjs/main.cjs
CHANGED
|
@@ -39,6 +39,7 @@ class WatchHelper {
|
|
|
39
39
|
if (!allowedEvents.includes(item)) {
|
|
40
40
|
throw new Error(`not allowed watcher event name: ${item}`);
|
|
41
41
|
}
|
|
42
|
+
console.log('listen: %s [before %d]', item, this.watcher.listenerCount(item));
|
|
42
43
|
if (this.watcher.listenerCount(item) === 0) {
|
|
43
44
|
this.watcher.addListener(item, this.lowlevel_handler);
|
|
44
45
|
}
|
|
@@ -55,7 +56,10 @@ class WatchHelper {
|
|
|
55
56
|
clearTimeout(this._debounce);
|
|
56
57
|
this._debounce = undefined;
|
|
57
58
|
}
|
|
58
|
-
this._debounce = setTimeout(
|
|
59
|
+
this._debounce = setTimeout(() => {
|
|
60
|
+
this._debounce = undefined;
|
|
61
|
+
this.handler();
|
|
62
|
+
}, this.debounceMs);
|
|
59
63
|
}
|
|
60
64
|
changeState(s) {
|
|
61
65
|
log(`state change: ${State[s]}`);
|
|
@@ -91,7 +95,7 @@ class WatchHelper {
|
|
|
91
95
|
.then(() => {
|
|
92
96
|
this.onChange(changes);
|
|
93
97
|
})
|
|
94
|
-
.catch(e => {
|
|
98
|
+
.catch((e) => {
|
|
95
99
|
log('Failed callback: %s', e.stack);
|
|
96
100
|
})
|
|
97
101
|
.finally(() => {
|
|
@@ -120,7 +124,7 @@ class WatchHelper {
|
|
|
120
124
|
}
|
|
121
125
|
return sum;
|
|
122
126
|
}
|
|
123
|
-
replace(newList) {
|
|
127
|
+
async replace(newList) {
|
|
124
128
|
const newSet = new Set(newList);
|
|
125
129
|
for (const item of this.trackedFiles) {
|
|
126
130
|
if (!newSet.has(item)) {
|
|
@@ -133,6 +137,12 @@ class WatchHelper {
|
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
this.add([...newSet]);
|
|
140
|
+
/**
|
|
141
|
+
* 暂时没有办法得知删除操作是否完成
|
|
142
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
143
|
+
* 想不到怎么解决
|
|
144
|
+
*/
|
|
145
|
+
throw new Error('replace() is not implemented');
|
|
136
146
|
}
|
|
137
147
|
addWatch = (0, node_util_1.deprecate)(this.add.bind(this), 'use add instead of addWatch');
|
|
138
148
|
delWatch = (0, node_util_1.deprecate)(this.delete.bind(this), 'use delete instead of delWatch');
|
|
@@ -197,9 +207,10 @@ const defaultOptions = {
|
|
|
197
207
|
watchingEvents: ['add', 'change'],
|
|
198
208
|
};
|
|
199
209
|
function startChokidar(reload, options = {}) {
|
|
200
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
210
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
201
211
|
const watcher = new WatchHelper(new chokidar_1.FSWatcher(opts), reload);
|
|
202
|
-
|
|
212
|
+
watcher.debounceMs = debounceMs;
|
|
213
|
+
for (const item of watchingEvents) {
|
|
203
214
|
watcher.listen(item);
|
|
204
215
|
}
|
|
205
216
|
return watcher;
|
package/lib/cjs/main.cjs.map
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"../../src/main.ts"
|
|
7
7
|
],
|
|
8
8
|
"names": [],
|
|
9
|
-
"mappings": ";;;
|
|
9
|
+
"mappings": "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"
|
|
10
10
|
}
|
package/lib/esm/main.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class WatchHelper implements IWatchHelper {
|
|
|
18
18
|
private handler;
|
|
19
19
|
get empty(): boolean;
|
|
20
20
|
get size(): number;
|
|
21
|
-
replace(newList: readonly string[]): void
|
|
21
|
+
replace(newList: readonly string[]): Promise<void>;
|
|
22
22
|
addWatch: (files: string | readonly string[]) => void;
|
|
23
23
|
delWatch: (files: string | readonly string[]) => void;
|
|
24
24
|
add(files: string | readonly string[]): void;
|
|
@@ -36,7 +36,7 @@ export interface IWatchHelper {
|
|
|
36
36
|
delWatch(files: string | readonly string[]): void;
|
|
37
37
|
add(files: string | readonly string[]): void;
|
|
38
38
|
delete(files: string | readonly string[]): void;
|
|
39
|
-
replace(files: readonly string[]): void
|
|
39
|
+
replace(files: readonly string[]): Promise<void>;
|
|
40
40
|
reset(): void;
|
|
41
41
|
/** 注意: chokidar的api无法同步获取监听文件数量,这个数值不会实时的反映实际情况 */
|
|
42
42
|
readonly size: number;
|
package/lib/esm/main.d.ts.map
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"../../src/main.ts"
|
|
7
7
|
],
|
|
8
8
|
"names": [],
|
|
9
|
-
"mappings": "AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAkB3D,qBAAa,WAAY,YAAW,YAAY;IAU9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV1B,OAAO,CAAC,KAAK,CAAc;IAEpB,UAAU,SAAO;IACxB,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAqB;gBAGvB,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,eAAe;IAQ3C,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC;
|
|
9
|
+
"mappings": "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"
|
|
10
10
|
}
|
package/lib/esm/main.js
CHANGED
|
@@ -35,6 +35,7 @@ export class WatchHelper {
|
|
|
35
35
|
if (!allowedEvents.includes(item)) {
|
|
36
36
|
throw new Error(`not allowed watcher event name: ${item}`);
|
|
37
37
|
}
|
|
38
|
+
console.log('listen: %s [before %d]', item, this.watcher.listenerCount(item));
|
|
38
39
|
if (this.watcher.listenerCount(item) === 0) {
|
|
39
40
|
this.watcher.addListener(item, this.lowlevel_handler);
|
|
40
41
|
}
|
|
@@ -51,7 +52,10 @@ export class WatchHelper {
|
|
|
51
52
|
clearTimeout(this._debounce);
|
|
52
53
|
this._debounce = undefined;
|
|
53
54
|
}
|
|
54
|
-
this._debounce = setTimeout(
|
|
55
|
+
this._debounce = setTimeout(() => {
|
|
56
|
+
this._debounce = undefined;
|
|
57
|
+
this.handler();
|
|
58
|
+
}, this.debounceMs);
|
|
55
59
|
}
|
|
56
60
|
changeState(s) {
|
|
57
61
|
log(`state change: ${State[s]}`);
|
|
@@ -87,7 +91,7 @@ export class WatchHelper {
|
|
|
87
91
|
.then(() => {
|
|
88
92
|
this.onChange(changes);
|
|
89
93
|
})
|
|
90
|
-
.catch(e => {
|
|
94
|
+
.catch((e) => {
|
|
91
95
|
log('Failed callback: %s', e.stack);
|
|
92
96
|
})
|
|
93
97
|
.finally(() => {
|
|
@@ -116,7 +120,7 @@ export class WatchHelper {
|
|
|
116
120
|
}
|
|
117
121
|
return sum;
|
|
118
122
|
}
|
|
119
|
-
replace(newList) {
|
|
123
|
+
async replace(newList) {
|
|
120
124
|
const newSet = new Set(newList);
|
|
121
125
|
for (const item of this.trackedFiles) {
|
|
122
126
|
if (!newSet.has(item)) {
|
|
@@ -129,6 +133,12 @@ export class WatchHelper {
|
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
135
|
this.add([...newSet]);
|
|
136
|
+
/**
|
|
137
|
+
* 暂时没有办法得知删除操作是否完成
|
|
138
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
139
|
+
* 想不到怎么解决
|
|
140
|
+
*/
|
|
141
|
+
throw new Error('replace() is not implemented');
|
|
132
142
|
}
|
|
133
143
|
addWatch = deprecate(this.add.bind(this), 'use add instead of addWatch');
|
|
134
144
|
delWatch = deprecate(this.delete.bind(this), 'use delete instead of delWatch');
|
|
@@ -192,9 +202,10 @@ const defaultOptions = {
|
|
|
192
202
|
watchingEvents: ['add', 'change'],
|
|
193
203
|
};
|
|
194
204
|
export function startChokidar(reload, options = {}) {
|
|
195
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
205
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
196
206
|
const watcher = new WatchHelper(new FSWatcher(opts), reload);
|
|
197
|
-
|
|
207
|
+
watcher.debounceMs = debounceMs;
|
|
208
|
+
for (const item of watchingEvents) {
|
|
198
209
|
watcher.listen(item);
|
|
199
210
|
}
|
|
200
211
|
return watcher;
|
package/lib/esm/main.js.map
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"../../src/main.ts"
|
|
7
7
|
],
|
|
8
8
|
"names": [],
|
|
9
|
-
"mappings": "wBAAgD,UAAU;;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AAE9B,IAAK,KASJ;AATD,WAAK,KAAK;IACT,iBAAiB;IACjB,iCAAQ,CAAA;IACR,mBAAmB;IACnB,iCAAQ,CAAA;IACR,WAAW;IACX,yCAAY,CAAA;IACZ,uDAAuD;IACvD,6CAAc,CAAA;AACf,CAAC,EATI,KAAK,KAAL,KAAK,QAST;AAED,MAAM,OAAO,WAAW;IAUL;IACA;IAVV,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;IAEpB,UAAU,GAAG,GAAG,CAAC;IAChB,OAAO,CAAiB;IACxB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IACnB,GAAG,CAAqB;IACjC,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,YACkB,OAAkB,EAClB,QAAyB;QADzB,YAAO,GAAP,OAAO,CAAW;QAClB,aAAQ,GAAR,QAAQ,CAAiB;QAE1C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,IAAoC;QAC1C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IACD,QAAQ,CAAC,IAAoC;QAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAkB;IAC3B,QAAQ;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;
|
|
9
|
+
"mappings": "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"
|
|
10
10
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idlebox/chokidar",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GongT <admin@gongt.me> https://github.com/gongt/",
|
|
7
7
|
"main": "./lib/cjs/__create_index.generated.cjs",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"chokidar": "^4.0.1",
|
|
20
20
|
"debug": "^4.3.7",
|
|
21
|
-
"@idlebox/common": "^1.4.
|
|
21
|
+
"@idlebox/common": "^1.4.7"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@rushstack/heft": "^0.68.2",
|
package/src/main.ts
CHANGED
|
@@ -27,7 +27,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
27
27
|
|
|
28
28
|
constructor(
|
|
29
29
|
private readonly watcher: FSWatcher,
|
|
30
|
-
private readonly onChange: IReloadFunction
|
|
30
|
+
private readonly onChange: IReloadFunction
|
|
31
31
|
) {
|
|
32
32
|
this.lowlevel_handler = this.lowlevel_handler.bind(this);
|
|
33
33
|
this.handler = this.handler.bind(this);
|
|
@@ -39,6 +39,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
39
39
|
if (!allowedEvents.includes(item)) {
|
|
40
40
|
throw new Error(`not allowed watcher event name: ${item}`);
|
|
41
41
|
}
|
|
42
|
+
console.log('listen: %s [before %d]', item, this.watcher.listenerCount(item));
|
|
42
43
|
if (this.watcher.listenerCount(item) === 0) {
|
|
43
44
|
this.watcher.addListener(item, this.lowlevel_handler);
|
|
44
45
|
}
|
|
@@ -57,7 +58,10 @@ export class WatchHelper implements IWatchHelper {
|
|
|
57
58
|
clearTimeout(this._debounce);
|
|
58
59
|
this._debounce = undefined;
|
|
59
60
|
}
|
|
60
|
-
this._debounce = setTimeout(
|
|
61
|
+
this._debounce = setTimeout(() => {
|
|
62
|
+
this._debounce = undefined;
|
|
63
|
+
this.handler();
|
|
64
|
+
}, this.debounceMs);
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
private changeState(s: State) {
|
|
@@ -98,7 +102,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
98
102
|
.then(() => {
|
|
99
103
|
this.onChange(changes);
|
|
100
104
|
})
|
|
101
|
-
.catch(e => {
|
|
105
|
+
.catch((e) => {
|
|
102
106
|
log('Failed callback: %s', e.stack);
|
|
103
107
|
})
|
|
104
108
|
.finally(() => {
|
|
@@ -128,7 +132,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
128
132
|
return sum;
|
|
129
133
|
}
|
|
130
134
|
|
|
131
|
-
replace(newList: readonly string[]) {
|
|
135
|
+
async replace(newList: readonly string[]) {
|
|
132
136
|
const newSet = new Set(newList);
|
|
133
137
|
for (const item of this.trackedFiles) {
|
|
134
138
|
if (!newSet.has(item)) {
|
|
@@ -142,6 +146,13 @@ export class WatchHelper implements IWatchHelper {
|
|
|
142
146
|
}
|
|
143
147
|
|
|
144
148
|
this.add([...newSet]);
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 暂时没有办法得知删除操作是否完成
|
|
152
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
153
|
+
* 想不到怎么解决
|
|
154
|
+
*/
|
|
155
|
+
throw new Error('replace() is not implemented');
|
|
145
156
|
}
|
|
146
157
|
|
|
147
158
|
addWatch = deprecate(this.add.bind(this), 'use add instead of addWatch');
|
|
@@ -212,7 +223,7 @@ export interface IWatchHelper {
|
|
|
212
223
|
|
|
213
224
|
add(files: string | readonly string[]): void;
|
|
214
225
|
delete(files: string | readonly string[]): void;
|
|
215
|
-
replace(files: readonly string[]): void
|
|
226
|
+
replace(files: readonly string[]): Promise<void>;
|
|
216
227
|
reset(): void;
|
|
217
228
|
|
|
218
229
|
/** 注意: chokidar的api无法同步获取监听文件数量,这个数值不会实时的反映实际情况 */
|
|
@@ -246,9 +257,10 @@ const defaultOptions: IExtraOptions = {
|
|
|
246
257
|
};
|
|
247
258
|
|
|
248
259
|
export function startChokidar(reload: IReloadFunction, options: Partial<IExtraOptions> = {}): IWatchHelper {
|
|
249
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
260
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
250
261
|
const watcher = new WatchHelper(new FSWatcher(opts), reload);
|
|
251
|
-
|
|
262
|
+
watcher.debounceMs = debounceMs;
|
|
263
|
+
for (const item of watchingEvents) {
|
|
252
264
|
watcher.listen(item);
|
|
253
265
|
}
|
|
254
266
|
return watcher;
|