bun_plugins 1.2.5 → 1.2.7
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/src/PluginManager.d.ts +13 -1
- package/dist/src/PluginManager.d.ts.map +1 -1
- package/dist/src/PluginManager.js +37 -8
- package/dist/src/PluginManager.js.map +1 -1
- package/dist/src/storage/JsonPluginStorage.d.ts +61 -1
- package/dist/src/storage/JsonPluginStorage.d.ts.map +1 -1
- package/dist/src/storage/JsonPluginStorage.js +165 -0
- package/dist/src/storage/JsonPluginStorage.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
6
6
|
private availablePlugins;
|
|
7
7
|
private configs;
|
|
8
8
|
private pluginApis;
|
|
9
|
+
private pluginFilePaths;
|
|
9
10
|
private resources;
|
|
10
11
|
private dependencyManager;
|
|
11
12
|
hooksManager: HooksManager;
|
|
@@ -22,10 +23,21 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
22
23
|
getWorkerFactory(): (url: string | URL, options?: WorkerOptions) => Worker;
|
|
23
24
|
register(plugin: IPlugin): Promise<void>;
|
|
24
25
|
registerIsolated(pluginPath: string, pluginName: string): Promise<void>;
|
|
25
|
-
unregister(pluginName: string): Promise<void>;
|
|
26
|
+
unregister(pluginName: string, clean?: boolean): Promise<void>;
|
|
26
27
|
getPlugin(name: string): IPlugin | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* @param pluginName - Plugin name
|
|
30
|
+
* @returns The absolute path of the plugin file, or undefined if not found
|
|
31
|
+
*/
|
|
32
|
+
getPluginPath(pluginName: string): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Get all plugin paths
|
|
35
|
+
* @returns Map with plugin names as keys and their paths as values
|
|
36
|
+
*/
|
|
37
|
+
getAllPluginPaths(): Map<string, string>;
|
|
27
38
|
getApi<T = any>(name: string): T | undefined;
|
|
28
39
|
getPluginConfig(name: string): Record<string, any>;
|
|
40
|
+
setPluginConfig(name: string, config: Record<string, any>): Record<string, any>;
|
|
29
41
|
listPlugins(): string[];
|
|
30
42
|
registerApi(pluginName: string, api: any): void;
|
|
31
43
|
getPluginApi(pluginName: string): any | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACH,KAAK,OAAO,EAEZ,KAAK,SAAS,EACd,KAAK,gBAAgB,IAAI,aAAa,EACtC,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EAKtB,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,qBAAa,aAAc,SAAQ,YAAa,YAAW,cAAc;IACvE,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,UAAU,CAA+B;
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ export class PluginManager extends EventEmitter {
|
|
|
18
18
|
availablePlugins = new Map();
|
|
19
19
|
configs = new Map();
|
|
20
20
|
pluginApis = new Map();
|
|
21
|
+
pluginFilePaths = new Map();
|
|
21
22
|
// Modules
|
|
22
23
|
resources;
|
|
23
24
|
dependencyManager;
|
|
@@ -63,8 +64,8 @@ export class PluginManager extends EventEmitter {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
logger.getLogger("PluginManager").info(`Loading plugin: ${plugin.name} v${plugin.version}`);
|
|
66
|
-
// 1. Prepare Storage
|
|
67
|
-
const storage =
|
|
67
|
+
// 1. Prepare Storage (singleton)
|
|
68
|
+
const storage = JsonPluginStorage.getInstance(this.storageRoot, plugin.name);
|
|
68
69
|
// 2. Load & Validate Configuration
|
|
69
70
|
let config = plugin.defaultConfig || {};
|
|
70
71
|
if (plugin.configSchema) {
|
|
@@ -157,7 +158,7 @@ export class PluginManager extends EventEmitter {
|
|
|
157
158
|
worker.terminate();
|
|
158
159
|
return reject(new Error(`Invalid plugin name: ${pluginName}. Name cannot contain path traversal characters.`));
|
|
159
160
|
}
|
|
160
|
-
const storage =
|
|
161
|
+
const storage = JsonPluginStorage.getInstance(this.storageRoot, pluginName);
|
|
161
162
|
const pendingHooks = new Map();
|
|
162
163
|
// Initialize resources
|
|
163
164
|
const res = this.resources.init(pluginName);
|
|
@@ -338,6 +339,8 @@ export class PluginManager extends EventEmitter {
|
|
|
338
339
|
},
|
|
339
340
|
};
|
|
340
341
|
this.plugins.set(metadata.name, proxyPlugin);
|
|
342
|
+
// Registrar el path del archivo del plugin aislado
|
|
343
|
+
this.pluginFilePaths.set(metadata.name, pluginPath);
|
|
341
344
|
// Register API if provided in metadata
|
|
342
345
|
if (metadata.api) {
|
|
343
346
|
this.registerApi(metadata.name, metadata.api);
|
|
@@ -369,7 +372,7 @@ export class PluginManager extends EventEmitter {
|
|
|
369
372
|
});
|
|
370
373
|
});
|
|
371
374
|
}
|
|
372
|
-
async unregister(pluginName) {
|
|
375
|
+
async unregister(pluginName, clean = false) {
|
|
373
376
|
const plugin = this.plugins.get(pluginName);
|
|
374
377
|
if (!plugin)
|
|
375
378
|
return;
|
|
@@ -389,12 +392,29 @@ export class PluginManager extends EventEmitter {
|
|
|
389
392
|
this.resources.cleanup(pluginName, this);
|
|
390
393
|
this.hooksManager.cleanup(pluginName);
|
|
391
394
|
this.unregisterApi(pluginName);
|
|
395
|
+
if (clean) {
|
|
396
|
+
this.pluginFilePaths.delete(pluginName);
|
|
397
|
+
}
|
|
392
398
|
logger.getLogger("PluginManager").info(`Plugin ${pluginName} unloaded.`);
|
|
393
399
|
}
|
|
394
400
|
}
|
|
395
401
|
getPlugin(name) {
|
|
396
402
|
return this.plugins.get(name);
|
|
397
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* @param pluginName - Plugin name
|
|
406
|
+
* @returns The absolute path of the plugin file, or undefined if not found
|
|
407
|
+
*/
|
|
408
|
+
getPluginPath(pluginName) {
|
|
409
|
+
return this.pluginFilePaths.get(pluginName);
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Get all plugin paths
|
|
413
|
+
* @returns Map with plugin names as keys and their paths as values
|
|
414
|
+
*/
|
|
415
|
+
getAllPluginPaths() {
|
|
416
|
+
return new Map(this.pluginFilePaths);
|
|
417
|
+
}
|
|
398
418
|
getApi(name) {
|
|
399
419
|
// Get the registered API
|
|
400
420
|
return this.getPluginApi(name);
|
|
@@ -402,18 +422,22 @@ export class PluginManager extends EventEmitter {
|
|
|
402
422
|
getPluginConfig(name) {
|
|
403
423
|
return this.configs.get(name) || {};
|
|
404
424
|
}
|
|
425
|
+
setPluginConfig(name, config) {
|
|
426
|
+
this.configs.set(name, config);
|
|
427
|
+
return this.configs.get(name) || {};
|
|
428
|
+
}
|
|
405
429
|
listPlugins() {
|
|
406
430
|
return Array.from(this.plugins.keys());
|
|
407
431
|
}
|
|
408
|
-
//
|
|
432
|
+
// register plugin API
|
|
409
433
|
registerApi(pluginName, api) {
|
|
410
434
|
this.pluginApis.set(pluginName, api);
|
|
411
435
|
}
|
|
412
|
-
//
|
|
436
|
+
// get plugin API
|
|
413
437
|
getPluginApi(pluginName) {
|
|
414
438
|
return this.pluginApis.get(pluginName);
|
|
415
439
|
}
|
|
416
|
-
//
|
|
440
|
+
// unregister plugin API
|
|
417
441
|
unregisterApi(pluginName) {
|
|
418
442
|
this.pluginApis.delete(pluginName);
|
|
419
443
|
}
|
|
@@ -445,6 +469,8 @@ export class PluginManager extends EventEmitter {
|
|
|
445
469
|
}
|
|
446
470
|
const entries = await readdir(directoryPath, { withFileTypes: true });
|
|
447
471
|
this.availablePlugins.clear();
|
|
472
|
+
// Clear the file paths when reloading the directory
|
|
473
|
+
this.pluginFilePaths.clear();
|
|
448
474
|
for (const entry of entries) {
|
|
449
475
|
let fullPath = null;
|
|
450
476
|
if (entry.isDirectory()) {
|
|
@@ -475,6 +501,9 @@ export class PluginManager extends EventEmitter {
|
|
|
475
501
|
const validation = validatePlugin(ExportedItem);
|
|
476
502
|
if (validation.valid) {
|
|
477
503
|
this.availablePlugins.set(validation.plugin.name, validation.plugin);
|
|
504
|
+
// Registrar la ubicación del archivo del plugin
|
|
505
|
+
this.pluginFilePaths.set(validation.plugin.name, fullPath);
|
|
506
|
+
logger.getLogger("PluginManager").info(`[PluginManager] Plugin file path registered: ${validation.plugin.name} -> ${fullPath}`);
|
|
478
507
|
}
|
|
479
508
|
else {
|
|
480
509
|
const errorMsg = validation.error;
|
|
@@ -584,7 +613,7 @@ export class PluginManager extends EventEmitter {
|
|
|
584
613
|
// If the new version has onReload, call it
|
|
585
614
|
if (newPlugin && newPlugin.onReload) {
|
|
586
615
|
// We need a context for onReload as well
|
|
587
|
-
const storage =
|
|
616
|
+
const storage = JsonPluginStorage.getInstance(this.storageRoot, name);
|
|
588
617
|
const context = createPluginContext(this, newPlugin, this.resources, storage);
|
|
589
618
|
try {
|
|
590
619
|
await newPlugin.onReload(context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
import type { IPluginStorage } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* JsonPluginStorage con soporte singleton para evitar múltiples instancias del mismo plugin.
|
|
4
|
+
* Usa un Map estático para almacenar las instancias por nombre de plugin y basePath.
|
|
5
|
+
*/
|
|
2
6
|
export declare class JsonPluginStorage implements IPluginStorage {
|
|
7
|
+
private static instances;
|
|
3
8
|
private filePath;
|
|
4
9
|
private data;
|
|
5
10
|
private lastModified;
|
|
6
|
-
|
|
11
|
+
private watcher;
|
|
12
|
+
private watchDebounceTimer;
|
|
13
|
+
private onDataChangeCallbacks;
|
|
14
|
+
/**
|
|
15
|
+
* Obtiene una instancia singleton de JsonPluginStorage.
|
|
16
|
+
* Si la instancia ya existe para el plugin dado, la reutiliza.
|
|
17
|
+
* @param basePath Ruta base del storage
|
|
18
|
+
* @param pluginName Nombre del plugin
|
|
19
|
+
* @returns Instancia de JsonPluginStorage
|
|
20
|
+
*/
|
|
21
|
+
static getInstance(basePath: string, pluginName: string): JsonPluginStorage;
|
|
22
|
+
/**
|
|
23
|
+
* Obtiene todas las instancias registradas.
|
|
24
|
+
*/
|
|
25
|
+
static getAllInstances(): Map<string, JsonPluginStorage>;
|
|
26
|
+
/**
|
|
27
|
+
* Obtiene una instancia específica por nombre de plugin.
|
|
28
|
+
* @param pluginName Nombre del plugin
|
|
29
|
+
* @returns Instancia o undefined si no existe
|
|
30
|
+
*/
|
|
31
|
+
static getInstanceByName(pluginName: string): JsonPluginStorage | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Elimina una instancia específica.
|
|
34
|
+
* @param basePath Ruta base del storage
|
|
35
|
+
* @param pluginName Nombre del plugin
|
|
36
|
+
*/
|
|
37
|
+
static removeInstance(basePath: string, pluginName: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Limpia todas las instancias (útil para testing).
|
|
40
|
+
*/
|
|
41
|
+
static clearAllInstances(): void;
|
|
42
|
+
private constructor();
|
|
7
43
|
private ensureLoaded;
|
|
8
44
|
private save;
|
|
9
45
|
get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
|
|
@@ -11,5 +47,29 @@ export declare class JsonPluginStorage implements IPluginStorage {
|
|
|
11
47
|
delete(key: string): Promise<void>;
|
|
12
48
|
clear(): Promise<void>;
|
|
13
49
|
reload(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* init watch for storage file changes
|
|
52
|
+
* When the file changes externally, the data will be reloaded automatically.
|
|
53
|
+
* @param debounceMs Time to wait in ms before reloading (default: 100ms)
|
|
54
|
+
*/
|
|
55
|
+
startWatching(debounceMs?: number): void;
|
|
56
|
+
/**
|
|
57
|
+
* stop watching for storage file changes
|
|
58
|
+
*/
|
|
59
|
+
stopWatching(): void;
|
|
60
|
+
/**
|
|
61
|
+
* register a callback that will be called when the storage data changes.
|
|
62
|
+
* @param callback function to call when the data changes
|
|
63
|
+
* @returns function to cancel the subscription
|
|
64
|
+
*/
|
|
65
|
+
onDataChange(callback: (data: Record<string, any>) => void): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* notify all subscribers about data changes.
|
|
68
|
+
*/
|
|
69
|
+
private notifyDataChange;
|
|
70
|
+
/**
|
|
71
|
+
* check if the storage is being watched.
|
|
72
|
+
*/
|
|
73
|
+
isWatching(): boolean;
|
|
14
74
|
}
|
|
15
75
|
//# sourceMappingURL=JsonPluginStorage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonPluginStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonPluginStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6C;IAErE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,qBAAqB,CAAkD;IAE/E;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAc3E;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAIxD;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAS3E;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAYjE;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAShC,OAAO;YAIO,YAAY;YA0BZ,IAAI;IAeZ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAK7D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;;OAIG;IACH,aAAa,CAAC,UAAU,GAAE,MAAY,GAAG,IAAI;IA2C7C;;OAEG;IACH,YAAY,IAAI,IAAI;IAapB;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAWvE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}
|
|
@@ -1,10 +1,84 @@
|
|
|
1
1
|
import { join, dirname } from "node:path";
|
|
2
2
|
import { mkdir } from "node:fs/promises";
|
|
3
|
+
import { watch, existsSync } from "node:fs";
|
|
3
4
|
import { logger } from "../logger";
|
|
5
|
+
/**
|
|
6
|
+
* JsonPluginStorage con soporte singleton para evitar múltiples instancias del mismo plugin.
|
|
7
|
+
* Usa un Map estático para almacenar las instancias por nombre de plugin y basePath.
|
|
8
|
+
*/
|
|
4
9
|
export class JsonPluginStorage {
|
|
10
|
+
static instances = new Map();
|
|
5
11
|
filePath;
|
|
6
12
|
data = null;
|
|
7
13
|
lastModified = 0;
|
|
14
|
+
watcher = null;
|
|
15
|
+
watchDebounceTimer = null;
|
|
16
|
+
onDataChangeCallbacks = [];
|
|
17
|
+
/**
|
|
18
|
+
* Obtiene una instancia singleton de JsonPluginStorage.
|
|
19
|
+
* Si la instancia ya existe para el plugin dado, la reutiliza.
|
|
20
|
+
* @param basePath Ruta base del storage
|
|
21
|
+
* @param pluginName Nombre del plugin
|
|
22
|
+
* @returns Instancia de JsonPluginStorage
|
|
23
|
+
*/
|
|
24
|
+
static getInstance(basePath, pluginName) {
|
|
25
|
+
const key = `${basePath}:${pluginName}`;
|
|
26
|
+
if (!JsonPluginStorage.instances.has(key)) {
|
|
27
|
+
const instance = new JsonPluginStorage(basePath, pluginName);
|
|
28
|
+
JsonPluginStorage.instances.set(key, instance);
|
|
29
|
+
if (logger) {
|
|
30
|
+
logger.getLogger("JsonPluginStorage").debug(`Created new storage instance for ${pluginName}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return JsonPluginStorage.instances.get(key);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Obtiene todas las instancias registradas.
|
|
37
|
+
*/
|
|
38
|
+
static getAllInstances() {
|
|
39
|
+
return new Map(JsonPluginStorage.instances);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Obtiene una instancia específica por nombre de plugin.
|
|
43
|
+
* @param pluginName Nombre del plugin
|
|
44
|
+
* @returns Instancia o undefined si no existe
|
|
45
|
+
*/
|
|
46
|
+
static getInstanceByName(pluginName) {
|
|
47
|
+
for (const [key, instance] of JsonPluginStorage.instances) {
|
|
48
|
+
if (key.endsWith(`:${pluginName}`)) {
|
|
49
|
+
return instance;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Elimina una instancia específica.
|
|
56
|
+
* @param basePath Ruta base del storage
|
|
57
|
+
* @param pluginName Nombre del plugin
|
|
58
|
+
*/
|
|
59
|
+
static removeInstance(basePath, pluginName) {
|
|
60
|
+
const key = `${basePath}:${pluginName}`;
|
|
61
|
+
const instance = JsonPluginStorage.instances.get(key);
|
|
62
|
+
if (instance) {
|
|
63
|
+
instance.stopWatching(); // Limpiar watcher al eliminar
|
|
64
|
+
JsonPluginStorage.instances.delete(key);
|
|
65
|
+
if (logger) {
|
|
66
|
+
logger.getLogger("JsonPluginStorage").debug(`Removed storage instance for ${pluginName}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Limpia todas las instancias (útil para testing).
|
|
72
|
+
*/
|
|
73
|
+
static clearAllInstances() {
|
|
74
|
+
for (const [key, instance] of JsonPluginStorage.instances) {
|
|
75
|
+
instance.stopWatching();
|
|
76
|
+
}
|
|
77
|
+
JsonPluginStorage.instances.clear();
|
|
78
|
+
if (!logger)
|
|
79
|
+
return;
|
|
80
|
+
logger.getLogger("JsonPluginStorage").debug(`Cleared all storage instances`);
|
|
81
|
+
}
|
|
8
82
|
constructor(basePath, pluginName) {
|
|
9
83
|
this.filePath = join(basePath, "plugins", pluginName, "storage.json");
|
|
10
84
|
}
|
|
@@ -71,5 +145,96 @@ export class JsonPluginStorage {
|
|
|
71
145
|
async reload() {
|
|
72
146
|
await this.ensureLoaded(true);
|
|
73
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* init watch for storage file changes
|
|
150
|
+
* When the file changes externally, the data will be reloaded automatically.
|
|
151
|
+
* @param debounceMs Time to wait in ms before reloading (default: 100ms)
|
|
152
|
+
*/
|
|
153
|
+
startWatching(debounceMs = 100) {
|
|
154
|
+
if (this.watcher) {
|
|
155
|
+
logger.getLogger("JsonPluginStorage").warn(`Already watching ${this.filePath}`);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const dir = dirname(this.filePath);
|
|
159
|
+
if (!existsSync(dir)) {
|
|
160
|
+
logger.getLogger("JsonPluginStorage").warn(`Cannot watch non-existent directory: ${dir}`);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
this.watcher = watch(dir, { persistent: false }, async (eventType, filename) => {
|
|
165
|
+
if (filename && filename.endsWith('.json')) {
|
|
166
|
+
// Debounce para evitar múltiples recargas rápidas
|
|
167
|
+
if (this.watchDebounceTimer) {
|
|
168
|
+
clearTimeout(this.watchDebounceTimer);
|
|
169
|
+
}
|
|
170
|
+
this.watchDebounceTimer = setTimeout(async () => {
|
|
171
|
+
try {
|
|
172
|
+
const oldData = this.data ? { ...this.data } : null;
|
|
173
|
+
await this.ensureLoaded(true);
|
|
174
|
+
// Notificar a los suscriptores si los datos cambiaron
|
|
175
|
+
if (oldData && this.data && JSON.stringify(oldData) !== JSON.stringify(this.data)) {
|
|
176
|
+
this.notifyDataChange(this.data);
|
|
177
|
+
logger.getLogger("JsonPluginStorage").info(`Storage auto-reloaded for ${this.filePath}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
logger.getLogger("JsonPluginStorage").error(`Error auto-reloading storage:`, e);
|
|
182
|
+
}
|
|
183
|
+
}, debounceMs);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
logger.getLogger("JsonPluginStorage").info(`Started watching ${this.filePath}`);
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
logger.getLogger("JsonPluginStorage").error(`Failed to start watching ${this.filePath}:`, e);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* stop watching for storage file changes
|
|
194
|
+
*/
|
|
195
|
+
stopWatching() {
|
|
196
|
+
if (this.watchDebounceTimer) {
|
|
197
|
+
clearTimeout(this.watchDebounceTimer);
|
|
198
|
+
this.watchDebounceTimer = null;
|
|
199
|
+
}
|
|
200
|
+
if (this.watcher) {
|
|
201
|
+
this.watcher.close();
|
|
202
|
+
this.watcher = null;
|
|
203
|
+
logger.getLogger("JsonPluginStorage").info(`Stopped watching ${this.filePath}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* register a callback that will be called when the storage data changes.
|
|
208
|
+
* @param callback function to call when the data changes
|
|
209
|
+
* @returns function to cancel the subscription
|
|
210
|
+
*/
|
|
211
|
+
onDataChange(callback) {
|
|
212
|
+
this.onDataChangeCallbacks.push(callback);
|
|
213
|
+
return () => {
|
|
214
|
+
const index = this.onDataChangeCallbacks.indexOf(callback);
|
|
215
|
+
if (index > -1) {
|
|
216
|
+
this.onDataChangeCallbacks.splice(index, 1);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* notify all subscribers about data changes.
|
|
222
|
+
*/
|
|
223
|
+
notifyDataChange(data) {
|
|
224
|
+
for (const callback of this.onDataChangeCallbacks) {
|
|
225
|
+
try {
|
|
226
|
+
callback(data);
|
|
227
|
+
}
|
|
228
|
+
catch (e) {
|
|
229
|
+
logger.getLogger("JsonPluginStorage").error(`Error in data change callback:`, e);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* check if the storage is being watched.
|
|
235
|
+
*/
|
|
236
|
+
isWatching() {
|
|
237
|
+
return this.watcher !== null;
|
|
238
|
+
}
|
|
74
239
|
}
|
|
75
240
|
//# sourceMappingURL=JsonPluginStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonPluginStorage.js","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"JsonPluginStorage.js","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"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"}
|