zapp-pipe-dev-kit (英语)
该项目包含Zapp-pipes开发工具包来开发,测试并部署zapp-pipe捆绑.
如何使用
Dev 套件可以用于运行 zapp- piles 捆绑的不同模式 :
- 服务器模式 : 创建可用于测试请求的节点.js服务器.
- 库模式 : 创建可以直接在应用程序内使用的捆绑
dev Kit 并不是为了建立生产捆绑,而只是为了发展和测试新的供应商.
安装
- 以 npm 为单位: 运行
yarn add @applicaster/zapp-pipes-dev-kit或者说 - 本地复制此repo, 安装依赖性, 并按路径要求它
API : (英语)
服务器模式
- 导入
createZappPipesServer函数来自 dev 工具包。 此功能以配置对象为参数, 并返回完整的 hopi 服务器对象, 加上启动服务器的功能
// signature
const config = {
options: { port: 8080, host: "localhost" }, // optionnal. these are the default values
providers: [providers] // array of providers to load
};
// returns
server = {
...hapiServerObject, // hapi server
startServer // function to start the server
};
- 从其他软件包或本地代码导入您的提供者,然后引用该方法.
import { createZappPipesServer } from "zapp-pipes-dev-kit";
import provider from "your-provider-packeage";
const zappPipesServer = createZappPipesServer({ providers: [provider] });
// zappPipesServer contains the full Hapi properties so you can add routes, invoke the start function directly, etc...
// or simply start the server with its basic configuration
zappPipesServer.startServer();
你可以去拜访 http://{host}:{port} 测试请求
库模式
库模式用于为应用程序构建时对提供者进行包装 遵循这些步骤:
- 导入
createZappPipesLibrary函数。 此函数将一系列提供者和发布名称( 用于在 Sentry 中识别库) 作为参数, 返回 aZappPipesGetter类,是 zapp- piles js 捆绑的切入点
import { createZappPipesLibrary } form 'zapp-pipes-dev-kit';
import provider form 'path-to-your-provider';
class ZappPipesGetter = {
constructor() {
this.get = createZappPipesLibrary({ providers: [provider], release: 'release-name' });
}
}
export { ZappPipesGetter };
// you can now use this class to perform request like the app would.
const zappPipes = new ZappPipesGetter();
zappPipes.get('provider-name://fetchData?type=XXX&url=YYY', console.log);
本土桥梁注入
在每种模式,服务器或库中,可以注入自定义的本土桥来让提供者与环境互动. 原生桥是一个模块,在提供者的处理器功能中被注入,并提供了几个特性.
在Zapp-iOS和Zapp-Android中,不需要定义定制的本土桥. 但是,如果你在本地,服务器上,或在任何其他环境中使用这个软件包,你就可以这样做. 以下是定制的本土桥梁模块的外观
// All methods are optional since the custom nativeBridge is merged with the
// default one. Customizing the appData() function will do in most cases
const nativeBridge = {
sendResponse(response, code) {}, // hook invoked when the provider returns its data
log(...messages) {}, // log function which can be used in providers and customised dependending on the environment
throwError(reason) {}, // hook invoked when the providers returns an error
appData() {} // function which gives the provider some data regarding the native environment (platform, bundle identifier, account Id, broadcaster Id, uuid...);
};
// library mode
const zappPipesGetter = createZappPipesLibrary({
providers,
release,
nativeBridge
});
// server mode
const zappPipesServer = createZappPipesServer({
providers,
release,
nativeBridge
});
促进发展
- 克隆这个还原
- 安装依赖关系
yarn或者说npm install