@yumerijs/core 1.1.0-alpha.1 → 1.1.0-alpha.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/command.d.ts +26 -0
- package/dist/command.js +36 -2
- package/dist/command.js.map +1 -1
- package/dist/config.d.ts +110 -2
- package/dist/config.js +105 -3
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +17 -0
- package/dist/context.js +54 -0
- package/dist/context.js.map +1 -0
- package/dist/core.d.ts +38 -8
- package/dist/core.js +196 -35
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +21 -13
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +4 -0
- package/dist/logger.js +112 -0
- package/dist/logger.js.map +1 -1
- package/dist/middleware.d.ts +2 -0
- package/dist/middleware.js +3 -0
- package/dist/middleware.js.map +1 -0
- package/dist/platform.d.ts +7 -0
- package/dist/platform.js +8 -0
- package/dist/platform.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +3 -1
package/dist/core.js
CHANGED
|
@@ -49,6 +49,7 @@ const config_1 = require("./config");
|
|
|
49
49
|
const logger_1 = require("./logger");
|
|
50
50
|
const command_1 = require("./command");
|
|
51
51
|
const chokidar_1 = __importDefault(require("chokidar"));
|
|
52
|
+
const context_1 = require("./context");
|
|
52
53
|
class Core {
|
|
53
54
|
constructor(pluginLoader) {
|
|
54
55
|
this.plugins = {};
|
|
@@ -60,25 +61,80 @@ class Core {
|
|
|
60
61
|
this.logger = new logger_1.Logger('core');
|
|
61
62
|
this.providedComponents = {};
|
|
62
63
|
this.pluginModules = {};
|
|
64
|
+
this.configPath = ''; // 存储配置文件路径
|
|
65
|
+
this.globalMiddlewares = {}; // 全局中间件数组
|
|
66
|
+
this.cmdtoplu = {}; // 存储命令与插件名的映射关系
|
|
67
|
+
this.comtoplu = {}; // 存储组件与插件名的映射关系
|
|
68
|
+
this.evttoplu = {}; // 存储事件与插件名的映射关系
|
|
69
|
+
this.mdwtoplu = {}; // 存储中间件与插件名的映射关系
|
|
70
|
+
this.plftoplu = {}; // 存储平台与插件名的映射关系
|
|
63
71
|
this.pluginLoader = pluginLoader;
|
|
64
72
|
}
|
|
65
73
|
// 加载配置文件
|
|
66
74
|
async loadConfig(configPath) {
|
|
67
75
|
try {
|
|
76
|
+
this.configPath = configPath; // 保存配置文件路径
|
|
68
77
|
const doc = yaml.load(fs.readFileSync(configPath, 'utf8'));
|
|
69
78
|
this.config = doc;
|
|
70
79
|
this.logger.info('Config loaded.');
|
|
80
|
+
// 开发环境下监听配置文件变化
|
|
81
|
+
if (process.env.NODE_ENV === 'development') {
|
|
82
|
+
this.watchConfig(configPath);
|
|
83
|
+
}
|
|
71
84
|
}
|
|
72
85
|
catch (e) {
|
|
73
86
|
this.logger.error('Failed to load config:', e);
|
|
74
87
|
throw e; // 抛出异常,让上层处理
|
|
75
88
|
}
|
|
76
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* 监听配置文件变化
|
|
92
|
+
* @param configPath 配置文件路径
|
|
93
|
+
*/
|
|
94
|
+
watchConfig(configPath) {
|
|
95
|
+
const watcher = chokidar_1.default.watch(configPath, {
|
|
96
|
+
persistent: true,
|
|
97
|
+
ignoreInitial: true,
|
|
98
|
+
awaitWriteFinish: {
|
|
99
|
+
stabilityThreshold: 300,
|
|
100
|
+
pollInterval: 100,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
watcher.on('change', async () => {
|
|
104
|
+
//this.logger.info('Config file changed, reloading...');
|
|
105
|
+
try {
|
|
106
|
+
// 重新加载配置文件
|
|
107
|
+
const doc = yaml.load(fs.readFileSync(configPath, 'utf8'));
|
|
108
|
+
this.config = doc;
|
|
109
|
+
// this.logger.info('Config reloaded successfully.');
|
|
110
|
+
// 触发配置变更事件
|
|
111
|
+
await this.emit('config-changed', this.config);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
// this.logger.error('Failed to reload config:', error);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
this.logger.info(`Watching for config changes at ${configPath}`);
|
|
118
|
+
}
|
|
77
119
|
async getPluginConfig(pluginName) {
|
|
78
|
-
|
|
79
|
-
|
|
120
|
+
// 如果插件名以~开头,则去掉~前缀获取配置
|
|
121
|
+
const actualPluginName = pluginName.startsWith('~') ? pluginName.substring(1) : pluginName;
|
|
122
|
+
// 如果配置文件路径存在且处于开发模式,每次都重新读取配置文件
|
|
123
|
+
if (this.configPath && process.env.NODE_ENV === 'development') {
|
|
124
|
+
try {
|
|
125
|
+
const doc = yaml.load(fs.readFileSync(this.configPath, 'utf8'));
|
|
126
|
+
if (doc && doc.plugins) {
|
|
127
|
+
this.config.plugins = doc.plugins;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
this.logger.warn('Failed to refresh config for hot reload:', error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (!this.config.plugins[actualPluginName]) {
|
|
135
|
+
return new config_1.Config(actualPluginName);
|
|
80
136
|
}
|
|
81
|
-
const config = new config_1.Config(
|
|
137
|
+
const config = new config_1.Config(actualPluginName, this.config.plugins[actualPluginName]);
|
|
82
138
|
return config;
|
|
83
139
|
}
|
|
84
140
|
// 加载插件
|
|
@@ -88,12 +144,17 @@ class Core {
|
|
|
88
144
|
this.logger.info('No plugins configuration found or it is not an object. No plugins to load.');
|
|
89
145
|
return;
|
|
90
146
|
}
|
|
91
|
-
//
|
|
92
|
-
const pluginNamesToLoad = Object.keys(this.config.plugins);
|
|
147
|
+
// 获取所有需要加载的插件名,过滤掉以~开头的插件(禁用的插件)
|
|
148
|
+
const pluginNamesToLoad = Object.keys(this.config.plugins).filter(name => !name.startsWith('~'));
|
|
93
149
|
if (pluginNamesToLoad.length === 0) {
|
|
94
|
-
this.logger.info('
|
|
150
|
+
this.logger.info('No enabled plugins found in configuration. All plugins might be disabled or configuration is empty.');
|
|
95
151
|
return;
|
|
96
152
|
}
|
|
153
|
+
// 记录被禁用的插件
|
|
154
|
+
const disabledPlugins = Object.keys(this.config.plugins).filter(name => name.startsWith('~'));
|
|
155
|
+
if (disabledPlugins.length > 0) {
|
|
156
|
+
this.logger.info(`Skipping disabled plugins: ${disabledPlugins.join(', ')}`);
|
|
157
|
+
}
|
|
97
158
|
const loadedPluginNames = [];
|
|
98
159
|
// 使用对象来跟踪尝试加载的插件名
|
|
99
160
|
let loadAttempted = {};
|
|
@@ -130,7 +191,7 @@ class Core {
|
|
|
130
191
|
loadedPluginNames.push(pluginName);
|
|
131
192
|
loadedInThisPass = true; // 标记本轮有插件加载成功
|
|
132
193
|
if (loadedInThisPass && pluginInstance && pluginInstance.apply) {
|
|
133
|
-
await pluginInstance.apply(this, await this.getPluginConfig(pluginName));
|
|
194
|
+
await pluginInstance.apply(new context_1.Context(this, pluginName), await this.getPluginConfig(pluginName));
|
|
134
195
|
// 使用 pluginName
|
|
135
196
|
this.pluginLoader.logger.info(`apply plugin ${pluginName}`);
|
|
136
197
|
}
|
|
@@ -204,9 +265,8 @@ class Core {
|
|
|
204
265
|
const parts = changePath.split(path.sep);
|
|
205
266
|
if (parts.length < 2)
|
|
206
267
|
return;
|
|
207
|
-
const pluginName = parts
|
|
208
|
-
|
|
209
|
-
this.logger.info(`Plugin file changed: ${simplePluginName}`);
|
|
268
|
+
const pluginName = parts[1];
|
|
269
|
+
this.logger.info(`Plugin file changed: ${changePath}`);
|
|
210
270
|
this.reloadPlugin(pluginName, core);
|
|
211
271
|
});
|
|
212
272
|
watcher.on('add', async (changePath) => {
|
|
@@ -215,9 +275,8 @@ class Core {
|
|
|
215
275
|
const parts = changePath.split(path.sep);
|
|
216
276
|
if (parts.length < 2)
|
|
217
277
|
return;
|
|
218
|
-
const pluginName = parts
|
|
219
|
-
|
|
220
|
-
this.logger.info(`New plugin file added: ${simplePluginName}`);
|
|
278
|
+
const pluginName = parts[1];
|
|
279
|
+
this.logger.info(`New plugin file added: ${changePath}`);
|
|
221
280
|
this.reloadPlugin(pluginName, core);
|
|
222
281
|
});
|
|
223
282
|
watcher.on('unlink', async (changePath) => {
|
|
@@ -226,54 +285,83 @@ class Core {
|
|
|
226
285
|
const parts = changePath.split(path.sep);
|
|
227
286
|
if (parts.length < 2)
|
|
228
287
|
return;
|
|
229
|
-
const pluginName = parts
|
|
230
|
-
|
|
231
|
-
this.logger.info(`Plugin file removed: ${simplePluginName}`);
|
|
288
|
+
const pluginName = parts[1];
|
|
289
|
+
this.logger.info(`Plugin file removed: ${changePath}`);
|
|
232
290
|
await this.unloadPluginAndEmit(pluginName, core);
|
|
233
291
|
});
|
|
234
292
|
logger.info(`Watching for plugin changes in ${pluginsDir}`);
|
|
235
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* 重新加载插件
|
|
296
|
+
* @param pluginName 插件名称
|
|
297
|
+
* @param core Core实例
|
|
298
|
+
*/
|
|
236
299
|
async reloadPlugin(pluginName, core) {
|
|
237
300
|
try {
|
|
301
|
+
// 强制重新读取配置文件,确保获取最新配置
|
|
302
|
+
if (this.configPath && process.env.NODE_ENV === 'development') {
|
|
303
|
+
try {
|
|
304
|
+
const doc = yaml.load(fs.readFileSync(this.configPath, 'utf8'));
|
|
305
|
+
if (doc && doc.plugins) {
|
|
306
|
+
this.config.plugins = doc.plugins;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
this.logger.warn('Failed to refresh config for plugin reload:', error);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// 获取最新的插件配置
|
|
238
314
|
const config = await core.getPluginConfig(pluginName);
|
|
315
|
+
// 加载插件实例
|
|
239
316
|
const plugin = await core.pluginLoader.load(pluginName);
|
|
317
|
+
// 如果插件存在,先禁用旧实例
|
|
240
318
|
if (plugin && plugin.disable) {
|
|
241
|
-
await plugin.disable(
|
|
319
|
+
await plugin.disable(new context_1.Context(this, pluginName));
|
|
242
320
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}
|
|
250
|
-
|
|
321
|
+
// 清理插件提供的组件
|
|
322
|
+
// if (plugin.provide) {
|
|
323
|
+
// for (let providedmodules of plugin.provide) {
|
|
324
|
+
// if (this.components[`${providedmodules}`]) {
|
|
325
|
+
// this.unregisterComponent(providedmodules);
|
|
326
|
+
// }
|
|
327
|
+
// }
|
|
328
|
+
// }
|
|
329
|
+
// 卸载插件
|
|
330
|
+
await core.unloadPluginAndEmit(pluginName, core);
|
|
331
|
+
// 应用新的插件实例
|
|
251
332
|
if (plugin && plugin.apply) {
|
|
252
|
-
await plugin.apply(
|
|
333
|
+
await plugin.apply(new context_1.Context(this, pluginName), config);
|
|
253
334
|
}
|
|
254
335
|
this.pluginLoader.logger.info(`apply plugin ${pluginName}`);
|
|
336
|
+
// 触发插件重载事件
|
|
255
337
|
core.emit('plugin-reloaded', pluginName);
|
|
256
338
|
}
|
|
257
339
|
catch (error) {
|
|
258
340
|
this.logger.error(`Failed to reload plugin ${pluginName}:`, error);
|
|
259
341
|
}
|
|
260
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* 卸载插件并触发事件
|
|
345
|
+
* @param pluginName 插件名称
|
|
346
|
+
* @param core Core实例
|
|
347
|
+
*/
|
|
261
348
|
async unloadPluginAndEmit(pluginName, core) {
|
|
262
349
|
try {
|
|
263
350
|
const plugin = core.plugins[`${pluginName}`];
|
|
264
351
|
if (plugin && plugin.disable) {
|
|
265
|
-
await plugin.disable(
|
|
352
|
+
await plugin.disable(new context_1.Context(this, pluginName));
|
|
266
353
|
}
|
|
267
354
|
await core.pluginLoader.unloadPlugin(pluginName);
|
|
268
355
|
delete core.plugins[`${pluginName}`];
|
|
269
356
|
delete this.pluginModules[`${pluginName}`];
|
|
270
357
|
// Remove provided components from this plugin
|
|
271
|
-
for (const componentName in this.providedComponents) {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
358
|
+
// for (const componentName in this.providedComponents) {
|
|
359
|
+
// if (this.providedComponents[`${componentName}`] === pluginName) {
|
|
360
|
+
// delete this.components[`${componentName}`];
|
|
361
|
+
// delete this.providedComponents[`${componentName}`];
|
|
362
|
+
// }
|
|
363
|
+
// }
|
|
364
|
+
this.unregall(pluginName);
|
|
277
365
|
core.emit('plugin-unloaded', pluginName);
|
|
278
366
|
}
|
|
279
367
|
catch (error) {
|
|
@@ -297,6 +385,7 @@ class Core {
|
|
|
297
385
|
unregisterComponent(name) {
|
|
298
386
|
delete this.components[`${name}`];
|
|
299
387
|
delete this.providedComponents[`${name}`];
|
|
388
|
+
delete this.comtoplu[`${name}`];
|
|
300
389
|
}
|
|
301
390
|
// 事件系统:监听事件
|
|
302
391
|
on(event, listener) {
|
|
@@ -309,7 +398,7 @@ class Core {
|
|
|
309
398
|
// 事件系统:触发事件
|
|
310
399
|
async emit(event, ...args) {
|
|
311
400
|
if (this.eventListeners[`${event}`]) {
|
|
312
|
-
this.logger.info(`Emitting event "${event}" with args:`, args);
|
|
401
|
+
// this.logger.info(`Emitting event "${event}" with args:`, args);
|
|
313
402
|
for (const listener of this.eventListeners[`${event}`]) {
|
|
314
403
|
try {
|
|
315
404
|
await listener(...args);
|
|
@@ -323,6 +412,11 @@ class Core {
|
|
|
323
412
|
//this.logger.info(`No listeners for event "${event}".`);
|
|
324
413
|
}
|
|
325
414
|
}
|
|
415
|
+
// 注册全局中间件
|
|
416
|
+
use(name, middleware) {
|
|
417
|
+
this.globalMiddlewares[name] = middleware;
|
|
418
|
+
return this;
|
|
419
|
+
}
|
|
326
420
|
// 定义指令
|
|
327
421
|
command(name) {
|
|
328
422
|
const command = new command_1.Command(this, name); // 传递 Core 实例
|
|
@@ -333,7 +427,27 @@ class Core {
|
|
|
333
427
|
async executeCommand(name, session, ...args) {
|
|
334
428
|
const command = this.commands[`${name}`];
|
|
335
429
|
if (command) {
|
|
336
|
-
|
|
430
|
+
// 将 globalMiddlewares 从对象转为数组
|
|
431
|
+
const globalMiddlewareList = Object.values(this.globalMiddlewares || {});
|
|
432
|
+
const commandMiddlewareList = command.middlewares || [];
|
|
433
|
+
// 如果有中间件,执行中间件链
|
|
434
|
+
if (globalMiddlewareList.length > 0 || commandMiddlewareList.length > 0) {
|
|
435
|
+
const middlewares = [...globalMiddlewareList, ...commandMiddlewareList];
|
|
436
|
+
let index = 0;
|
|
437
|
+
const runner = async () => {
|
|
438
|
+
if (index >= middlewares.length) {
|
|
439
|
+
await command.executeHandler(session, ...args);
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const middleware = middlewares[index++];
|
|
443
|
+
await middleware(session, runner);
|
|
444
|
+
};
|
|
445
|
+
await runner();
|
|
446
|
+
return session;
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
return await command.execute(session, ...args);
|
|
450
|
+
}
|
|
337
451
|
}
|
|
338
452
|
return null;
|
|
339
453
|
}
|
|
@@ -341,6 +455,53 @@ class Core {
|
|
|
341
455
|
this.platforms.push(platform);
|
|
342
456
|
return platform.startPlatform(this);
|
|
343
457
|
}
|
|
458
|
+
unregall(pluginname) {
|
|
459
|
+
let cmdtodel = [];
|
|
460
|
+
for (const cmd in this.cmdtoplu) {
|
|
461
|
+
if (this.cmdtoplu[cmd] === pluginname) {
|
|
462
|
+
cmdtodel.push(cmd);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
for (const cmd of cmdtodel) {
|
|
466
|
+
delete this.cmdtoplu[cmd];
|
|
467
|
+
delete this.commands[cmd];
|
|
468
|
+
}
|
|
469
|
+
let comptodel = [];
|
|
470
|
+
for (const comp in this.comtoplu) {
|
|
471
|
+
if (this.comtoplu[comp] === pluginname) {
|
|
472
|
+
comptodel.push(comp);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
for (const comp of comptodel) {
|
|
476
|
+
delete this.comtoplu[comp];
|
|
477
|
+
delete this.components[comp];
|
|
478
|
+
delete this.providedComponents[comp];
|
|
479
|
+
}
|
|
480
|
+
let evttodel = [];
|
|
481
|
+
for (const evt in this.evttoplu) {
|
|
482
|
+
if (this.evttoplu[evt][pluginname]) {
|
|
483
|
+
// 清除插件在 evttoplu 中的记录
|
|
484
|
+
delete this.evttoplu[evt][pluginname];
|
|
485
|
+
// 如果该事件的插件已经全部清除了,也可以选择删掉整个事件
|
|
486
|
+
if (Object.keys(this.evttoplu[evt]).length === 0) {
|
|
487
|
+
evttodel.push(evt);
|
|
488
|
+
}
|
|
489
|
+
// 同时在 this.eventListeners 中删掉对应 listener
|
|
490
|
+
const pluginListeners = this.evttoplu[evt][pluginname] || [];
|
|
491
|
+
this.eventListeners[evt] = this.eventListeners[evt]?.filter(l => !pluginListeners.includes(l)) || [];
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
let mdwtodel = [];
|
|
495
|
+
for (const mdw in this.mdwtoplu) {
|
|
496
|
+
if (this.mdwtoplu[mdw] === pluginname) {
|
|
497
|
+
mdwtodel.push(mdw);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
for (const mdw of mdwtodel) {
|
|
501
|
+
delete this.mdwtoplu[mdw];
|
|
502
|
+
delete this.globalMiddlewares[mdw];
|
|
503
|
+
}
|
|
504
|
+
}
|
|
344
505
|
}
|
|
345
506
|
exports.Core = Core;
|
|
346
507
|
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* @author: FireGuo
|
|
4
4
|
* WindyPear-Team All right reserved
|
|
5
5
|
**/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export
|
|
6
|
+
export * from './core';
|
|
7
|
+
export * from './session';
|
|
8
|
+
export * from './command';
|
|
9
|
+
export * from './config';
|
|
10
|
+
export * from './logger';
|
|
11
|
+
export * from './platform';
|
|
12
|
+
export * from './context';
|
package/dist/index.js
CHANGED
|
@@ -4,18 +4,26 @@
|
|
|
4
4
|
* @author: FireGuo
|
|
5
5
|
* WindyPear-Team All right reserved
|
|
6
6
|
**/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
7
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const config_1 = require("./config");
|
|
16
|
-
Object.defineProperty(exports, "Config", { enumerable: true, get: function () { return config_1.Config; } });
|
|
17
|
-
const logger_1 = require("./logger");
|
|
18
|
-
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
|
|
19
|
-
const platform_1 = require("./platform");
|
|
20
|
-
Object.defineProperty(exports, "Platform", { enumerable: true, get: function () { return platform_1.Platform; } });
|
|
22
|
+
__exportStar(require("./core"), exports);
|
|
23
|
+
__exportStar(require("./session"), exports);
|
|
24
|
+
__exportStar(require("./command"), exports);
|
|
25
|
+
__exportStar(require("./config"), exports);
|
|
26
|
+
__exportStar(require("./logger"), exports);
|
|
27
|
+
__exportStar(require("./platform"), exports);
|
|
28
|
+
__exportStar(require("./context"), exports);
|
|
21
29
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;IAII
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;IAII;;;;;;;;;;;;;;;;AAEJ,yCAAuB;AACvB,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,4CAA0B"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
* @author: FireGuo
|
|
4
4
|
* WindyPear-Team All right reserved
|
|
5
5
|
*/
|
|
6
|
+
import { Core } from './core';
|
|
6
7
|
export declare class Logger {
|
|
7
8
|
private title;
|
|
8
9
|
private titleColor;
|
|
10
|
+
static coreInstance: Core | null;
|
|
11
|
+
static logs: string[];
|
|
12
|
+
static setCore(core: Core): void;
|
|
9
13
|
constructor(title: string);
|
|
10
14
|
private getRandomColor;
|
|
11
15
|
private log;
|
package/dist/logger.js
CHANGED
|
@@ -11,6 +11,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
11
11
|
exports.Logger = void 0;
|
|
12
12
|
const ansi_colors_1 = __importDefault(require("ansi-colors")); // 引入 ansi-colors
|
|
13
13
|
class Logger {
|
|
14
|
+
static setCore(core) {
|
|
15
|
+
if (Logger.coreInstance !== null) {
|
|
16
|
+
const logger = new Logger('Logger');
|
|
17
|
+
logger.warn("Logger.coreInstance is already set. Overwriting would cause confusion.");
|
|
18
|
+
}
|
|
19
|
+
Logger.coreInstance = core;
|
|
20
|
+
}
|
|
14
21
|
constructor(title) {
|
|
15
22
|
this.title = title;
|
|
16
23
|
this.titleColor = this.getRandomColor();
|
|
@@ -24,6 +31,7 @@ class Logger {
|
|
|
24
31
|
const now = new Date();
|
|
25
32
|
const timestamp = `${now.getFullYear()}/${String(now.getMonth() + 1).padStart(2, '0')}/${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}`;
|
|
26
33
|
console.log(`${timestamp} [${level}] ${this.titleColor(this.title)} `, ...args);
|
|
34
|
+
Logger.coreInstance?.emit('log', { level, message: args.join(' ') });
|
|
27
35
|
}
|
|
28
36
|
info(...args) {
|
|
29
37
|
this.log('I', ...args);
|
|
@@ -36,4 +44,108 @@ class Logger {
|
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
exports.Logger = Logger;
|
|
47
|
+
Logger.coreInstance = null;
|
|
48
|
+
Logger.logs = [];
|
|
49
|
+
function stringifyDebug(value, seen = new WeakSet(), depth = 0, indent = 2, maxDepth = 5) {
|
|
50
|
+
const pad = ' '.repeat(depth * indent);
|
|
51
|
+
const nextPad = ' '.repeat((depth + 1) * indent);
|
|
52
|
+
// --- 1. 处理基本类型和 null ---
|
|
53
|
+
if (value === null) {
|
|
54
|
+
return 'null';
|
|
55
|
+
}
|
|
56
|
+
const type = typeof value;
|
|
57
|
+
if (type === 'string') {
|
|
58
|
+
// 确保 value 是字符串,并正确转义内部单引号
|
|
59
|
+
return `'${value.replace(/'/g, "\\'")}'`;
|
|
60
|
+
}
|
|
61
|
+
if (type === 'number' || type === 'boolean') {
|
|
62
|
+
return String(value);
|
|
63
|
+
}
|
|
64
|
+
if (type === 'undefined') {
|
|
65
|
+
return 'undefined';
|
|
66
|
+
}
|
|
67
|
+
if (type === 'symbol') {
|
|
68
|
+
return value.toString();
|
|
69
|
+
}
|
|
70
|
+
if (type === 'function') {
|
|
71
|
+
// 类型断言,确保可以访问函数的 name 属性
|
|
72
|
+
return `[Function: ${value.name || '(anonymous)'}]`;
|
|
73
|
+
}
|
|
74
|
+
if (type === 'bigint') {
|
|
75
|
+
// BigInt 的特殊表示,确保 value 是 BigInt 类型
|
|
76
|
+
return `${String(value)}n`;
|
|
77
|
+
}
|
|
78
|
+
// At this point, 'value' must be a non-primitive object type (object, array, Map, Set, Date, RegExp, custom class)
|
|
79
|
+
// --- 2. 处理简单的内置对象 (它们不会有循环引用问题) ---
|
|
80
|
+
if (value instanceof RegExp) {
|
|
81
|
+
return value.toString();
|
|
82
|
+
}
|
|
83
|
+
if (value instanceof Date) {
|
|
84
|
+
return value.toISOString();
|
|
85
|
+
}
|
|
86
|
+
// --- 3. 深度限制检查 ---
|
|
87
|
+
// 此时 value 确定是一个可以被 seen WeakSet 存储的对象
|
|
88
|
+
if (depth >= maxDepth) {
|
|
89
|
+
return '[Object]';
|
|
90
|
+
}
|
|
91
|
+
// --- 4. 循环引用检测 ---
|
|
92
|
+
// 将当前对象添加到 seen Set,以便在后续递归中检测循环引用
|
|
93
|
+
// 这里需要断言 value 是一个 object 类型,因为 WeakSet 只能存储对象
|
|
94
|
+
if (seen.has(value)) {
|
|
95
|
+
return '[Circular]';
|
|
96
|
+
}
|
|
97
|
+
seen.add(value); // 添加到已访问集合
|
|
98
|
+
// --- 5. 处理复杂内置对象 (Array, Map, Set) ---
|
|
99
|
+
if (Array.isArray(value)) {
|
|
100
|
+
// 在这一分支中,TypeScript 已经把 value 缩小为 unknown[] 类型
|
|
101
|
+
if (value.length === 0)
|
|
102
|
+
return '[]';
|
|
103
|
+
const elements = value.map(el => stringifyDebug(el, seen, depth + 1, indent, maxDepth));
|
|
104
|
+
return `[\n${nextPad}${elements.join(`,\n${nextPad}`)}\n${pad}]`;
|
|
105
|
+
}
|
|
106
|
+
if (value instanceof Map) {
|
|
107
|
+
// 在这一分支中,TypeScript 已经把 value 缩小为 Map<unknown, unknown> 类型
|
|
108
|
+
if (value.size === 0)
|
|
109
|
+
return 'Map(0) {}';
|
|
110
|
+
const entries = Array.from(value.entries()).map(([k, v]) => `${stringifyDebug(k, seen, depth + 1, indent, maxDepth)} => ${stringifyDebug(v, seen, depth + 1, indent, maxDepth)}`);
|
|
111
|
+
return `Map(${value.size}) {\n${nextPad}${entries.join(`,\n${nextPad}`)}\n${pad}}`;
|
|
112
|
+
}
|
|
113
|
+
if (value instanceof Set) {
|
|
114
|
+
// 在这一分支中,TypeScript 已经把 value 缩小为 Set<unknown> 类型
|
|
115
|
+
if (value.size === 0)
|
|
116
|
+
return 'Set(0) {}';
|
|
117
|
+
const elements = Array.from(value.values()).map(el => stringifyDebug(el, seen, depth + 1, indent, maxDepth));
|
|
118
|
+
return `Set(${value.size}) {\n${nextPad}${elements.join(`,\n${nextPad}`)}\n${pad}}`;
|
|
119
|
+
}
|
|
120
|
+
// --- 6. 处理普通对象和自定义类的实例 ---
|
|
121
|
+
// 此时,value 确定是一个对象 (除了上面已处理的 Array, Map, Set, Date, RegExp, primitive, null)
|
|
122
|
+
// 并且它已经添加到了 seen 集合
|
|
123
|
+
const keys = Object.keys(value); // 将 value 断言为 object,确保 Object.keys 可以接受
|
|
124
|
+
// 获取构造函数名(如果不是普通的 Object)
|
|
125
|
+
let constructorName = '';
|
|
126
|
+
// 同样,确保 value 被视为 object 以访问 constructor 属性
|
|
127
|
+
if (value.constructor && value.constructor.name && value.constructor.name !== 'Object') {
|
|
128
|
+
constructorName = `${value.constructor.name} `;
|
|
129
|
+
}
|
|
130
|
+
if (keys.length === 0) {
|
|
131
|
+
return `${constructorName}{}`; // 空对象/空类实例
|
|
132
|
+
}
|
|
133
|
+
const properties = keys.map(key => {
|
|
134
|
+
// 将 value 断言为带有索引签名的 Record,以便可以通过字符串键访问属性
|
|
135
|
+
const propValue = value[key];
|
|
136
|
+
return `${nextPad}${normalizeObjectKey(key)}: ${stringifyDebug(propValue, seen, depth + 1, indent, maxDepth)}`;
|
|
137
|
+
});
|
|
138
|
+
return `${constructorName}{\n${properties.join(',\n')}\n${pad}}`;
|
|
139
|
+
}
|
|
140
|
+
// 辅助函数:格式化对象键名,确保它在字面量中是有效的
|
|
141
|
+
function normalizeObjectKey(key) {
|
|
142
|
+
// 检查 key 是否是有效的 JavaScript 标识符,且不是保留字
|
|
143
|
+
// 简化的判断:如果包含非字母数字下划线,或以数字开头,则需要引用。
|
|
144
|
+
// 更严谨的判断需要解析器级别的检查。这里我们简单处理为如果包含特殊字符或空格就引用。
|
|
145
|
+
if (/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key) && !['null', 'undefined', 'true', 'false'].includes(key)) {
|
|
146
|
+
return key; // 不需要引用
|
|
147
|
+
}
|
|
148
|
+
// 引用并转义内部的单引号
|
|
149
|
+
return `'${key.replace(/'/g, "\\'")}'`;
|
|
150
|
+
}
|
|
39
151
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,8DAAiC,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|