Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qianlong66
uni-app
提交
08d0e25d
U
uni-app
项目概览
qianlong66
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
08d0e25d
编写于
7月 25, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(uts): compiler
上级
8e31cfa8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
24 deletion
+53
-24
jest.config.js
jest.config.js
+8
-1
packages/uni-uts-vite/__tests__/module.spec.ts
packages/uni-uts-vite/__tests__/module.spec.ts
+24
-1
packages/uni-uts-vite/lib/module.js
packages/uni-uts-vite/lib/module.js
+7
-7
packages/uni-uts-vite/module.ts
packages/uni-uts-vite/module.ts
+14
-15
未找到文件。
jest.config.js
浏览文件 @
08d0e25d
...
...
@@ -12,7 +12,14 @@ module.exports = {
__VUE_PROD_DEVTOOLS__
:
false
,
uni
:
{
requireNativePlugin
(
name
)
{
return
{}
return
{
invokeSync
(
args
,
callback
)
{
console
.
log
(
`invoke`
,
JSON
.
stringify
(
args
))
},
invokeAsync
(
args
,
callback
)
{
console
.
log
(
`invokeAsync`
,
JSON
.
stringify
(
args
))
},
}
},
},
},
...
...
packages/uni-uts-vite/__tests__/module.spec.ts
浏览文件 @
08d0e25d
import
{
normalizeArg
}
from
'
../module
'
import
{
normalizeArg
,
initModule
}
from
'
../module
'
describe
(
'
uts-module
'
,
()
=>
{
test
(
'
normalize args
'
,
()
=>
{
...
...
@@ -33,4 +33,27 @@ describe('uts-module', () => {
success
:
6
,
})
})
test
(
`invoke`
,
()
=>
{
const
wifi
=
initModule
(
'
wifi
'
,
{
preparePermission
:
{
async
:
true
},
})
/**
* {"module":"wifi","method":"preparePermission","params":[{"name":"foo","age":10,"success":7,"fail":8},9]}
*/
wifi
.
preparePermission
(
{
name
:
'
foo
'
,
age
:
10
,
success
(
res
:
any
)
{
console
.
log
(
'
success
'
,
res
)
},
fail
(
res
:
any
)
{
console
.
log
(
'
fail
'
,
res
)
},
},
(
res
:
any
)
=>
{
console
.
log
(
'
callback
'
,
res
)
}
)
})
})
packages/uni-uts-vite/lib/module.js
浏览文件 @
08d0e25d
const
moduleName
=
'
__MODULE_NAME__
'
;
const
moduleDefine
=
'
__MODULE_DEFINE__
'
;
var
module
=
initModule
(
moduleDefine
);
var
module
=
initModule
(
module
Name
,
module
Define
);
let
callbackId
=
1
;
const
objectToString
=
Object
.
prototype
.
toString
;
const
toTypeString
=
(
value
)
=>
objectToString
.
call
(
value
);
...
...
@@ -59,22 +59,22 @@ function moduleGetter(proxy, module, method, defines) {
return
proxy
.
invoke
(
invokeArgs
,
invokeCallback
);
};
}
function
initModule
(
moduleDefine
)
{
function
initModule
(
name
,
defines
,
proxyModuleName
=
'
ProxyModule
'
)
{
let
proxy
;
const
moduleProxy
=
{};
for
(
const
method
Name
in
moduleDefine
)
{
Object
.
defineProperty
(
moduleProxy
,
method
Name
,
{
for
(
const
method
in
moduleDefine
)
{
Object
.
defineProperty
(
moduleProxy
,
method
,
{
enumerable
:
true
,
configurable
:
true
,
get
:
()
=>
{
if
(
!
proxy
)
{
proxy
=
uni
.
requireNativePlugin
(
'
proxy-module
'
);
proxy
=
uni
.
requireNativePlugin
(
proxyModuleName
);
}
return
moduleGetter
(
proxy
,
moduleName
,
methodName
,
moduleDefine
[
methodName
]);
return
moduleGetter
(
proxy
,
name
,
method
,
defines
[
method
]);
},
});
}
return
moduleProxy
;
}
export
{
module
as
default
,
normalizeArg
};
export
{
module
as
default
,
initModule
,
normalizeArg
};
packages/uni-uts-vite/module.ts
浏览文件 @
08d0e25d
...
...
@@ -13,7 +13,7 @@ interface ModuleMethodDefine {
async
?:
boolean
}
export
default
initModule
(
moduleDefine
)
export
default
initModule
(
module
Name
,
module
Define
)
let
callbackId
=
1
...
...
@@ -79,10 +79,10 @@ function moduleGetter(
}
return
(...
args
:
unknown
[])
=>
{
const
params
=
args
.
map
((
arg
)
=>
normalizeArg
(
arg
))
const
invokeArgs
=
{
module
,
method
,
params
,
async
:
!!
defines
.
async
}
const
invokeArgs
=
{
module
,
method
,
params
}
if
(
defines
.
async
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
proxy
.
invoke
(
invokeArgs
,
(
res
:
ProxyInvokeResponse
)
=>
{
proxy
.
invoke
Async
(
invokeArgs
,
(
res
:
ProxyInvokeResponse
)
=>
{
if
(
isProxyInvokeCallbackResponse
(
res
))
{
invokeCallback
(
res
)
}
else
{
...
...
@@ -95,27 +95,26 @@ function moduleGetter(
})
})
}
return
proxy
.
invoke
(
invokeArgs
,
invokeCallback
)
return
proxy
.
invoke
Sync
(
invokeArgs
,
invokeCallback
)
}
}
function
initModule
(
moduleDefine
:
Record
<
string
,
ModuleMethodDefine
>
)
{
export
function
initModule
(
name
:
string
,
defines
:
Record
<
string
,
ModuleMethodDefine
>
,
proxyModuleName
=
'
ProxyModule
'
)
{
let
proxy
:
any
const
moduleProxy
=
{}
for
(
const
method
Name
in
moduleDefine
)
{
Object
.
defineProperty
(
moduleProxy
,
method
Name
,
{
const
moduleProxy
:
Record
<
string
,
Function
>
=
{}
for
(
const
method
in
defines
)
{
Object
.
defineProperty
(
moduleProxy
,
method
,
{
enumerable
:
true
,
configurable
:
true
,
get
:
()
=>
{
if
(
!
proxy
)
{
proxy
=
uni
.
requireNativePlugin
(
'
proxy-module
'
)
proxy
=
uni
.
requireNativePlugin
(
proxyModuleName
)
}
return
moduleGetter
(
proxy
,
moduleName
,
methodName
,
moduleDefine
[
methodName
]
)
return
moduleGetter
(
proxy
,
name
,
method
,
defines
[
method
])
},
})
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录