@antelopejs/core 1.1.1 → 1.1.3
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/core/version-checker.js +1 -1
- package/dist/core/version-checker.js.map +1 -1
- package/dist/core/watch/file-watcher.d.ts +4 -0
- package/dist/core/watch/file-watcher.js +33 -0
- package/dist/core/watch/file-watcher.js.map +1 -1
- package/dist/index.js +42 -16
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ async function fetchLatestVersion(packageName) {
|
|
|
20
20
|
}
|
|
21
21
|
async function checkOutdatedModules(modules) {
|
|
22
22
|
const packageModules = Object.entries(modules).filter(([, info]) => info.source?.type === "package");
|
|
23
|
-
const results = await Promise.allSettled(packageModules.map(([
|
|
23
|
+
const results = await Promise.allSettled(packageModules.map(([, info]) => fetchLatestVersion(info.source.package)));
|
|
24
24
|
return packageModules.reduce((outdated, [name, info], index) => {
|
|
25
25
|
const result = results[index];
|
|
26
26
|
if (result.status !== "fulfilled" || !result.value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/core/version-checker.ts"],"names":[],"mappings":";;AAgBA,gDAYC;AAED,
|
|
1
|
+
{"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/core/version-checker.ts"],"names":[],"mappings":";;AAgBA,gDAYC;AAED,oDA4BC;AAED,kDAQC;AAnED,yCAAuC;AACvC,2CAA2C;AAC3C,2DAA+D;AAS/D,MAAM,gBAAgB,GAAG,UAAU,CAAC;AACpC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAE7C,KAAK,UAAU,kBAAkB,CACtC,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAU,EAC7B,GAAG,gBAAgB,IAAI,WAAW,IAAI,gBAAgB,EAAE,EACxD,EAAE,CACH,CAAC;QACF,OAAO,IAAA,wCAAsB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,OAA6C;IAE7C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CACnD,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAC9C,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAC9B,kBAAkB,CAAE,IAAI,CAAC,MAA8B,CAAC,OAAO,CAAC,CACjE,CACF,CAAC;IAEF,OAAO,cAAc,CAAC,MAAM,CAC1B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAI,IAAI,CAAC,MAA8B,CAAC,OAAO,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAA0B;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAA,gBAAO,EACL,GAAG,QAAQ,CAAC,MAAM,oCAAoC;QACpD,SAAS,cAAc,eAAe,CACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IFileSystem } from "../../types";
|
|
2
2
|
import { FileHasher } from "./file-hasher";
|
|
3
3
|
export type ModuleChangeListener = (moduleId: string) => void;
|
|
4
|
+
export type FileChangeListener = (filePath: string) => void;
|
|
4
5
|
export declare class FileWatcher {
|
|
5
6
|
private fs;
|
|
6
7
|
private hasher;
|
|
@@ -10,12 +11,15 @@ export declare class FileWatcher {
|
|
|
10
11
|
private watchers;
|
|
11
12
|
private watchedDirs;
|
|
12
13
|
private watchedDirModules;
|
|
14
|
+
private watchedFiles;
|
|
13
15
|
constructor(fs: IFileSystem, hasher?: FileHasher);
|
|
14
16
|
onModuleChanged(listener: ModuleChangeListener): void;
|
|
15
17
|
scanModule(moduleId: string, rootDir: string, watchDirs?: string[]): Promise<void>;
|
|
18
|
+
watchFile(filePath: string, listener: FileChangeListener): Promise<void>;
|
|
16
19
|
startWatching(): void;
|
|
17
20
|
stopWatching(): void;
|
|
18
21
|
handleFileChange(filePath: string): Promise<void>;
|
|
22
|
+
private handleWatchedFileChange;
|
|
19
23
|
private exploreDir;
|
|
20
24
|
private trackWatchedDir;
|
|
21
25
|
private getModuleIdForPath;
|
|
@@ -47,6 +47,7 @@ class FileWatcher {
|
|
|
47
47
|
watchers = new Map();
|
|
48
48
|
watchedDirs = new Set();
|
|
49
49
|
watchedDirModules = new Map();
|
|
50
|
+
watchedFiles = new Map();
|
|
50
51
|
constructor(fs, hasher = new file_hasher_1.FileHasher(fs)) {
|
|
51
52
|
this.fs = fs;
|
|
52
53
|
this.hasher = hasher;
|
|
@@ -59,6 +60,18 @@ class FileWatcher {
|
|
|
59
60
|
await this.exploreDir(moduleId, path.join(rootDir, dir));
|
|
60
61
|
}
|
|
61
62
|
}
|
|
63
|
+
async watchFile(filePath, listener) {
|
|
64
|
+
const resolved = path.resolve(filePath);
|
|
65
|
+
const dir = path.dirname(resolved);
|
|
66
|
+
const existing = this.watchedFiles.get(resolved);
|
|
67
|
+
if (existing) {
|
|
68
|
+
existing.listeners.push(listener);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const hash = await this.hasher.hashFile(resolved);
|
|
72
|
+
this.watchedFiles.set(resolved, { hash, listeners: [listener] });
|
|
73
|
+
this.watchedDirs.add(dir);
|
|
74
|
+
}
|
|
62
75
|
startWatching() {
|
|
63
76
|
for (const dir of this.watchedDirs) {
|
|
64
77
|
if (this.watchers.has(dir)) {
|
|
@@ -95,6 +108,12 @@ class FileWatcher {
|
|
|
95
108
|
if (this.isExcludedPath(filePath)) {
|
|
96
109
|
return;
|
|
97
110
|
}
|
|
111
|
+
const resolved = path.resolve(filePath);
|
|
112
|
+
const watchedFile = this.watchedFiles.get(resolved);
|
|
113
|
+
if (watchedFile) {
|
|
114
|
+
await this.handleWatchedFileChange(resolved, watchedFile);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
98
117
|
const entry = this.filesHash.get(filePath);
|
|
99
118
|
if (!(await this.fs.exists(filePath))) {
|
|
100
119
|
if (entry) {
|
|
@@ -122,6 +141,20 @@ class FileWatcher {
|
|
|
122
141
|
this.notifyModuleChange(entry.moduleId);
|
|
123
142
|
}
|
|
124
143
|
}
|
|
144
|
+
async handleWatchedFileChange(filePath, entry) {
|
|
145
|
+
if (!(await this.fs.exists(filePath))) {
|
|
146
|
+
console.warn(`Watched file deleted: ${filePath}`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const newHash = await this.hasher.hashFile(filePath);
|
|
150
|
+
if (newHash === entry.hash) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
entry.hash = newHash;
|
|
154
|
+
for (const listener of entry.listeners) {
|
|
155
|
+
listener(filePath);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
125
158
|
async exploreDir(moduleId, dirPath) {
|
|
126
159
|
this.trackWatchedDir(dirPath, moduleId);
|
|
127
160
|
const entries = await this.fs.readdir(dirPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../../src/core/watch/file-watcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgD;AAChD,gDAAkC;AAElC,+CAA2C;
|
|
1
|
+
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../../src/core/watch/file-watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -61,24 +61,34 @@ function registerShutdownCleanup(shutdownManager) {
|
|
|
61
61
|
}
|
|
62
62
|
}, SHUTDOWN_PRIORITY_CLEANUP);
|
|
63
63
|
}
|
|
64
|
-
async function
|
|
64
|
+
async function setupWatching(manager, fs, projectFolder, env, options, shutdownManager, loaderContext) {
|
|
65
|
+
const watcher = new file_watcher_1.FileWatcher(fs);
|
|
66
|
+
const hotReload = new hot_reload_1.HotReload(async (moduleId) => (0, module_loading_1.reloadWatchedModule)(manager, moduleId, loaderContext));
|
|
67
|
+
for (const { module } of manager.getLoadedModules()) {
|
|
68
|
+
if (module.manifest?.source?.type === "local") {
|
|
69
|
+
const watchDirs = (0, module_loading_1.getWatchDirs)(module.manifest.source);
|
|
70
|
+
await watcher.scanModule(module.id, module.manifest.folder, watchDirs);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const configPath = await (0, config_paths_1.tryFindConfigPath)(projectFolder, fs);
|
|
74
|
+
if (configPath) {
|
|
75
|
+
await watcher.watchFile(configPath, () => {
|
|
76
|
+
Logger.Info("Configuration file changed, restarting project...");
|
|
77
|
+
void restartProject(projectFolder, env, options);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
watcher.onModuleChanged((id) => hotReload.queue(id));
|
|
81
|
+
watcher.startWatching();
|
|
82
|
+
shutdownManager.register(async () => {
|
|
83
|
+
hotReload.clear();
|
|
84
|
+
watcher.stopWatching();
|
|
85
|
+
}, SHUTDOWN_PRIORITY_RESOURCES);
|
|
86
|
+
}
|
|
87
|
+
async function setupPostLaunchFeatures(manager, fs, projectFolder, env, options, shutdownManager, loaderContext) {
|
|
65
88
|
registerModuleShutdownHandler(shutdownManager, manager);
|
|
66
89
|
registerShutdownCleanup(shutdownManager);
|
|
67
90
|
if (options.watch) {
|
|
68
|
-
|
|
69
|
-
const hotReload = new hot_reload_1.HotReload(async (moduleId) => (0, module_loading_1.reloadWatchedModule)(manager, moduleId, loaderContext));
|
|
70
|
-
for (const { module } of manager.getLoadedModules()) {
|
|
71
|
-
if (module.manifest?.source?.type === "local") {
|
|
72
|
-
const watchDirs = (0, module_loading_1.getWatchDirs)(module.manifest.source);
|
|
73
|
-
await watcher.scanModule(module.id, module.manifest.folder, watchDirs);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
watcher.onModuleChanged((id) => hotReload.queue(id));
|
|
77
|
-
watcher.startWatching();
|
|
78
|
-
shutdownManager.register(async () => {
|
|
79
|
-
hotReload.clear();
|
|
80
|
-
watcher.stopWatching();
|
|
81
|
-
}, SHUTDOWN_PRIORITY_RESOURCES);
|
|
91
|
+
await setupWatching(manager, fs, projectFolder, env, options, shutdownManager, loaderContext);
|
|
82
92
|
}
|
|
83
93
|
if (options.interactive) {
|
|
84
94
|
const repl = new repl_session_1.ReplSession({ moduleManager: manager });
|
|
@@ -109,9 +119,25 @@ async function initializeCore(projectFolder, env, options) {
|
|
|
109
119
|
loaderContext,
|
|
110
120
|
};
|
|
111
121
|
}
|
|
122
|
+
let isRestarting = false;
|
|
123
|
+
async function restartProject(projectFolder, env, options) {
|
|
124
|
+
if (isRestarting)
|
|
125
|
+
return;
|
|
126
|
+
isRestarting = true;
|
|
127
|
+
try {
|
|
128
|
+
if (activeShutdownManager) {
|
|
129
|
+
await activeShutdownManager.shutdown();
|
|
130
|
+
}
|
|
131
|
+
const initialized = await initializeCore(projectFolder, env, options);
|
|
132
|
+
await setupPostLaunchFeatures(initialized.manager, initialized.fs, projectFolder, env, options, initialized.shutdownManager, initialized.loaderContext);
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
isRestarting = false;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
112
138
|
async function launch(projectFolder = ".", env = config_paths_1.DEFAULT_ENV, options = {}) {
|
|
113
139
|
const initialized = await initializeCore(projectFolder, env, options);
|
|
114
|
-
await setupPostLaunchFeatures(initialized.manager, initialized.fs, options, initialized.shutdownManager, initialized.loaderContext);
|
|
140
|
+
await setupPostLaunchFeatures(initialized.manager, initialized.fs, projectFolder, env, options, initialized.shutdownManager, initialized.loaderContext);
|
|
115
141
|
return initialized.manager;
|
|
116
142
|
}
|
|
117
143
|
async function build(projectFolder = ".", env = config_paths_1.DEFAULT_ENV, options = {}) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|