@cdx-extensions/di-sdk

中文文档
1.1.7发布于 2026/09/01ISCTypeScriptCommonJS近 30 天下载 4213

Extensibility SDK interface for building platform extensions - Part of Candescent Developer Experience (CDX)

原始使用文档
文档目录7 节
  1. Installation
  2. Quick Start
  3. Host app (bootstrap)
  4. Widget / extension
  5. Development
  6. Documentation
  7. License

@cdx-extensions/di-sdk

Part of the Candescent Developer Experience (CDX)

Core SDK interface for building platform extensions. This package provides the unified PlatformSDK and does not depend on @cdx-extensions/di-sdk-web or @cdx-extensions/di-sdk-mobile. The host app installs only the platform it needs and registers it with the SDK (dependency injection). That avoids bundlers like Metro resolving both platform packages when the app uses only one.

This library is independent. Dependencies are resolved from JFrog when you run pnpm install in this folder. Build and publish from this directory.

Installation

Install the core SDK and only the platform you need (web or mobile).

Web:

pnpm add @cdx-extensions/di-sdk @cdx-extensions/di-sdk-web

Mobile (e.g. React Native):

pnpm add @cdx-extensions/di-sdk @cdx-extensions/di-sdk-mobile

Quick Start

The host app (the one that has di-sdk-web or di-sdk-mobile) calls PlatformSDK.init({ platform }) once at bootstrap. Widgets and extensions only call PlatformSDK.getInstance() with no arguments. getInstance() throws if the host never called init().

Host app (bootstrap)

Only the host app should call init(). Do this once at app entry (e.g. root component or main), before any widget runs.

Web host:

import { PlatformSDK } from '@cdx-extensions/di-sdk';
import { WebPlatform } from '@cdx-extensions/di-sdk-web';

// Once at bootstrap
PlatformSDK.init({ platform: WebPlatform.getInstance() });

Mobile host (e.g. React Native):

import { PlatformSDK } from '@cdx-extensions/di-sdk';
import { MobilePlatform } from '@cdx-extensions/di-sdk-mobile';

// Once at bootstrap
PlatformSDK.init({ platform: MobilePlatform.getInstance() });

Widget / extension

Widgets depend only on @cdx-extensions/di-sdk. They must run inside a host that has already called PlatformSDK.init().

import { PlatformSDK } from '@cdx-extensions/di-sdk';

const sdk = PlatformSDK.getInstance();
const userContext = sdk.useUserContext();
const httpClient = sdk.getHttpClient();

Because the core SDK never imports di-sdk-web or di-sdk-mobile, a mobile-only app does not need the web package installed and Metro will not try to resolve it.

For a full description of the approach, flow, and diagrams, see PLATFORM_REGISTRATION.md.

Development

From the repository root:

cd libs/common/extensibility-sdk
pnpm install
pnpm run build

To publish (e.g. after merging to main):

pnpm run build
pnpm publish

Publishing under development: To publish this lib while it is under development without affecting the main version, run from this directory: pnpm publish --tag development.

Documentation

License

ISC

CDX = Candescent Developer Experience

版本与发布记录

@cdx-extensions/di-sdk 共发布 9 个版本,首次发布于 2026/03/31;过去 12 个月发布了 9 个版本。

版本发布日期距今
1.1.7latest2026/09/012 个月前
1.1.52026/07/293 个月前
1.1.42026/04/306 个月前
1.1.22026/03/317 个月前
1.1.12026/03/287 个月前
1.1.02026/03/058 个月前

关于 @cdx-extensions/di-sdk 的常见问题

@cdx-extensions/di-sdk 是什么?

Extensibility SDK interface for building platform extensions - Part of Candescent Developer Experience (CDX)

如何安装 @cdx-extensions/di-sdk?

在项目目录运行 npm install @cdx-extensions/di-sdk,或使用 pnpm add / yarn add / bun add。

@cdx-extensions/di-sdk 支持 TypeScript 吗?

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

@cdx-extensions/di-sdk 支持 ESM 还是 CommonJS?

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

@cdx-extensions/di-sdk 可以商用吗?

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

@cdx-extensions/di-sdk 的下载量有多少?

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

@cdx-extensions/di-sdk 还在维护吗?

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