@eggjs/watcher 4.0.2 → 4.0.4
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/dist/commonjs/config/config.default.d.ts +2 -7
- package/dist/commonjs/config/config.default.js +1 -1
- package/dist/commonjs/config/config.local.d.ts +2 -3
- package/dist/commonjs/config/config.local.js +1 -1
- package/dist/commonjs/config/config.unittest.d.ts +2 -3
- package/dist/commonjs/config/config.unittest.js +1 -1
- package/dist/commonjs/lib/boot.d.ts +2 -3
- package/dist/commonjs/lib/boot.js +1 -1
- package/dist/commonjs/lib/event-sources/development.js +4 -2
- package/dist/commonjs/lib/event-sources/index.d.ts +4 -3
- package/dist/commonjs/lib/event-sources/index.js +10 -17
- package/dist/commonjs/lib/types.d.ts +19 -10
- package/dist/commonjs/lib/watcher.d.ts +3 -2
- package/dist/commonjs/lib/watcher.js +1 -1
- package/dist/esm/config/config.default.d.ts +2 -7
- package/dist/esm/config/config.default.js +1 -1
- package/dist/esm/config/config.local.d.ts +2 -3
- package/dist/esm/config/config.local.js +1 -1
- package/dist/esm/config/config.unittest.d.ts +2 -3
- package/dist/esm/config/config.unittest.js +1 -1
- package/dist/esm/lib/boot.d.ts +2 -3
- package/dist/esm/lib/boot.js +1 -1
- package/dist/esm/lib/event-sources/development.js +4 -2
- package/dist/esm/lib/event-sources/index.d.ts +4 -3
- package/dist/esm/lib/event-sources/index.js +5 -4
- package/dist/esm/lib/types.d.ts +19 -10
- package/dist/esm/lib/watcher.d.ts +3 -2
- package/dist/esm/lib/watcher.js +1 -1
- package/dist/package.json +1 -1
- package/package.json +13 -8
- package/src/config/config.default.ts +2 -1
- package/src/config/config.local.ts +3 -1
- package/src/config/config.unittest.ts +3 -1
- package/src/lib/boot.ts +3 -4
- package/src/lib/event-sources/development.ts +3 -1
- package/src/lib/event-sources/index.ts +9 -3
- package/src/lib/types.ts +22 -11
- package/src/lib/watcher.ts +5 -4
|
@@ -1,15 +1,10 @@
|
|
|
1
|
+
import type { WatcherConfig } from '../lib/types.js';
|
|
1
2
|
declare const _default: {
|
|
2
3
|
/**
|
|
3
4
|
* watcher options
|
|
4
5
|
* @member Config#watcher
|
|
5
6
|
* @property {string} type - event source type
|
|
6
7
|
*/
|
|
7
|
-
watcher:
|
|
8
|
-
type: string;
|
|
9
|
-
eventSources: {
|
|
10
|
-
default: string;
|
|
11
|
-
development: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
8
|
+
watcher: WatcherConfig;
|
|
14
9
|
};
|
|
15
10
|
export default _default;
|
|
@@ -19,4 +19,4 @@ exports.default = {
|
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMERBQTZCO0FBQzdCLDhDQUFtRDtBQUduRCxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsU0FBUyxFQUFFLHVCQUF1QjtRQUN4QyxZQUFZLEVBQUU7WUFDWixPQUFPLEVBQUUsbUJBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSwyQkFBZ0IsR0FBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDO1lBQ3pFLFdBQVcsRUFBRSxtQkFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLDJCQUFnQixHQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUM7U0FDbEY7S0FDZTtDQUNuQixDQUFDIn0=
|
|
@@ -5,4 +5,4 @@ exports.default = {
|
|
|
5
5
|
type: 'development',
|
|
6
6
|
},
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxrQkFBZTtJQUNiLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxhQUFhO0tBQ0g7Q0FDbkIsQ0FBQyJ9
|
|
@@ -5,4 +5,4 @@ exports.default = {
|
|
|
5
5
|
type: 'development',
|
|
6
6
|
},
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnVuaXR0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25maWcudW5pdHRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxrQkFBZTtJQUNiLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxhQUFhO0tBQ0g7Q0FDbkIsQ0FBQyJ9
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { ILifecycleBoot } from 'egg';
|
|
2
|
-
import { EggWatcherApplicationCore } from './types.js';
|
|
1
|
+
import type { ILifecycleBoot, EggApplicationCore } from 'egg';
|
|
3
2
|
export declare class Boot implements ILifecycleBoot {
|
|
4
3
|
#private;
|
|
5
|
-
constructor(appOrAgent:
|
|
4
|
+
constructor(appOrAgent: EggApplicationCore);
|
|
6
5
|
didLoad(): Promise<void>;
|
|
7
6
|
}
|
|
@@ -20,4 +20,4 @@ class Boot {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.Boot = Boot;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBdUM7QUFFdkMsTUFBYSxJQUFJO0lBQ2YsSUFBSSxDQUFxQjtJQUN6QixRQUFRLENBQVU7SUFFbEIsWUFBWSxVQUE4QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFPLEVBQUUsRUFBRSxDQUFDO2FBQy9ELFFBQVEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO2FBQzlCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDL0YsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQVcsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3BGLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFXLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RixDQUFDO0NBQ0Y7QUFsQkQsb0JBa0JDIn0=
|
|
@@ -89,13 +89,15 @@ class DevelopmentEventSource extends base_js_1.BaseEventSource {
|
|
|
89
89
|
// mtime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
90
90
|
// ctime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
91
91
|
// birthtime: Tue Jun 16 2015 23:19:13 GMT+0800 (CST) } }
|
|
92
|
+
const stat = node_fs_1.default.statSync(file, { throwIfNoEntry: false });
|
|
92
93
|
const info = {
|
|
93
94
|
path: file,
|
|
94
95
|
event,
|
|
95
|
-
stat
|
|
96
|
+
stat,
|
|
97
|
+
isDirectory: stat?.isDirectory(),
|
|
96
98
|
};
|
|
97
99
|
this.emit('change', info);
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
exports.default = DevelopmentEventSource;
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2ZW50LXNvdXJjZXMvZGV2ZWxvcG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FBcUM7QUFDckMsMERBQTZCO0FBQzdCLHNEQUF3RDtBQUN4RCx1Q0FBNEM7QUFHNUMsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLDhDQUE4QyxDQUFDLENBQUM7QUFFdkUscUNBQXFDO0FBQ3JDLE1BQXFCLHNCQUF1QixTQUFRLHlCQUFlO0lBQ2pFLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztJQUU3QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVk7UUFDaEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsaUJBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEQsT0FBTztZQUNULENBQUM7WUFDRCxLQUFLLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELDhFQUE4RTtZQUM5RSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN2RSwrQ0FBK0M7Z0JBQy9DLDZDQUE2QztnQkFDN0MsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQixDQUFDO1lBQ0QsTUFB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BaseEventSource } from './base.js';
|
|
2
|
+
import DefaultEventSource from './default.js';
|
|
3
|
+
import DevelopmentEventSource from './development.js';
|
|
4
|
+
export { BaseEventSource, DefaultEventSource, DevelopmentEventSource, };
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
6
|
+
exports.DevelopmentEventSource = exports.DefaultEventSource = exports.BaseEventSource = void 0;
|
|
7
|
+
const base_js_1 = require("./base.js");
|
|
8
|
+
Object.defineProperty(exports, "BaseEventSource", { enumerable: true, get: function () { return base_js_1.BaseEventSource; } });
|
|
9
|
+
const default_js_1 = __importDefault(require("./default.js"));
|
|
10
|
+
exports.DefaultEventSource = default_js_1.default;
|
|
11
|
+
const development_js_1 = __importDefault(require("./development.js"));
|
|
12
|
+
exports.DevelopmentEventSource = development_js_1.default;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2ZW50LXNvdXJjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQTRDO0FBSzFDLGdHQUxPLHlCQUFlLE9BS1A7QUFKakIsOERBQThDO0FBSzVDLDZCQUxLLG9CQUFrQixDQUtMO0FBSnBCLHNFQUFzRDtBQUtwRCxpQ0FMSyx3QkFBc0IsQ0FLTCJ9
|
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
import type { WatchEventType, Stats } from 'node:fs';
|
|
2
|
-
import type { EggApplicationCore, EggAppConfig } from 'egg';
|
|
3
2
|
import type { Watcher } from './watcher.js';
|
|
4
3
|
export interface WatcherConfig {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
/**
|
|
5
|
+
* event source type, default is `default`
|
|
6
|
+
* can be `default` or `development`
|
|
7
|
+
*/
|
|
8
|
+
type: string;
|
|
9
|
+
/**
|
|
10
|
+
* event sources
|
|
11
|
+
* key is event source type, value is event source module path
|
|
12
|
+
*/
|
|
13
|
+
eventSources: Record<string, string>;
|
|
10
14
|
}
|
|
11
|
-
export interface ChangeInfo {
|
|
15
|
+
export interface ChangeInfo extends Record<string, any> {
|
|
12
16
|
event: WatchEventType;
|
|
13
17
|
/**
|
|
14
18
|
* file stat if path exists
|
|
15
19
|
*/
|
|
16
20
|
stat?: Stats;
|
|
17
21
|
path: string;
|
|
22
|
+
isDirectory?: boolean;
|
|
18
23
|
}
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
declare module '@eggjs/core' {
|
|
25
|
+
interface EggCore {
|
|
26
|
+
watcher: Watcher;
|
|
27
|
+
}
|
|
28
|
+
interface EggAppConfig {
|
|
29
|
+
watcher: WatcherConfig;
|
|
30
|
+
}
|
|
21
31
|
}
|
|
22
|
-
export type EggWatcherAppConfig = EggAppConfig & WatcherConfig;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Base } from 'sdk-base';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EggAppConfig } from '@eggjs/core';
|
|
3
|
+
import type { ChangeInfo } from './types.js';
|
|
3
4
|
export type WatchListener = (info: ChangeInfo) => void;
|
|
4
5
|
export declare class Watcher extends Base {
|
|
5
6
|
#private;
|
|
6
|
-
constructor(config:
|
|
7
|
+
constructor(config: EggAppConfig);
|
|
7
8
|
protected _init(): Promise<void>;
|
|
8
9
|
watch(path: string | string[], listener: WatchListener): void;
|
|
9
10
|
}
|
|
@@ -110,4 +110,4 @@ class Watcher extends sdk_base_1.Base {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
exports.Watcher = Watcher;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx5Q0FBcUM7QUFDckMsdUNBQWdDO0FBQ2hDLDBEQUFrQztBQUNsQyx3Q0FBNEM7QUFHNUMseUNBQWlEO0FBR2pELE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBSXJELE1BQWEsT0FBUSxTQUFRLGVBQUk7SUFDL0IsT0FBTyxDQUFlO0lBQ3RCLFlBQVksQ0FBa0I7SUFFOUIsWUFBWSxNQUFvQjtRQUM5QixLQUFLLENBQUM7WUFDSixVQUFVLEVBQUUsT0FBTztTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRVMsS0FBSyxDQUFDLEtBQUs7UUFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzlDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQXNDLENBQUM7UUFDdEcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxXQUFXLEdBQUcsTUFBTSxJQUFBLG9CQUFZLEVBQUMsV0FBVyxFQUFFO2dCQUM1QyxpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCw4QkFBOEI7UUFDOUIsMEJBQTBCO1FBQzFCLEVBQUU7UUFDRixPQUFPO1FBQ1AscUVBQXFFO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUEsbUJBQVMsRUFBQyxDQUFFLFNBQVMsRUFBRSxXQUFXLENBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFFLGtCQUFrQixDQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEQsRUFBRSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDbkQsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ25ELEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQXVCLEVBQUUsUUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUscUNBQXFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLGdCQUFnQjtRQUNoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMzQyxPQUFPO1FBQ1QsQ0FBQztRQUVELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BdUJFO0lBRUYsU0FBUyxDQUFDLElBQWdCO1FBQ3hCLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsK0RBQStELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtnQkFBRSxTQUFTO1lBQ3BDLDZDQUE2QztZQUM3QyxJQUFJLElBQUEsOEJBQW1CLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFnQjtRQUM3QixLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUscUVBQXFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtnQkFBRSxTQUFTO1lBQ3BDLGdEQUFnRDtZQUNoRCxtQ0FBbUM7WUFDbkMsSUFBSSxJQUFBLDhCQUFtQixFQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFHRCwwQkEwR0MifQ==
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
+
import type { WatcherConfig } from '../lib/types.js';
|
|
1
2
|
declare const _default: {
|
|
2
3
|
/**
|
|
3
4
|
* watcher options
|
|
4
5
|
* @member Config#watcher
|
|
5
6
|
* @property {string} type - event source type
|
|
6
7
|
*/
|
|
7
|
-
watcher:
|
|
8
|
-
type: string;
|
|
9
|
-
eventSources: {
|
|
10
|
-
default: string;
|
|
11
|
-
development: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
8
|
+
watcher: WatcherConfig;
|
|
14
9
|
};
|
|
15
10
|
export default _default;
|
|
@@ -14,4 +14,4 @@ export default {
|
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUduRCxlQUFlO0lBQ2I7Ozs7T0FJRztJQUNILE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTLEVBQUUsdUJBQXVCO1FBQ3hDLFlBQVksRUFBRTtZQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7WUFDekUsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQztTQUNsRjtLQUNlO0NBQ25CLENBQUMifQ==
|
|
@@ -3,4 +3,4 @@ export default {
|
|
|
3
3
|
type: 'development',
|
|
4
4
|
},
|
|
5
5
|
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBZTtJQUNiLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxhQUFhO0tBQ0g7Q0FDbkIsQ0FBQyJ9
|
|
@@ -3,4 +3,4 @@ export default {
|
|
|
3
3
|
type: 'development',
|
|
4
4
|
},
|
|
5
5
|
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnVuaXR0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9jb25maWcudW5pdHRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBZTtJQUNiLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxhQUFhO0tBQ0g7Q0FDbkIsQ0FBQyJ9
|
package/dist/esm/lib/boot.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { ILifecycleBoot } from 'egg';
|
|
2
|
-
import { EggWatcherApplicationCore } from './types.js';
|
|
1
|
+
import type { ILifecycleBoot, EggApplicationCore } from 'egg';
|
|
3
2
|
export declare class Boot implements ILifecycleBoot {
|
|
4
3
|
#private;
|
|
5
|
-
constructor(appOrAgent:
|
|
4
|
+
constructor(appOrAgent: EggApplicationCore);
|
|
6
5
|
didLoad(): Promise<void>;
|
|
7
6
|
}
|
package/dist/esm/lib/boot.js
CHANGED
|
@@ -16,4 +16,4 @@ export class Boot {
|
|
|
16
16
|
this.#app.coreLogger.info('[@eggjs/watcher:%s] watcher start success', this.#app.type);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE1BQU0sT0FBTyxJQUFJO0lBQ2YsSUFBSSxDQUFxQjtJQUN6QixRQUFRLENBQVU7SUFFbEIsWUFBWSxVQUE4QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7YUFDL0QsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7YUFDOUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFXLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUMvRixFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDcEYsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQVcsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywyQ0FBMkMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7Q0FDRiJ9
|
|
@@ -84,12 +84,14 @@ export default class DevelopmentEventSource extends BaseEventSource {
|
|
|
84
84
|
// mtime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
85
85
|
// ctime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
86
86
|
// birthtime: Tue Jun 16 2015 23:19:13 GMT+0800 (CST) } }
|
|
87
|
+
const stat = fs.statSync(file, { throwIfNoEntry: false });
|
|
87
88
|
const info = {
|
|
88
89
|
path: file,
|
|
89
90
|
event,
|
|
90
|
-
stat
|
|
91
|
+
stat,
|
|
92
|
+
isDirectory: stat?.isDirectory(),
|
|
91
93
|
};
|
|
92
94
|
this.emit('change', info);
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2ZW50LXNvdXJjZXMvZGV2ZWxvcG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFpQyxNQUFNLFNBQVMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0FBRXZFLHFDQUFxQztBQUNyQyxNQUFNLENBQUMsT0FBTyxPQUFPLHNCQUF1QixTQUFRLGVBQWU7SUFDakUsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO0lBRTdDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWTtRQUNoQixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixLQUFLLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hELE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNuRCw4RUFBOEU7WUFDOUUsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMs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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BaseEventSource } from './base.js';
|
|
2
|
+
import DefaultEventSource from './default.js';
|
|
3
|
+
import DevelopmentEventSource from './development.js';
|
|
4
|
+
export { BaseEventSource, DefaultEventSource, DevelopmentEventSource, };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { BaseEventSource } from './base.js';
|
|
2
|
+
import DefaultEventSource from './default.js';
|
|
3
|
+
import DevelopmentEventSource from './development.js';
|
|
4
|
+
export { BaseEventSource, DefaultEventSource, DevelopmentEventSource, };
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2V2ZW50LXNvdXJjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLGtCQUFrQixNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLHNCQUFzQixNQUFNLGtCQUFrQixDQUFDO0FBRXRELE9BQU8sRUFDTCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLHNCQUFzQixHQUN2QixDQUFDIn0=
|
package/dist/esm/lib/types.d.ts
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
import type { WatchEventType, Stats } from 'node:fs';
|
|
2
|
-
import type { EggApplicationCore, EggAppConfig } from 'egg';
|
|
3
2
|
import type { Watcher } from './watcher.js';
|
|
4
3
|
export interface WatcherConfig {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
/**
|
|
5
|
+
* event source type, default is `default`
|
|
6
|
+
* can be `default` or `development`
|
|
7
|
+
*/
|
|
8
|
+
type: string;
|
|
9
|
+
/**
|
|
10
|
+
* event sources
|
|
11
|
+
* key is event source type, value is event source module path
|
|
12
|
+
*/
|
|
13
|
+
eventSources: Record<string, string>;
|
|
10
14
|
}
|
|
11
|
-
export interface ChangeInfo {
|
|
15
|
+
export interface ChangeInfo extends Record<string, any> {
|
|
12
16
|
event: WatchEventType;
|
|
13
17
|
/**
|
|
14
18
|
* file stat if path exists
|
|
15
19
|
*/
|
|
16
20
|
stat?: Stats;
|
|
17
21
|
path: string;
|
|
22
|
+
isDirectory?: boolean;
|
|
18
23
|
}
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
declare module '@eggjs/core' {
|
|
25
|
+
interface EggCore {
|
|
26
|
+
watcher: Watcher;
|
|
27
|
+
}
|
|
28
|
+
interface EggAppConfig {
|
|
29
|
+
watcher: WatcherConfig;
|
|
30
|
+
}
|
|
21
31
|
}
|
|
22
|
-
export type EggWatcherAppConfig = EggAppConfig & WatcherConfig;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Base } from 'sdk-base';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EggAppConfig } from '@eggjs/core';
|
|
3
|
+
import type { ChangeInfo } from './types.js';
|
|
3
4
|
export type WatchListener = (info: ChangeInfo) => void;
|
|
4
5
|
export declare class Watcher extends Base {
|
|
5
6
|
#private;
|
|
6
|
-
constructor(config:
|
|
7
|
+
constructor(config: EggAppConfig);
|
|
7
8
|
protected _init(): Promise<void>;
|
|
8
9
|
watch(path: string | string[], listener: WatchListener): void;
|
|
9
10
|
}
|
package/dist/esm/lib/watcher.js
CHANGED
|
@@ -103,4 +103,4 @@ export class Watcher extends Base {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR2pELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBSXJELE1BQU0sT0FBTyxPQUFRLFNBQVEsSUFBSTtJQUMvQixPQUFPLENBQWU7SUFDdEIsWUFBWSxDQUFrQjtJQUU5QixZQUFZLE1BQW9CO1FBQzlCLEtBQUssQ0FBQztZQUNKLFVBQVUsRUFBRSxPQUFPO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFUyxLQUFLLENBQUMsS0FBSztRQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDOUMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBc0MsQ0FBQztRQUN0RyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLFdBQVcsR0FBRyxNQUFNLFlBQVksQ0FBQyxXQUFXLEVBQUU7Z0JBQzVDLGlCQUFpQixFQUFFLElBQUk7YUFDeEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELDhCQUE4QjtRQUM5QiwwQkFBMEI7UUFDMUIsRUFBRTtRQUNGLE9BQU87UUFDUCxxRUFBcUU7UUFDckUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUUsa0JBQWtCLENBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0RCxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xELEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQzthQUNuRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDbkQsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBdUIsRUFBRSxRQUF1QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFFbEIsZ0JBQWdCO1FBQ2hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU87UUFDVCxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUF1QkU7SUFFRixTQUFTLENBQUMsSUFBZ0I7UUFDeEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSwrREFBK0QsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXZCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO2dCQUFFLFNBQVM7WUFDcEMsNkNBQTZDO1lBQzdDLElBQUksbUJBQW1CLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFnQjtRQUM3QixLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUscUVBQXFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUTtnQkFBRSxTQUFTO1lBQ3BDLGdEQUFnRDtZQUNoRCxtQ0FBbUM7WUFDbkMsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/watcher",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -9,16 +9,19 @@
|
|
|
9
9
|
"name": "watcher",
|
|
10
10
|
"exports": {
|
|
11
11
|
"import": "./dist/esm",
|
|
12
|
-
"require": "./dist/commonjs"
|
|
12
|
+
"require": "./dist/commonjs",
|
|
13
|
+
"typescript": "./src"
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
"scripts": {
|
|
16
17
|
"lint": "eslint --cache src test --ext .ts",
|
|
17
|
-
"pretest": "npm run
|
|
18
|
+
"pretest": "npm run clean && npm run lint -- --fix",
|
|
18
19
|
"test": "egg-bin test",
|
|
19
|
-
"preci": "npm run
|
|
20
|
+
"preci": "npm run clean && npm run lint",
|
|
20
21
|
"ci": "egg-bin cov",
|
|
21
|
-
"
|
|
22
|
+
"postci": "npm run prepublishOnly && attw --pack && npm run clean",
|
|
23
|
+
"prepublishOnly": "tshy && tshy-after",
|
|
24
|
+
"clean": "rimraf dist"
|
|
22
25
|
},
|
|
23
26
|
"homepage": "https://github.com/eggjs/watcher",
|
|
24
27
|
"repository": {
|
|
@@ -35,7 +38,8 @@
|
|
|
35
38
|
"node": ">= 18.19.0"
|
|
36
39
|
},
|
|
37
40
|
"dependencies": {
|
|
38
|
-
"@eggjs/
|
|
41
|
+
"@eggjs/core": "^6.2.13",
|
|
42
|
+
"@eggjs/utils": "^4.2.3",
|
|
39
43
|
"camelcase": "^5.0.0",
|
|
40
44
|
"sdk-base": "^5.0.0"
|
|
41
45
|
},
|
|
@@ -45,8 +49,9 @@
|
|
|
45
49
|
"@types/node": "22",
|
|
46
50
|
"@types/mocha": "10",
|
|
47
51
|
"egg": "beta",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
52
|
+
"@eggjs/bin": "7",
|
|
53
|
+
"@eggjs/mock": "6",
|
|
54
|
+
"rimraf": "6",
|
|
50
55
|
"eslint": "8",
|
|
51
56
|
"eslint-config-egg": "14",
|
|
52
57
|
"tshy": "3",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { getSourceDirname } from '../lib/utils.js';
|
|
3
|
+
import type { WatcherConfig } from '../lib/types.js';
|
|
3
4
|
|
|
4
5
|
export default {
|
|
5
6
|
/**
|
|
@@ -13,5 +14,5 @@ export default {
|
|
|
13
14
|
default: path.join(getSourceDirname(), 'lib', 'event-sources', 'default'),
|
|
14
15
|
development: path.join(getSourceDirname(), 'lib', 'event-sources', 'development'),
|
|
15
16
|
},
|
|
16
|
-
},
|
|
17
|
+
} as WatcherConfig,
|
|
17
18
|
};
|
package/src/lib/boot.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type { ILifecycleBoot } from 'egg';
|
|
2
|
-
import { EggWatcherApplicationCore } from './types.js';
|
|
1
|
+
import type { ILifecycleBoot, EggApplicationCore } from 'egg';
|
|
3
2
|
import { Watcher } from './watcher.js';
|
|
4
3
|
|
|
5
4
|
export class Boot implements ILifecycleBoot {
|
|
6
|
-
#app:
|
|
5
|
+
#app: EggApplicationCore;
|
|
7
6
|
#watcher: Watcher;
|
|
8
7
|
|
|
9
|
-
constructor(appOrAgent:
|
|
8
|
+
constructor(appOrAgent: EggApplicationCore) {
|
|
10
9
|
this.#app = appOrAgent;
|
|
11
10
|
this.#watcher = this.#app.watcher = this.#app.cluster(Watcher, {})
|
|
12
11
|
.delegate('watch', 'subscribe')
|
|
@@ -89,10 +89,12 @@ export default class DevelopmentEventSource extends BaseEventSource {
|
|
|
89
89
|
// mtime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
90
90
|
// ctime: Wed Jun 17 2015 00:08:38 GMT+0800 (CST),
|
|
91
91
|
// birthtime: Tue Jun 16 2015 23:19:13 GMT+0800 (CST) } }
|
|
92
|
+
const stat = fs.statSync(file, { throwIfNoEntry: false });
|
|
92
93
|
const info = {
|
|
93
94
|
path: file,
|
|
94
95
|
event,
|
|
95
|
-
stat
|
|
96
|
+
stat,
|
|
97
|
+
isDirectory: stat?.isDirectory(),
|
|
96
98
|
} as ChangeInfo;
|
|
97
99
|
this.emit('change', info);
|
|
98
100
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BaseEventSource } from './base.js';
|
|
2
|
+
import DefaultEventSource from './default.js';
|
|
3
|
+
import DevelopmentEventSource from './development.js';
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
BaseEventSource,
|
|
7
|
+
DefaultEventSource,
|
|
8
|
+
DevelopmentEventSource,
|
|
9
|
+
};
|
package/src/lib/types.ts
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
import type { WatchEventType, Stats } from 'node:fs';
|
|
2
|
-
import type { EggApplicationCore, EggAppConfig } from 'egg';
|
|
3
2
|
import type { Watcher } from './watcher.js';
|
|
4
3
|
|
|
5
4
|
export interface WatcherConfig {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
/**
|
|
6
|
+
* event source type, default is `default`
|
|
7
|
+
* can be `default` or `development`
|
|
8
|
+
*/
|
|
9
|
+
type: string;
|
|
10
|
+
/**
|
|
11
|
+
* event sources
|
|
12
|
+
* key is event source type, value is event source module path
|
|
13
|
+
*/
|
|
14
|
+
eventSources: Record<string, string>;
|
|
11
15
|
}
|
|
12
16
|
|
|
13
|
-
export interface ChangeInfo {
|
|
17
|
+
export interface ChangeInfo extends Record<string, any> {
|
|
14
18
|
event: WatchEventType;
|
|
15
19
|
/**
|
|
16
20
|
* file stat if path exists
|
|
17
21
|
*/
|
|
18
22
|
stat?: Stats;
|
|
19
23
|
path: string;
|
|
24
|
+
isDirectory?: boolean;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
declare module '@eggjs/core' {
|
|
28
|
+
interface EggCore {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
watcher: Watcher;
|
|
32
|
+
}
|
|
25
33
|
|
|
26
|
-
|
|
34
|
+
interface EggAppConfig {
|
|
35
|
+
watcher: WatcherConfig;
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/lib/watcher.ts
CHANGED
|
@@ -2,19 +2,20 @@ import { debuglog } from 'node:util';
|
|
|
2
2
|
import { Base } from 'sdk-base';
|
|
3
3
|
import camelcase from 'camelcase';
|
|
4
4
|
import { importModule } from '@eggjs/utils';
|
|
5
|
+
import type { EggAppConfig } from '@eggjs/core';
|
|
5
6
|
import { BaseEventSource } from './event-sources/base.js';
|
|
6
7
|
import { isEqualOrParentPath } from './utils.js';
|
|
7
|
-
import type { ChangeInfo
|
|
8
|
+
import type { ChangeInfo } from './types.js';
|
|
8
9
|
|
|
9
10
|
const debug = debuglog('@eggjs/watcher/lib/watcher');
|
|
10
11
|
|
|
11
12
|
export type WatchListener = (info: ChangeInfo) => void;
|
|
12
13
|
|
|
13
14
|
export class Watcher extends Base {
|
|
14
|
-
#config:
|
|
15
|
+
#config: EggAppConfig;
|
|
15
16
|
#eventSource: BaseEventSource;
|
|
16
17
|
|
|
17
|
-
constructor(config:
|
|
18
|
+
constructor(config: EggAppConfig) {
|
|
18
19
|
super({
|
|
19
20
|
initMethod: '_init',
|
|
20
21
|
});
|
|
@@ -23,7 +24,7 @@ export class Watcher extends Base {
|
|
|
23
24
|
|
|
24
25
|
protected async _init() {
|
|
25
26
|
const watcherType = this.#config.watcher.type;
|
|
26
|
-
let EventSource
|
|
27
|
+
let EventSource = this.#config.watcher.eventSources[watcherType] as unknown as typeof BaseEventSource;
|
|
27
28
|
if (typeof EventSource === 'string') {
|
|
28
29
|
EventSource = await importModule(EventSource, {
|
|
29
30
|
importDefaultOnly: true,
|