# @cloudbase/adapter-interface 中文文档

规范地址：https://npmcn.com/package/%40cloudbase/adapter-interface/

版本：0\.7\.2
npm 元数据更新时间：2026-10-20T11:55:21.167Z
中文译文更新时间：2026-11-10T02:34:52.613Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cloudbase/adapter-interface
原文对照：https://npmcn.com/package/%40cloudbase/adapter-interface/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：17.4 kB，18 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2019-12-16T09:05:45.782Z
- 最新版本发布：2026-10-20T11:55:20.923Z
- 近 30 天下载量：129931（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 1 个）

## 中文简介

云库 javascript sdk 适配器接口

## 安装

```sh
npm install @cloudbase/adapter-interface
```

也可以使用：`pnpm add @cloudbase/adapter-interface`、`yarn add @cloudbase/adapter-interface`、`bun add @cloudbase/adapter-interface`

## README

## @cloudbase/adapter-interface

[![NPM Version](https://img.shields.io/npm/v/@cloudbase/adapter-interface.svg?style=flat)](https://www.npmjs.com/package/@cloudbase/adapter-interface) [![](https://img.shields.io/npm/dt/@cloudbase/adapter-interface.svg)](https://www.npmjs.com/package/@cloudbase/adapter-interface)

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

## 安装

```bash
npm i @cloudbase/adapter-interface -S
```

## 使用

```typescript
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 是什么？

云库 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 和提交记录判断。

