@uni-helper/vite-plugin-uni-pages 0.3.17 → 0.3.18
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 +25 -10
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +25 -10
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -164,7 +164,7 @@ function mergePageMetaDataArray(pageMetaData) {
|
|
|
164
164
|
}
|
|
165
165
|
return result;
|
|
166
166
|
}
|
|
167
|
-
async function
|
|
167
|
+
async function parseCode(options) {
|
|
168
168
|
const { imports = [], code, filename } = options;
|
|
169
169
|
let jsCode = "";
|
|
170
170
|
try {
|
|
@@ -215,7 +215,24 @@ async function execScript(options) {
|
|
|
215
215
|
__filename: filename,
|
|
216
216
|
__dirname: dir,
|
|
217
217
|
require: node_module.createRequire(dir),
|
|
218
|
-
import: (id) => import(id)
|
|
218
|
+
import: (id) => import(id),
|
|
219
|
+
// 定时器相关
|
|
220
|
+
setTimeout,
|
|
221
|
+
clearTimeout,
|
|
222
|
+
setInterval,
|
|
223
|
+
clearInterval,
|
|
224
|
+
setImmediate,
|
|
225
|
+
clearImmediate,
|
|
226
|
+
// 控制台相关
|
|
227
|
+
console,
|
|
228
|
+
// URL 处理
|
|
229
|
+
URL,
|
|
230
|
+
URLSearchParams,
|
|
231
|
+
// 进程和性能相关
|
|
232
|
+
performance,
|
|
233
|
+
// 全局对象引用
|
|
234
|
+
global: globalThis,
|
|
235
|
+
globalThis
|
|
219
236
|
};
|
|
220
237
|
const script = new vm__default.Script(jsCode, { filename });
|
|
221
238
|
await script.runInNewContext(vmContext, {
|
|
@@ -223,10 +240,7 @@ async function execScript(options) {
|
|
|
223
240
|
// 设置超时避免长时间运行
|
|
224
241
|
});
|
|
225
242
|
const result = vmContext.exports.default || vmContext.exports;
|
|
226
|
-
|
|
227
|
-
return Promise.resolve(result());
|
|
228
|
-
}
|
|
229
|
-
return Promise.resolve(result);
|
|
243
|
+
return result;
|
|
230
244
|
} catch (error) {
|
|
231
245
|
throw new Error(`EXEC SCRIPT FAIL IN ${filename}: ${error.message}
|
|
232
246
|
|
|
@@ -473,7 +487,7 @@ class Page {
|
|
|
473
487
|
if (forceUpdate || !this.meta) {
|
|
474
488
|
await this.read();
|
|
475
489
|
}
|
|
476
|
-
const { path, tabBar: _, ...others } = this.meta;
|
|
490
|
+
const { path, tabBar: _, ...others } = this.meta || {};
|
|
477
491
|
return {
|
|
478
492
|
path: path ?? this.uri,
|
|
479
493
|
...others
|
|
@@ -550,14 +564,15 @@ async function tryPageMetaFromMacro(sfc) {
|
|
|
550
564
|
const imports = findImports(ast.body).filter((imp) => !!imp.specifiers.length).map((imp) => babelGenerate(imp).code);
|
|
551
565
|
const [macroOption] = macro.arguments;
|
|
552
566
|
const code = babelGenerate(macroOption).code;
|
|
553
|
-
const
|
|
567
|
+
const parsed = await parseCode({
|
|
554
568
|
imports,
|
|
555
569
|
code,
|
|
556
570
|
filename: sfc.filename
|
|
557
571
|
});
|
|
572
|
+
const res = typeof parsed === "function" ? await Promise.resolve(parsed()) : await Promise.resolve(parsed);
|
|
558
573
|
return {
|
|
559
574
|
type: "page",
|
|
560
|
-
...
|
|
575
|
+
...res
|
|
561
576
|
};
|
|
562
577
|
}
|
|
563
578
|
return void 0;
|
|
@@ -1220,7 +1235,6 @@ exports.checkPagesJsonFileSync = checkPagesJsonFileSync;
|
|
|
1220
1235
|
exports.debug = debug;
|
|
1221
1236
|
exports.default = VitePluginUniPages;
|
|
1222
1237
|
exports.defineUniPages = defineUniPages;
|
|
1223
|
-
exports.execScript = execScript;
|
|
1224
1238
|
exports.extsToGlob = extsToGlob;
|
|
1225
1239
|
exports.findImports = findImports;
|
|
1226
1240
|
exports.findMacro = findMacro;
|
|
@@ -1230,6 +1244,7 @@ exports.getRouteSfcBlock = getRouteSfcBlock;
|
|
|
1230
1244
|
exports.invalidatePagesModule = invalidatePagesModule;
|
|
1231
1245
|
exports.isTargetFile = isTargetFile;
|
|
1232
1246
|
exports.mergePageMetaDataArray = mergePageMetaDataArray;
|
|
1247
|
+
exports.parseCode = parseCode;
|
|
1233
1248
|
exports.parseCustomBlock = parseCustomBlock;
|
|
1234
1249
|
exports.parseSFC = parseSFC;
|
|
1235
1250
|
exports.resolveOptions = resolveOptions;
|
package/dist/index.d.cts
CHANGED
|
@@ -3024,7 +3024,7 @@ declare function isTargetFile(path: string): boolean;
|
|
|
3024
3024
|
*/
|
|
3025
3025
|
declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMetaDatum[];
|
|
3026
3026
|
/**
|
|
3027
|
-
*
|
|
3027
|
+
* 将 TypeScript / JavaScript 脚本代码,转换为对象/函数
|
|
3028
3028
|
*
|
|
3029
3029
|
* @param options - 执行脚本所需的配置项
|
|
3030
3030
|
* @param options.imports - 需要引入的模块导入语句列表
|
|
@@ -3032,7 +3032,7 @@ declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMeta
|
|
|
3032
3032
|
* @param options.filename - 脚本文件名,用于错误定位和上下文环境
|
|
3033
3033
|
* @returns 返回脚本执行后的结果,若导出的是函数则执行后返回其返回值
|
|
3034
3034
|
*/
|
|
3035
|
-
declare function
|
|
3035
|
+
declare function parseCode(options: {
|
|
3036
3036
|
imports: string[];
|
|
3037
3037
|
code: string;
|
|
3038
3038
|
filename: string;
|
|
@@ -3214,5 +3214,5 @@ declare function resolvePageDirs(dir: string, root: string, exclude: string[]):
|
|
|
3214
3214
|
|
|
3215
3215
|
declare function VitePluginUniPages(userOptions?: UserOptions): Plugin;
|
|
3216
3216
|
|
|
3217
|
-
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages,
|
|
3217
|
+
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages, extsToGlob, findImports, findMacro, getPageFiles, getRouteBlock, getRouteSfcBlock, invalidatePagesModule, isTargetFile, mergePageMetaDataArray, parseCode, parseCustomBlock, parseSFC, resolveOptions, resolvePageDirs, sleep, tryPageMetaFromCustomBlock, tryPageMetaFromMacro, writeFileWithLock };
|
|
3218
3218
|
export type { Condition, ConditionItem, ConfigSource, CustomBlock, DefinePage, EasyCom, GlobalStyle, MaybeCallable, MaybePromise, MaybePromiseCallable, Options, PageMetaDatum, PagePath, PagesConfig, ResolvedOptions, RouteBlockLang, SubPackage, SubPackages, SubPageMetaDatum, TabBar, TabBarIconFont, TabBarItem, TabBarMidButton, TheWindow, UniIdRouter, UserOptions, UserPageMeta, UserPagesConfig, UserTabBarItem, debugType };
|
package/dist/index.d.mts
CHANGED
|
@@ -3024,7 +3024,7 @@ declare function isTargetFile(path: string): boolean;
|
|
|
3024
3024
|
*/
|
|
3025
3025
|
declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMetaDatum[];
|
|
3026
3026
|
/**
|
|
3027
|
-
*
|
|
3027
|
+
* 将 TypeScript / JavaScript 脚本代码,转换为对象/函数
|
|
3028
3028
|
*
|
|
3029
3029
|
* @param options - 执行脚本所需的配置项
|
|
3030
3030
|
* @param options.imports - 需要引入的模块导入语句列表
|
|
@@ -3032,7 +3032,7 @@ declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMeta
|
|
|
3032
3032
|
* @param options.filename - 脚本文件名,用于错误定位和上下文环境
|
|
3033
3033
|
* @returns 返回脚本执行后的结果,若导出的是函数则执行后返回其返回值
|
|
3034
3034
|
*/
|
|
3035
|
-
declare function
|
|
3035
|
+
declare function parseCode(options: {
|
|
3036
3036
|
imports: string[];
|
|
3037
3037
|
code: string;
|
|
3038
3038
|
filename: string;
|
|
@@ -3214,5 +3214,5 @@ declare function resolvePageDirs(dir: string, root: string, exclude: string[]):
|
|
|
3214
3214
|
|
|
3215
3215
|
declare function VitePluginUniPages(userOptions?: UserOptions): Plugin;
|
|
3216
3216
|
|
|
3217
|
-
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages,
|
|
3217
|
+
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages, extsToGlob, findImports, findMacro, getPageFiles, getRouteBlock, getRouteSfcBlock, invalidatePagesModule, isTargetFile, mergePageMetaDataArray, parseCode, parseCustomBlock, parseSFC, resolveOptions, resolvePageDirs, sleep, tryPageMetaFromCustomBlock, tryPageMetaFromMacro, writeFileWithLock };
|
|
3218
3218
|
export type { Condition, ConditionItem, ConfigSource, CustomBlock, DefinePage, EasyCom, GlobalStyle, MaybeCallable, MaybePromise, MaybePromiseCallable, Options, PageMetaDatum, PagePath, PagesConfig, ResolvedOptions, RouteBlockLang, SubPackage, SubPackages, SubPageMetaDatum, TabBar, TabBarIconFont, TabBarItem, TabBarMidButton, TheWindow, UniIdRouter, UserOptions, UserPageMeta, UserPagesConfig, UserTabBarItem, debugType };
|
package/dist/index.d.ts
CHANGED
|
@@ -3024,7 +3024,7 @@ declare function isTargetFile(path: string): boolean;
|
|
|
3024
3024
|
*/
|
|
3025
3025
|
declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMetaDatum[];
|
|
3026
3026
|
/**
|
|
3027
|
-
*
|
|
3027
|
+
* 将 TypeScript / JavaScript 脚本代码,转换为对象/函数
|
|
3028
3028
|
*
|
|
3029
3029
|
* @param options - 执行脚本所需的配置项
|
|
3030
3030
|
* @param options.imports - 需要引入的模块导入语句列表
|
|
@@ -3032,7 +3032,7 @@ declare function mergePageMetaDataArray(pageMetaData: PageMetaDatum[]): PageMeta
|
|
|
3032
3032
|
* @param options.filename - 脚本文件名,用于错误定位和上下文环境
|
|
3033
3033
|
* @returns 返回脚本执行后的结果,若导出的是函数则执行后返回其返回值
|
|
3034
3034
|
*/
|
|
3035
|
-
declare function
|
|
3035
|
+
declare function parseCode(options: {
|
|
3036
3036
|
imports: string[];
|
|
3037
3037
|
code: string;
|
|
3038
3038
|
filename: string;
|
|
@@ -3214,5 +3214,5 @@ declare function resolvePageDirs(dir: string, root: string, exclude: string[]):
|
|
|
3214
3214
|
|
|
3215
3215
|
declare function VitePluginUniPages(userOptions?: UserOptions): Plugin;
|
|
3216
3216
|
|
|
3217
|
-
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages,
|
|
3217
|
+
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, definePage, defineUniPages, extsToGlob, findImports, findMacro, getPageFiles, getRouteBlock, getRouteSfcBlock, invalidatePagesModule, isTargetFile, mergePageMetaDataArray, parseCode, parseCustomBlock, parseSFC, resolveOptions, resolvePageDirs, sleep, tryPageMetaFromCustomBlock, tryPageMetaFromMacro, writeFileWithLock };
|
|
3218
3218
|
export type { Condition, ConditionItem, ConfigSource, CustomBlock, DefinePage, EasyCom, GlobalStyle, MaybeCallable, MaybePromise, MaybePromiseCallable, Options, PageMetaDatum, PagePath, PagesConfig, ResolvedOptions, RouteBlockLang, SubPackage, SubPackages, SubPageMetaDatum, TabBar, TabBarIconFont, TabBarItem, TabBarMidButton, TheWindow, UniIdRouter, UserOptions, UserPageMeta, UserPagesConfig, UserTabBarItem, debugType };
|
package/dist/index.mjs
CHANGED
|
@@ -129,7 +129,7 @@ function mergePageMetaDataArray(pageMetaData) {
|
|
|
129
129
|
}
|
|
130
130
|
return result;
|
|
131
131
|
}
|
|
132
|
-
async function
|
|
132
|
+
async function parseCode(options) {
|
|
133
133
|
const { imports = [], code, filename } = options;
|
|
134
134
|
let jsCode = "";
|
|
135
135
|
try {
|
|
@@ -180,7 +180,24 @@ async function execScript(options) {
|
|
|
180
180
|
__filename: filename,
|
|
181
181
|
__dirname: dir,
|
|
182
182
|
require: createRequire(dir),
|
|
183
|
-
import: (id) => import(id)
|
|
183
|
+
import: (id) => import(id),
|
|
184
|
+
// 定时器相关
|
|
185
|
+
setTimeout,
|
|
186
|
+
clearTimeout,
|
|
187
|
+
setInterval,
|
|
188
|
+
clearInterval,
|
|
189
|
+
setImmediate,
|
|
190
|
+
clearImmediate,
|
|
191
|
+
// 控制台相关
|
|
192
|
+
console,
|
|
193
|
+
// URL 处理
|
|
194
|
+
URL,
|
|
195
|
+
URLSearchParams,
|
|
196
|
+
// 进程和性能相关
|
|
197
|
+
performance,
|
|
198
|
+
// 全局对象引用
|
|
199
|
+
global: globalThis,
|
|
200
|
+
globalThis
|
|
184
201
|
};
|
|
185
202
|
const script = new vm.Script(jsCode, { filename });
|
|
186
203
|
await script.runInNewContext(vmContext, {
|
|
@@ -188,10 +205,7 @@ async function execScript(options) {
|
|
|
188
205
|
// 设置超时避免长时间运行
|
|
189
206
|
});
|
|
190
207
|
const result = vmContext.exports.default || vmContext.exports;
|
|
191
|
-
|
|
192
|
-
return Promise.resolve(result());
|
|
193
|
-
}
|
|
194
|
-
return Promise.resolve(result);
|
|
208
|
+
return result;
|
|
195
209
|
} catch (error) {
|
|
196
210
|
throw new Error(`EXEC SCRIPT FAIL IN ${filename}: ${error.message}
|
|
197
211
|
|
|
@@ -438,7 +452,7 @@ class Page {
|
|
|
438
452
|
if (forceUpdate || !this.meta) {
|
|
439
453
|
await this.read();
|
|
440
454
|
}
|
|
441
|
-
const { path, tabBar: _, ...others } = this.meta;
|
|
455
|
+
const { path, tabBar: _, ...others } = this.meta || {};
|
|
442
456
|
return {
|
|
443
457
|
path: path ?? this.uri,
|
|
444
458
|
...others
|
|
@@ -515,14 +529,15 @@ async function tryPageMetaFromMacro(sfc) {
|
|
|
515
529
|
const imports = findImports(ast.body).filter((imp) => !!imp.specifiers.length).map((imp) => babelGenerate(imp).code);
|
|
516
530
|
const [macroOption] = macro.arguments;
|
|
517
531
|
const code = babelGenerate(macroOption).code;
|
|
518
|
-
const
|
|
532
|
+
const parsed = await parseCode({
|
|
519
533
|
imports,
|
|
520
534
|
code,
|
|
521
535
|
filename: sfc.filename
|
|
522
536
|
});
|
|
537
|
+
const res = typeof parsed === "function" ? await Promise.resolve(parsed()) : await Promise.resolve(parsed);
|
|
523
538
|
return {
|
|
524
539
|
type: "page",
|
|
525
|
-
...
|
|
540
|
+
...res
|
|
526
541
|
};
|
|
527
542
|
}
|
|
528
543
|
return void 0;
|
|
@@ -1173,4 +1188,4 @@ function VitePluginUniPages(userOptions = {}) {
|
|
|
1173
1188
|
};
|
|
1174
1189
|
}
|
|
1175
1190
|
|
|
1176
|
-
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, defineUniPages,
|
|
1191
|
+
export { FILE_EXTENSIONS, MODULE_ID_VIRTUAL, OUTPUT_NAME, Page, PageContext, RESOLVED_MODULE_ID_VIRTUAL, VitePluginUniPages, babelGenerate, checkPagesJsonFileSync, debug, VitePluginUniPages as default, defineUniPages, extsToGlob, findImports, findMacro, getPageFiles, getRouteBlock, getRouteSfcBlock, invalidatePagesModule, isTargetFile, mergePageMetaDataArray, parseCode, parseCustomBlock, parseSFC, resolveOptions, resolvePageDirs, sleep, tryPageMetaFromCustomBlock, tryPageMetaFromMacro, writeFileWithLock };
|