gh-kokonect-link-cherrypick/packages/cherrypick-js
2026-01-20 23:19:06 +09:00
..
docs Merge remote-branch 'misskey/develop' 2023-11-03 17:42:10 +09:00
etc feat: 가입 승인 (TransFem-org/Sharkey [@2f2d88dc](2f2d88dcfc#), [@32fc540d](32fc540df4), [@07b72c65](07b72c65b9), [@e1f13f64](e1f13f641e), [@288fa114](288fa1143d), [@6e2eabbb](6e2eabbbc9), [@c3f76818](c3f768181a), [@142f500f](142f500f4b), [@1d9cb4fa](1d9cb4fad9), [@42530b5a](42530b5a39), [@fea7889e](fea7889e0c)) 2026-01-20 22:46:33 +09:00
generator Merge remote-branch 'misskey/master' 2026-01-20 15:43:00 +09:00
src feat: 가입 승인 (TransFem-org/Sharkey [@2f2d88dc](2f2d88dcfc#), [@32fc540d](32fc540df4), [@07b72c65](07b72c65b9), [@e1f13f64](e1f13f641e), [@288fa114](288fa1143d), [@6e2eabbb](6e2eabbbc9), [@c3f76818](c3f768181a), [@142f500f](142f500f4b), [@1d9cb4fa](1d9cb4fad9), [@42530b5a](42530b5a39), [@fea7889e](fea7889e0c)) 2026-01-20 22:46:33 +09:00
test Merge remote-branch 'misskey/master' 2025-10-25 06:30:02 +09:00
test-d Merge remote-branch 'misskey/master' 2025-10-25 06:30:02 +09:00
api-extractor.json Merge remote-branch 'misskey/master' 2025-02-05 23:21:33 +09:00
biome.json fix biome 2025-10-29 01:53:50 +09:00
build.js Merge remote-branch 'misskey/master' 2026-01-20 15:43:00 +09:00
CONTRIBUTING.md Merge remote-branch 'misskey/develop' 2023-11-03 17:42:10 +09:00
eslint.config.js Merge remote-branch 'misskey/master' 2025-10-25 06:30:02 +09:00
LICENSE Merge remote-branch 'misskey/develop' 2025-01-06 00:44:12 +09:00
package.json 4.18.0-beta.1 2026-01-20 23:19:06 +09:00
README.md Merge remote-branch 'misskey/develop' 2025-03-26 04:35:36 +09:00
tsconfig.json Merge remote-branch 'misskey/develop' 2024-07-27 23:24:38 +09:00
vitest.config.ts Merge remote-branch 'misskey/master' 2025-10-25 06:30:02 +09:00

cherrypick.js

Strongly-typed official CherryPick SDK for browsers/Node.js.

Test codecov

NPM

JavaScript(TypeScript)用の公式CherryPickSDKです。ブラウザ/Node.js上で動作します。

以下が提供されています:

  • ユーザー認証
  • APIリクエスト
  • ストリーミング
  • ユーティリティ関数
  • CherryPickの各種型定義

対応するCherryPickのバージョンは12以上です。

Install

npm i cherrypick-js

Usage

インポートは以下のようにまとめて行うと便利です。

import * as Misskey from 'cherrypick-js';

便宜上、以後のコード例は上記のように* as Misskeyとしてインポートしている前提のものになります。

ただし、このインポート方法だとTree-Shakingできなくなるので、コードサイズが重要なユースケースでは以下のような個別インポートをお勧めします。

import { api as misskeyApi } from 'cherrypick-js';

Authenticate

todo

API request

APIを利用する際は、利用するサーバーの情報とアクセストークンを与えてAPIClientクラスのインスタンスを初期化し、そのインスタンスのrequestメソッドを呼び出してリクエストを行います。

const cli = new Misskey.api.APIClient({
	origin: 'https://cherrypick.test',
	credential: 'TOKEN',
});

const meta = await cli.request('meta', { detail: true });

requestの第一引数には呼び出すエンドポイント名、第二引数にはパラメータオブジェクトを渡します。レスポンスはPromiseとして返ります。

Streaming

cherrypick.jsのストリーミングでは、二つのクラスが提供されます。 ひとつは、ストリーミングのコネクション自体を司るStreamクラスと、もうひとつはストリーミング上のチャンネルの概念を表すChannelクラスです。 ストリーミングを利用する際は、まずStreamクラスのインスタンスを初期化し、その後でStreamインスタンスのメソッドを利用してChannelクラスのインスタンスを取得する形になります。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });
const mainChannel = stream.useChannel('main');
mainChannel.on('notification', notification => {
	console.log('notification received', notification);
});

コネクションが途切れても自動で再接続されます。

チャンネルへの接続

チャンネルへの接続はStreamクラスのuseChannelメソッドを使用します。

パラメータなし

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });

const mainChannel = stream.useChannel('main');

パラメータあり

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });

const chatChannel = stream.useChannel('chat', {
	other: 'xxxxxxxxxx',
});

チャンネルから切断

Channelクラスのdisposeメソッドを呼び出します。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });

const mainChannel = stream.useChannel('main');

mainChannel.dispose();

メッセージの受信

ChannelクラスはEventEmitterを継承しており、メッセージがサーバーから受信されると受け取ったイベント名でペイロードをemitします。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });
const mainChannel = stream.useChannel('main');
mainChannel.on('notification', notification => {
	console.log('notification received', notification);
});

メッセージの送信

Channelクラスのsendメソッドを使用してメッセージをサーバーに送信することができます。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });
const chatChannel = stream.useChannel('chat', {
	other: 'xxxxxxxxxx',
});

chatChannel.send('read', {
	id: 'xxxxxxxxxx'
});

コネクション確立イベント

Streamクラスの_connected_イベントが利用可能です。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });
stream.on('_connected_', () => {
	console.log('connected');
});

コネクション切断イベント

Streamクラスの_disconnected_イベントが利用可能です。

const stream = new Misskey.Stream('https://cherrypick.test', { token: 'TOKEN' });
stream.on('_disconnected_', () => {
	console.log('disconnected');
});

コネクションの状態

Streamクラスのstateプロパティで確認できます。

  • initializing: 接続確立前
  • connected: 接続完了
  • reconnecting: 再接続中