@vtj/renderer 0.12.19 → 0.12.21
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/index.cjs +5 -5
- package/dist/index.mjs +403 -310
- package/package.json +5 -5
- package/types/provider/enhance.d.ts +15 -0
- package/types/provider/index.d.ts +1 -0
- package/types/provider/provider.d.ts +79 -0
- package/types/utils/deps.d.ts +4 -0
- package/types/version.d.ts +2 -2
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vtj/renderer",
|
3
3
|
"private": false,
|
4
|
-
"version": "0.12.
|
4
|
+
"version": "0.12.21",
|
5
5
|
"type": "module",
|
6
6
|
"keywords": [
|
7
7
|
"低代码引擎",
|
@@ -21,15 +21,15 @@
|
|
21
21
|
"author": "chenhuachun",
|
22
22
|
"license": "MIT",
|
23
23
|
"dependencies": {
|
24
|
-
"@vtj/
|
25
|
-
"@vtj/
|
24
|
+
"@vtj/core": "~0.12.21",
|
25
|
+
"@vtj/utils": "~0.12.21"
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"vue": "~3.5.5",
|
29
29
|
"vue-router": "~4.5.0",
|
30
30
|
"@vtj/cli": "~0.12.2",
|
31
|
-
"@vtj/icons": "~0.12.
|
32
|
-
"@vtj/ui": "~0.12.
|
31
|
+
"@vtj/icons": "~0.12.21",
|
32
|
+
"@vtj/ui": "~0.12.21"
|
33
33
|
},
|
34
34
|
"exports": {
|
35
35
|
".": {
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { EnhanceConfig } from '@vtj/core';
|
2
|
+
import { App } from 'vue';
|
3
|
+
import { Provider } from '../provider';
|
4
|
+
/**
|
5
|
+
* 定义增强函数的返回类型
|
6
|
+
* 可以是一个接收Vue应用和Provider的函数,或者undefined
|
7
|
+
*/
|
8
|
+
export type LoadEnhanceReturn = ((app: App, provider: Provider) => void) | undefined;
|
9
|
+
/**
|
10
|
+
* 异步加载增强配置
|
11
|
+
* @param config - 增强配置对象
|
12
|
+
* @param base - URL基础路径,默认为空字符串
|
13
|
+
* @returns 返回一个增强函数或undefined
|
14
|
+
*/
|
15
|
+
export declare function loadEnhance(config: EnhanceConfig, base?: string): Promise<LoadEnhanceReturn>;
|
@@ -22,11 +22,19 @@ export interface ProviderOptions {
|
|
22
22
|
routeAppendTo?: RouteRecordName;
|
23
23
|
pageRouteName?: string;
|
24
24
|
routeMeta?: RouteMeta;
|
25
|
+
enhance?: (app: App, provider: Provider) => void;
|
25
26
|
}
|
26
27
|
export declare enum NodeEnv {
|
27
28
|
Production = "production",
|
28
29
|
Development = "development"
|
29
30
|
}
|
31
|
+
/**
|
32
|
+
* Provider 类是应用的核心提供者,负责:
|
33
|
+
* - 管理项目配置和状态
|
34
|
+
* - 加载依赖和资源
|
35
|
+
* - 初始化路由
|
36
|
+
* - 提供全局API和服务
|
37
|
+
*/
|
30
38
|
export declare class Provider extends Base {
|
31
39
|
options: ProviderOptions;
|
32
40
|
mode: ContextMode;
|
@@ -44,27 +52,90 @@ export declare class Provider extends Base {
|
|
44
52
|
private router;
|
45
53
|
private materialPath;
|
46
54
|
private urlDslCaches;
|
55
|
+
/**
|
56
|
+
* 创建Provider实例
|
57
|
+
* @param options 配置选项
|
58
|
+
*/
|
47
59
|
constructor(options: ProviderOptions);
|
48
60
|
createMock(func: (...args: any) => any): (...args: any[]) => Promise<any>;
|
61
|
+
/**
|
62
|
+
* 加载项目配置并初始化
|
63
|
+
* 1. 从模块或服务加载项目配置
|
64
|
+
* 2. 根据运行模式加载依赖或资源
|
65
|
+
* 3. 初始化Mock数据
|
66
|
+
* 4. 创建API接口
|
67
|
+
* 5. 初始化路由(非uniapp平台)
|
68
|
+
* @param project 项目配置
|
69
|
+
*/
|
49
70
|
load(project: ProjectSchema): Promise<void>;
|
50
71
|
initMock(global?: any): void;
|
51
72
|
private loadDependencies;
|
52
73
|
private loadAssets;
|
53
74
|
private initRouter;
|
75
|
+
/**
|
76
|
+
* Vue 插件安装方法
|
77
|
+
* 1. 安装所有第三方库插件
|
78
|
+
* 2. 执行自定义安装函数(如果提供)
|
79
|
+
* 3. 安装访问适配器
|
80
|
+
* 4. 提供全局 Provider 实例
|
81
|
+
* 5. 设计模式下设置错误处理器
|
82
|
+
* 6. 执行增强函数(如果提供)
|
83
|
+
* @param app Vue 应用实例
|
84
|
+
*/
|
54
85
|
install(app: App): void;
|
55
86
|
getFile(id: string): PageFile | BlockFile | null;
|
56
87
|
getPage(id: string): PageFile | null;
|
57
88
|
getHomepage(): PageFile | null;
|
58
89
|
getDsl(id: string): Promise<BlockSchema | null>;
|
59
90
|
getDslByUrl(url: string): Promise<BlockSchema | null>;
|
91
|
+
/**
|
92
|
+
* 创建 DSL 渲染器
|
93
|
+
* 1. 合并默认选项和自定义选项
|
94
|
+
* 2. 创建 DSL 加载器
|
95
|
+
* 3. 返回渲染器实例
|
96
|
+
* @param dsl 区块 DSL 配置
|
97
|
+
* @param opts 渲染选项
|
98
|
+
* @returns 渲染器实例
|
99
|
+
*/
|
60
100
|
createDslRenderer(dsl: BlockSchema, opts?: Partial<CreateRendererOptions>): {
|
61
101
|
renderer: any;
|
62
102
|
context: Context;
|
63
103
|
};
|
104
|
+
/**
|
105
|
+
* 获取渲染组件
|
106
|
+
* 1. 根据ID查找文件(页面或区块)
|
107
|
+
* 2. 如果找到文件且提供了output回调,则调用它
|
108
|
+
* 3. 尝试从模块缓存加载原始Vue组件
|
109
|
+
* 4. 如果找不到原始组件,则获取DSL并创建渲染器
|
110
|
+
* @param id 文件ID
|
111
|
+
* @param output 找到文件时的回调函数
|
112
|
+
* @returns Promise<Vue组件>
|
113
|
+
*/
|
64
114
|
getRenderComponent(id: string, output?: (file: BlockFile | PageFile) => void): Promise<any>;
|
115
|
+
/**
|
116
|
+
* 定义基于URL的异步组件
|
117
|
+
* 1. 根据URL获取DSL配置
|
118
|
+
* 2. 如果获取成功,设置组件名称
|
119
|
+
* 3. 创建并返回DSL渲染器
|
120
|
+
* @param url DSL配置URL
|
121
|
+
* @param name 可选的自定义组件名称
|
122
|
+
* @returns Vue异步组件
|
123
|
+
*/
|
65
124
|
defineUrlSchemaComponent(url: string, name?: string): any;
|
125
|
+
/**
|
126
|
+
* 定义基于插件的异步组件
|
127
|
+
* 1. 根据插件来源获取插件实例
|
128
|
+
* 2. 返回插件组件
|
129
|
+
* @param from 插件来源配置
|
130
|
+
* @returns Vue异步组件
|
131
|
+
*/
|
66
132
|
definePluginComponent(from: NodeFromPlugin): any;
|
67
133
|
}
|
134
|
+
/**
|
135
|
+
* 创建 Provider 实例
|
136
|
+
* @param options Provider 配置选项
|
137
|
+
* @returns 包含 provider 实例和 onReady 回调的对象
|
138
|
+
*/
|
68
139
|
export declare function createProvider(options: ProviderOptions): {
|
69
140
|
provider: Provider;
|
70
141
|
onReady: (callback: () => void) => void;
|
@@ -73,4 +144,12 @@ export interface UseProviderOptions {
|
|
73
144
|
id?: string;
|
74
145
|
version?: string;
|
75
146
|
}
|
147
|
+
/**
|
148
|
+
* 在组件中使用 Provider 实例
|
149
|
+
* 1. 从Vue上下文中获取注入的Provider
|
150
|
+
* 2. 开发环境下检查组件版本一致性
|
151
|
+
* @param options 使用选项
|
152
|
+
* @returns Provider 实例
|
153
|
+
* @throws 如果找不到Provider会抛出错误
|
154
|
+
*/
|
76
155
|
export declare function useProvider(options?: UseProviderOptions): Provider;
|
package/types/utils/deps.d.ts
CHANGED
@@ -17,3 +17,7 @@ export declare function parseDeps(deps: Dependencie[], basePath: string, isDev?:
|
|
17
17
|
libraryLocaleMap: Record<string, string>;
|
18
18
|
};
|
19
19
|
export declare function getRawComponent(desc: MaterialDescription, lib: any): any;
|
20
|
+
export declare function parseUrls(urls?: string[]): {
|
21
|
+
css: string[];
|
22
|
+
js: string[];
|
23
|
+
};
|
package/types/version.d.ts
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* Copyright (c) 2025, VTJ.PRO All rights reserved.
|
3
3
|
* @name @vtj/renderer
|
4
4
|
* @author CHC chenhuachun1549@dingtalk.com
|
5
|
-
* @version 0.12.
|
5
|
+
* @version 0.12.20
|
6
6
|
* @license <a href="https://vtj.pro/license.html">MIT License</a>
|
7
7
|
*/
|
8
|
-
export declare const version = "0.12.
|
8
|
+
export declare const version = "0.12.20";
|