@idlebox/chokidar 0.1.0 → 0.1.2
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 +22 -6
- 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 +22 -6
- package/lib/esm/main.js.map +1 -1
- package/package.json +4 -4
- package/src/main.ts +25 -8
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
|
+
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]}`);
|
|
@@ -63,7 +67,12 @@ class WatchHelper {
|
|
|
63
67
|
}
|
|
64
68
|
lowlevel_handler(path) {
|
|
65
69
|
log('file changes: %s', path);
|
|
66
|
-
|
|
70
|
+
if (path) {
|
|
71
|
+
this.changes.add(path);
|
|
72
|
+
}
|
|
73
|
+
if (!this.changes.size) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
67
76
|
switch (this.state) {
|
|
68
77
|
case State.IDLE:
|
|
69
78
|
this.changeState(State.SCHEDULE);
|
|
@@ -91,7 +100,7 @@ class WatchHelper {
|
|
|
91
100
|
.then(() => {
|
|
92
101
|
this.onChange(changes);
|
|
93
102
|
})
|
|
94
|
-
.catch(e => {
|
|
103
|
+
.catch((e) => {
|
|
95
104
|
log('Failed callback: %s', e.stack);
|
|
96
105
|
})
|
|
97
106
|
.finally(() => {
|
|
@@ -120,7 +129,7 @@ class WatchHelper {
|
|
|
120
129
|
}
|
|
121
130
|
return sum;
|
|
122
131
|
}
|
|
123
|
-
replace(newList) {
|
|
132
|
+
async replace(newList) {
|
|
124
133
|
const newSet = new Set(newList);
|
|
125
134
|
for (const item of this.trackedFiles) {
|
|
126
135
|
if (!newSet.has(item)) {
|
|
@@ -133,6 +142,12 @@ class WatchHelper {
|
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
144
|
this.add([...newSet]);
|
|
145
|
+
/**
|
|
146
|
+
* 暂时没有办法得知删除操作是否完成
|
|
147
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
148
|
+
* 想不到怎么解决
|
|
149
|
+
*/
|
|
150
|
+
throw new Error('replace() is not implemented');
|
|
136
151
|
}
|
|
137
152
|
addWatch = (0, node_util_1.deprecate)(this.add.bind(this), 'use add instead of addWatch');
|
|
138
153
|
delWatch = (0, node_util_1.deprecate)(this.delete.bind(this), 'use delete instead of delWatch');
|
|
@@ -197,9 +212,10 @@ const defaultOptions = {
|
|
|
197
212
|
watchingEvents: ['add', 'change'],
|
|
198
213
|
};
|
|
199
214
|
function startChokidar(reload, options = {}) {
|
|
200
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
215
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
201
216
|
const watcher = new WatchHelper(new chokidar_1.FSWatcher(opts), reload);
|
|
202
|
-
|
|
217
|
+
watcher.debounceMs = debounceMs;
|
|
218
|
+
for (const item of watchingEvents) {
|
|
203
219
|
watcher.listen(item);
|
|
204
220
|
}
|
|
205
221
|
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
|
+
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]}`);
|
|
@@ -59,7 +63,12 @@ export class WatchHelper {
|
|
|
59
63
|
}
|
|
60
64
|
lowlevel_handler(path) {
|
|
61
65
|
log('file changes: %s', path);
|
|
62
|
-
|
|
66
|
+
if (path) {
|
|
67
|
+
this.changes.add(path);
|
|
68
|
+
}
|
|
69
|
+
if (!this.changes.size) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
63
72
|
switch (this.state) {
|
|
64
73
|
case State.IDLE:
|
|
65
74
|
this.changeState(State.SCHEDULE);
|
|
@@ -87,7 +96,7 @@ export class WatchHelper {
|
|
|
87
96
|
.then(() => {
|
|
88
97
|
this.onChange(changes);
|
|
89
98
|
})
|
|
90
|
-
.catch(e => {
|
|
99
|
+
.catch((e) => {
|
|
91
100
|
log('Failed callback: %s', e.stack);
|
|
92
101
|
})
|
|
93
102
|
.finally(() => {
|
|
@@ -116,7 +125,7 @@ export class WatchHelper {
|
|
|
116
125
|
}
|
|
117
126
|
return sum;
|
|
118
127
|
}
|
|
119
|
-
replace(newList) {
|
|
128
|
+
async replace(newList) {
|
|
120
129
|
const newSet = new Set(newList);
|
|
121
130
|
for (const item of this.trackedFiles) {
|
|
122
131
|
if (!newSet.has(item)) {
|
|
@@ -129,6 +138,12 @@ export class WatchHelper {
|
|
|
129
138
|
}
|
|
130
139
|
}
|
|
131
140
|
this.add([...newSet]);
|
|
141
|
+
/**
|
|
142
|
+
* 暂时没有办法得知删除操作是否完成
|
|
143
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
144
|
+
* 想不到怎么解决
|
|
145
|
+
*/
|
|
146
|
+
throw new Error('replace() is not implemented');
|
|
132
147
|
}
|
|
133
148
|
addWatch = deprecate(this.add.bind(this), 'use add instead of addWatch');
|
|
134
149
|
delWatch = deprecate(this.delete.bind(this), 'use delete instead of delWatch');
|
|
@@ -192,9 +207,10 @@ const defaultOptions = {
|
|
|
192
207
|
watchingEvents: ['add', 'change'],
|
|
193
208
|
};
|
|
194
209
|
export function startChokidar(reload, options = {}) {
|
|
195
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
210
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
196
211
|
const watcher = new WatchHelper(new FSWatcher(opts), reload);
|
|
197
|
-
|
|
212
|
+
watcher.debounceMs = debounceMs;
|
|
213
|
+
for (const item of watchingEvents) {
|
|
198
214
|
watcher.listen(item);
|
|
199
215
|
}
|
|
200
216
|
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": "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,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,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,GAAG,EAAE;YAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;IAEO,WAAW,CAAC,CAAQ;QAC3B,GAAG,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IAChB,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACpC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,KAAK,CAAC,IAAI;gBACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACR,KAAK,KAAK,CAAC,QAAQ;gBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACR,KAAK,KAAK,CAAC,IAAI;gBACd,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnC,OAAO;YACR,KAAK,KAAK,CAAC,UAAU;gBACpB,OAAO;YACR;gBACC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAEO,OAAO;QACd,GAAG,CAAC,YAAY,CAAC,CAAC;QAElB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE;aAC9B,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,YAAY,CAAC,GAAG,EAAE;oBACjB,MAAM,CAAC,CAAC;gBACT,CAAC,CAAC,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,IAAI;QACP,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YAC7D,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA0B;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAEtB;;;;WAIG;QACH,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;IACzE,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAE/E,GAAG,CAAC,KAAiC;QACpC,uCAAuC;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAiB,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAiC;QACvC,uCAAuC;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACF,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAiB,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACV,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;CACD;AA8BD,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAU,CAAC;AAO3F,MAAM,cAAc,GAAkB;IACrC,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;CACjC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,UAAkC,EAAE;IAC1F,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"
|
|
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.2",
|
|
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,14 +18,14 @@
|
|
|
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.10"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@rushstack/heft": "^0.68.2",
|
|
25
25
|
"@types/debug": "^4.1.12",
|
|
26
26
|
"@types/node": "^22.8.6",
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
27
|
+
"@internal/local-rig": "^1.0.1",
|
|
28
|
+
"@build-script/single-dog-asset": "^1.0.34"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"build": "heft --unmanaged build",
|
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
|
+
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) {
|
|
@@ -67,7 +71,12 @@ export class WatchHelper implements IWatchHelper {
|
|
|
67
71
|
|
|
68
72
|
private lowlevel_handler(path: string) {
|
|
69
73
|
log('file changes: %s', path);
|
|
70
|
-
|
|
74
|
+
if (path) {
|
|
75
|
+
this.changes.add(path);
|
|
76
|
+
}
|
|
77
|
+
if (!this.changes.size) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
71
80
|
switch (this.state) {
|
|
72
81
|
case State.IDLE:
|
|
73
82
|
this.changeState(State.SCHEDULE);
|
|
@@ -98,7 +107,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
98
107
|
.then(() => {
|
|
99
108
|
this.onChange(changes);
|
|
100
109
|
})
|
|
101
|
-
.catch(e => {
|
|
110
|
+
.catch((e) => {
|
|
102
111
|
log('Failed callback: %s', e.stack);
|
|
103
112
|
})
|
|
104
113
|
.finally(() => {
|
|
@@ -128,7 +137,7 @@ export class WatchHelper implements IWatchHelper {
|
|
|
128
137
|
return sum;
|
|
129
138
|
}
|
|
130
139
|
|
|
131
|
-
replace(newList: readonly string[]) {
|
|
140
|
+
async replace(newList: readonly string[]) {
|
|
132
141
|
const newSet = new Set(newList);
|
|
133
142
|
for (const item of this.trackedFiles) {
|
|
134
143
|
if (!newSet.has(item)) {
|
|
@@ -142,6 +151,13 @@ export class WatchHelper implements IWatchHelper {
|
|
|
142
151
|
}
|
|
143
152
|
|
|
144
153
|
this.add([...newSet]);
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 暂时没有办法得知删除操作是否完成
|
|
157
|
+
* 可能遇到问题(不确定):如果删除的项目中有目录,而添加的项目中有其子项,则可能因为异步顺序导致添加后立刻又删除
|
|
158
|
+
* 想不到怎么解决
|
|
159
|
+
*/
|
|
160
|
+
throw new Error('replace() is not implemented');
|
|
145
161
|
}
|
|
146
162
|
|
|
147
163
|
addWatch = deprecate(this.add.bind(this), 'use add instead of addWatch');
|
|
@@ -212,7 +228,7 @@ export interface IWatchHelper {
|
|
|
212
228
|
|
|
213
229
|
add(files: string | readonly string[]): void;
|
|
214
230
|
delete(files: string | readonly string[]): void;
|
|
215
|
-
replace(files: readonly string[]): void
|
|
231
|
+
replace(files: readonly string[]): Promise<void>;
|
|
216
232
|
reset(): void;
|
|
217
233
|
|
|
218
234
|
/** 注意: chokidar的api无法同步获取监听文件数量,这个数值不会实时的反映实际情况 */
|
|
@@ -246,9 +262,10 @@ const defaultOptions: IExtraOptions = {
|
|
|
246
262
|
};
|
|
247
263
|
|
|
248
264
|
export function startChokidar(reload: IReloadFunction, options: Partial<IExtraOptions> = {}): IWatchHelper {
|
|
249
|
-
const opts = Object.assign({}, defaultOptions, options);
|
|
265
|
+
const { debounceMs, watchingEvents, ...opts } = Object.assign({}, defaultOptions, options);
|
|
250
266
|
const watcher = new WatchHelper(new FSWatcher(opts), reload);
|
|
251
|
-
|
|
267
|
+
watcher.debounceMs = debounceMs;
|
|
268
|
+
for (const item of watchingEvents) {
|
|
252
269
|
watcher.listen(item);
|
|
253
270
|
}
|
|
254
271
|
return watcher;
|