@cloudbase/adapter-interface

中文文档
0.7.2发布于 2026/10/20MITTypeScriptESM + CJS零依赖近 30 天下载 13万

云库 javascript sdk 适配器接口

中文使用文档
文档目录3 节
  1. @cloudbase/adapter-interface
  2. 安装
  3. 使用

@cloudbase/adapter-interface

NPM Version

tcb-js-sdk适配器接口,各平台适配器按照此接口规范进行开发。

安装

npm i @cloudbase/adapter-interface -S

使用

import {
  AbstractSDKRequest,
  IRequestOptions,
  IUploadRequestOptions,
  StorageInterface,
  WebSocketInterface,
  WebSocketContructor,
  SDKAdapterInterface,
  StorageType,
  formatUrl
} from '@cloudbase/adapter-interface';

// isMatch函数判断当前平台是否匹配
function isMatch(): boolean {
  // ...
  return true;
}

// Request类为平台特有的网络请求,必须实现post/upload/download三个public接口
export class Request extends AbstractSDKRequest {
  // 实现post接口
  public post(options: IRequestOptions) {
    return new Promise(resolve=>{
      // ...
      resolve();
    })
  }
  // 实现upload接口
  public upload(options: IUploadRequestOptions) {
    return new Promise(resolve=>{
      // ...
      resolve();
    })
  }
  // 实现download接口
  public download(options: IRequestOptions) {
    return new Promise(resolve=>{
      // ...
      resolve();
    })
  }
}
// Storage为平台特有的本地存储,必须实现setItem/getItem/removeItem/clear四个接口
export const Storage: StorageInterface = {
  setItem(key: string, value: any) {
    // ...
  },
  getItem(key: string): any {
    // ...
  },
  removeItem(key: string) {
    // ...
  },
  clear() {
    // ...
  }
};
// WebSocket为平台特有的WebSocket,与HTML5标准规范一致
export class WebSocket {
  constructor(url: string, options: object = {}) {
    const socketTask: WebSocketInterface = {
      set onopen(cb) {
        // ...
      },
      set onmessage(cb) {
        // ...
      },
      set onclose(cb) {
        // ...
      },
      set onerror(cb) {
        // ...
      },
      send: (data) => {
        // ...
      },
      close: (code? : number, reason? : string) => {
        // ...
      },
      get readyState() {
        // ...
        return readyState;
      },
      CONNECTING: 0,
      OPEN: 1,
      CLOSING: 2,
      CLOSED: 3
    };
    return socketTask;
  }
}

// genAdapter函数创建adapter实体
function genAdapter() {
  const adapter: SDKAdapterInterface = {
    // root对象为全局根对象,没有则填空对象{}
    root: window,
    reqClass: Request,
    wsClass: WebSocket as WebSocketContructor,
    localStorage: Storage,
    // 首先缓存存放策略,建议始终保持localstorage
    primaryStorage: StorageType.local,
    // sessionStorage为可选项,如果平台不支持可不填
    sessionStorage: sessionStorage
  };
  return adapter;
}

// 三者缺一不可
const adapter = {
  genAdapter,
  isMatch,
  // runtime为标记平台唯一性的说明
  runtime: 'wx_mp'
};

export default adapter;

版本与发布记录

@cloudbase/adapter-interface 共发布 11 个版本,首次发布于 2019/12/16;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.7.2latest2026/10/2020 天前
0.7.12025/07/021.4 年前
0.7.02025/04/141.6 年前
0.6.02024/11/222 年前
0.5.02024/08/082 年前
0.4.12020/06/096 年前

关于 @cloudbase/adapter-interface 的常见问题

@cloudbase/adapter-interface 是什么?

云库 javascript sdk 适配器接口

如何安装 @cloudbase/adapter-interface?

在项目目录运行 npm install @cloudbase/adapter-interface,或使用 pnpm add / yarn add / bun add。

@cloudbase/adapter-interface 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cloudbase/adapter-interface 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloudbase/adapter-interface 可以商用吗?

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

@cloudbase/adapter-interface 的下载量有多少?

根据 npm 官方下载统计,@cloudbase/adapter-interface 在 2026/10/10 – 2026/11/08 这 30 天内被下载 129,931 次,日均约 4,331 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cloudbase/adapter-interface 还在维护吗?

最新版本 0.7.2 发布于 2026/10/20(20 天前);至今共发布 11 个版本,其中过去 12 个月发布了 1 个;首次发布于 2019/12/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。