@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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vtj/renderer",
3
3
  "private": false,
4
- "version": "0.12.19",
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/utils": "~0.12.19",
25
- "@vtj/core": "~0.12.19"
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.19",
32
- "@vtj/ui": "~0.12.19"
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>;
@@ -1,3 +1,4 @@
1
1
  export * from './provider';
2
2
  export * from './apis';
3
3
  export * from './defaults';
4
+ export * from './enhance';
@@ -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;
@@ -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
+ };
@@ -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.18
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.18";
8
+ export declare const version = "0.12.20";