README
dreadnaught-js-sdk MAXHUB轻应用JS-SDK
1. 引入
- html直接引入
<script src="dreadnaught-js-sdk.min.js"></script>
<script>
const options = {
debug: true,
appName: 'example',
appId: '666'
}
const sdk = JSSDK.create(options);
sdk.apis.getChannelList().then((e) => console.log(e));
sdk.message.onSenderConnect((e) => {
console.log('sender', e);
})
// 在其他模块使用
JSSDK.sdk.apis.getChannelList().then((e) => console.log(e));
</script>
- 模块化引入
import { create } from 'dreadnaught-js-sdk';
const options = {
debug: true,
appName: 'example',
appId: '666'
}
const sdk = create(options);
sdk.apis.getChannelList().then((e) => console.log(e));
sdk.message.onSenderConnect((e) => {
console.log('sender', e);
})
// 初始化后,在其他模块中使用
import { sdk } from 'dreadnaught-js-sdk';
sdk.apis.getChannelList().then((e) => console.log(e));
2. 开发
- 安装
yarn
$ brew install yarn
- 启动开发环境
$ yarn dev
启动 localhost:9999 开发环境运行 example/base/index.html,修改src的代码,可热更新
- 启动 mock-socket-server
$ yarn mock:socket
- 打包生产
$ yarn build
- 发布,目前发布权限只有
liweimin@cvte.com
拥有,是直接发到npm仓库的
$ npm publish
3. 规划
base 基础类
validators
校验基础类fs
对接LocalServer
存储服务的基础类
messages 消息总线
- bus消息总线 - 基于
wolfy87-eventemitter
- 与
Electron
的渲染进程通信 - 与
Android-WebView
的渲染进程通信
- bus消息总线 - 基于
services 服务
socket
作为socket-client
对接LocalServer
的socket-server
- 基于socket.io-client
request
提供给 H5 请求LocalServer
接口的方法- 根据应用权限分配对应的接口权限
fs
对接LocalServer
存储服务的 APIupdate
对接LocalServer
的更新服务localapi
对接LocalServer
本地命令的接口
validators 校验层
- 校验容器注入的
fetch
方法 - 校验容器注入的
appAuthList
参数 - 校验
create
时的选项 - 校验
request
时的合法性 - 校验注册到
socket
上的合法性 - 校验容器的版本
- 校验应用的APPID合法性
- token校验
- 校验容器注入的
mock 模拟数据
- 模拟容器传入的
fetch
对象,带上get、post、put、delete
方法 - 模拟
LocalServer
的socket-server
- 模拟本地开发的所有接口数据,对接 yapi 平台
- 模拟应用列表与应用权限
- 模拟容器传入的
utils 工具
- 日志工具
- 获取、设置选项
- 获取、设置权限模块
tests 单元测试
- 搭建基于
Jest
的测试框架
- 搭建基于
docs 文档
- jsdoc
4. 相关设计
5. 执行顺序约束
- import JSSDK // 引入JSSDK
- JSSDK.create(options) // 主动调用初始化实例
- debug.init // debug模块初始化
- valid // 校验合法性
- OptionsValidator // 校验传入的
options
合法性 - AuthValidator // 校验容器层传入的
appAuthList
参数 - FetchValidator // 校验容器层传入的
fetch
对象 - setOptions // 设置全局的options,可在整个生命周期中使用
9. setAuth // 设置全局的auth,可在整个生命周期中使用 - service // 初始化
request
和message
- export sdk // 导出有
request
,message
,listener
方法的sdk模块