@applicaster/zapp-pipes-dev-kit

中文文档
1.4.7发布于 2024/05/15ISCCommonJS近 30 天下载 1953

Development Kit for applicaster Zapp-Pipes datasource plugins

原始使用文档
文档目录5 节
  1. How to use
  2. Installation
  3. API :
  4. native bridge injection
  5. For development

zapp-pipes-dev-kit

This project contains the Zapp-pipes development kit to develop, test, and deploy zapp-pipes bundles.

How to use

The dev kit enables to different modes for running a zapp-pipes bundle :

  • server mode : creates a node.js server which can be used for testing requests.
  • library mode : creates a bundle which can be used directly inside an app

the Dev Kit is not intended to build production bundles - but only as a way to develop and test new providers.

Installation

  • with npm : run yarn add @applicaster/zapp-pipes-dev-kit or
  • clone this repo locally, install dependencies, and require it by its path

API :

server mode

  • Import the createZappPipesServer function from the dev kit. This function takes an configuration object as parameter, and returns the full hapi server object, plus a function to start the server
// 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 your provider(s) from other packages or local code, then invoke the method.
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();

you can then visit http://{host}:{port} to test the requests

Library mode

The library mode is used to package the provider(s) as they would when they are built for the app follow these steps :

  • Import the createZappPipesLibrary function. This functions take an array of providers and the release name (used to identify the library in Sentry) as parameters, and returns a ZappPipesGetter class which is the entry point of the zapp-pipes js bundle
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);

native bridge injection

In each mode, server or library, you can inject a custom native bridge to allow providers to interact with the environment. the native bridge is a module which is injected in the provider's handler function, and provides several features.

In Zapp-iOS and Zapp-Android, there is no need to define a custom native bridge. But if you're using this package locally, on the server, or on any other environment, you have the ability to do so. Here's what a custom native bridge module looks like, and how to inject it :

// 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
});

For development

  • Clone this repo
  • Install dependencies with yarn or npm install

版本与发布记录

@applicaster/zapp-pipes-dev-kit 共发布 39 个版本,首次发布于 2017/04/05;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.4.7latest2024/05/152 年前
1.4.62024/05/152 年前
1.4.52023/09/293 年前
1.4.42023/09/293 年前
1.4.32023/09/293 年前
1.4.22021/09/255 年前

其他发布通道:next → 1.4.0-rc.2。

关于 @applicaster/zapp-pipes-dev-kit 的常见问题

@applicaster/zapp-pipes-dev-kit 是什么?

Development Kit for applicaster Zapp-Pipes datasource plugins

如何安装 @applicaster/zapp-pipes-dev-kit?

在项目目录运行 npm install @applicaster/zapp-pipes-dev-kit,或使用 pnpm add / yarn add / bun add。

@applicaster/zapp-pipes-dev-kit 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/applicaster__zapp-pipes-dev-kit 是否存在。

@applicaster/zapp-pipes-dev-kit 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@applicaster/zapp-pipes-dev-kit 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@applicaster/zapp-pipes-dev-kit 可以商用吗?

@applicaster/zapp-pipes-dev-kit 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@applicaster/zapp-pipes-dev-kit 的下载量有多少?

根据 npm 官方下载统计,@applicaster/zapp-pipes-dev-kit 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,953 次,日均约 65 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@applicaster/zapp-pipes-dev-kit 还在维护吗?

最新版本 1.4.7 发布于 2024/05/15(2 年前);至今共发布 39 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/04/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。