@yumerijs/core 2.2.0 → 2.2.1
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/context.d.ts +2 -0
- package/dist/context.js +1 -0
- package/dist/logger.d.ts +5 -0
- package/dist/logger.js +22 -3
- package/dist/session.d.ts +1 -0
- package/dist/session.js +19 -7
- package/package.json +1 -1
package/dist/context.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Core } from './core.js';
|
|
|
2
2
|
import { Route } from './route.js';
|
|
3
3
|
import { HookHandler } from './hook.js';
|
|
4
4
|
import { Middleware } from './middleware.js';
|
|
5
|
+
import { IRenderer } from '@yumerijs/types';
|
|
5
6
|
interface Plugin {
|
|
6
7
|
apply: (ctx: Context, config: any) => any;
|
|
7
8
|
disable: (ctx: Context) => Promise<void>;
|
|
@@ -25,6 +26,7 @@ export declare class Context {
|
|
|
25
26
|
private childPlugins;
|
|
26
27
|
private i18ns;
|
|
27
28
|
component: Components;
|
|
29
|
+
renderer?: IRenderer;
|
|
28
30
|
instance: any;
|
|
29
31
|
/** 插件名称 */
|
|
30
32
|
pluginname: string;
|
package/dist/context.js
CHANGED
package/dist/logger.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* WindyPear-Team All right reserved
|
|
5
5
|
**/
|
|
6
6
|
import { Core } from './core.js';
|
|
7
|
+
type LogLevel = 'info' | 'warn' | 'error' | 'debug';
|
|
7
8
|
export declare class Logger {
|
|
8
9
|
private title;
|
|
9
10
|
private titleColor;
|
|
@@ -13,12 +14,16 @@ export declare class Logger {
|
|
|
13
14
|
message: string;
|
|
14
15
|
timestamp: string;
|
|
15
16
|
}[];
|
|
17
|
+
static level: LogLevel;
|
|
16
18
|
static setCore(core: Core): void;
|
|
19
|
+
static setLevel(level: LogLevel): void;
|
|
17
20
|
constructor(title: string);
|
|
18
21
|
private getColorByName;
|
|
19
22
|
private getTimestamp;
|
|
20
23
|
private log;
|
|
24
|
+
debug(...args: any[]): void;
|
|
21
25
|
info(...args: any[]): void;
|
|
22
26
|
warn(...args: any[]): void;
|
|
23
27
|
error(...args: any[]): void;
|
|
24
28
|
}
|
|
29
|
+
export {};
|
package/dist/logger.js
CHANGED
|
@@ -11,12 +11,16 @@ export class Logger {
|
|
|
11
11
|
titleColor;
|
|
12
12
|
static coreInstance = null;
|
|
13
13
|
static logs = [];
|
|
14
|
+
static level = 'info';
|
|
14
15
|
static setCore(core) {
|
|
15
16
|
if (Logger.coreInstance !== null) {
|
|
16
17
|
return;
|
|
17
18
|
}
|
|
18
19
|
Logger.coreInstance = core;
|
|
19
20
|
}
|
|
21
|
+
static setLevel(level) {
|
|
22
|
+
Logger.level = level;
|
|
23
|
+
}
|
|
20
24
|
constructor(title) {
|
|
21
25
|
this.title = title;
|
|
22
26
|
this.titleColor = this.getColorByName(this.title);
|
|
@@ -48,7 +52,22 @@ export class Logger {
|
|
|
48
52
|
Logger.coreInstance?.emit('log', { level, message: args.join(' '), timestamp });
|
|
49
53
|
Logger.logs.push({ level, message: args.join(' '), timestamp });
|
|
50
54
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
debug(...args) {
|
|
56
|
+
if (Logger.level === 'debug') {
|
|
57
|
+
this.log('D', ...args);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
info(...args) {
|
|
61
|
+
if (Logger.level === 'info' || Logger.level === 'debug') {
|
|
62
|
+
this.log('I', ...args);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
warn(...args) {
|
|
66
|
+
if (Logger.level !== 'error') {
|
|
67
|
+
this.log('W', ...args);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
error(...args) {
|
|
71
|
+
this.log('E', ...args);
|
|
72
|
+
}
|
|
54
73
|
}
|
package/dist/session.d.ts
CHANGED
package/dist/session.js
CHANGED
|
@@ -393,15 +393,10 @@ export class Session {
|
|
|
393
393
|
if (!this.pluginContext) {
|
|
394
394
|
throw new Error(`Cannot call 'renderView' because the session is not associated with a plugin context.`);
|
|
395
395
|
}
|
|
396
|
-
const
|
|
396
|
+
const renderer = this.pluginContext.renderer;
|
|
397
397
|
const pluginName = this.pluginContext.pluginname;
|
|
398
|
-
if (!rendererName) {
|
|
399
|
-
this.server.core.logger.error(`Plugin "${pluginName}" uses 'renderView' but did not declare a renderer. Please add 'export const render = "your-renderer-name";' to your plugin's entry file.`);
|
|
400
|
-
// throw new Error(`Plugin "${pluginName}" did not declare a renderer.`);
|
|
401
|
-
}
|
|
402
|
-
const renderer = this.server.core.renderers.get(rendererName);
|
|
403
398
|
if (!renderer) {
|
|
404
|
-
this.server.core.logger.error(`Renderer
|
|
399
|
+
this.server.core.logger.error(`Renderer declared by plugin "${pluginName}" is not registered. Have you installed the renderer package (e.g., '@yumerijs/vue-renderer')?`);
|
|
405
400
|
// throw new Error(`Renderer "${rendererName}" is not registered.`);
|
|
406
401
|
}
|
|
407
402
|
const renderOptions = {
|
|
@@ -417,4 +412,21 @@ export class Session {
|
|
|
417
412
|
throw error;
|
|
418
413
|
}
|
|
419
414
|
}
|
|
415
|
+
async renderFile(filePath, data) {
|
|
416
|
+
const renderer = this.pluginContext.renderer;
|
|
417
|
+
const pluginName = this.pluginContext.pluginname;
|
|
418
|
+
if (!renderer) {
|
|
419
|
+
this.server.core.logger.error(`Renderer declared by plugin "${pluginName}" is not registered. Have you installed the renderer package (e.g., '@yumerijs/vue-renderer')?`);
|
|
420
|
+
// throw new Error(`Renderer "${rendererName}" is not registered.`);
|
|
421
|
+
}
|
|
422
|
+
try {
|
|
423
|
+
const html = await renderer.renderFile(filePath, data);
|
|
424
|
+
this.setMime('text/html');
|
|
425
|
+
this.response(html, 'plain');
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
this.server.core.logger.error(`Error while rendering file "${filePath}":`, error);
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
420
432
|
}
|