summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--etc/misskey-js.api.md146
-rw-r--r--src/index.ts5
-rw-r--r--src/streaming.ts2
4 files changed, 150 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bac439a040..c188a2b556 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 0.0.13
+- expose ChannelConnection and Channels types
+
# 0.0.12
- fix a bug that cannot connect to streaming
diff --git a/etc/misskey-js.api.md b/etc/misskey-js.api.md
index e606c9a93a..1a462ba4e9 100644
--- a/etc/misskey-js.api.md
+++ b/etc/misskey-js.api.md
@@ -113,6 +113,146 @@ type Channel = {
id: ID;
};
+// Warning: (ae-forgotten-export) The symbol "AnyOf" needs to be exported by the entry point index.d.ts
+//
+// @public (undocumented)
+export abstract class ChannelConnection<Channel extends AnyOf<Channels> = any> extends EventEmitter<Channel['events']> {
+ constructor(stream: Stream, channel: string, name?: string);
+ // (undocumented)
+ channel: string;
+ // (undocumented)
+ abstract dispose(): void;
+ // (undocumented)
+ abstract id: string;
+ // (undocumented)
+ inCount: number;
+ // (undocumented)
+ name?: string;
+ // (undocumented)
+ outCount: number;
+ // (undocumented)
+ send<T extends keyof Channel['receives']>(type: T, body: Channel['receives'][T]): void;
+ // (undocumented)
+ protected stream: Stream;
+}
+
+// @public (undocumented)
+export type Channels = {
+ main: {
+ params: null;
+ events: {
+ notification: (payload: Notification_2) => void;
+ mention: (payload: Note) => void;
+ reply: (payload: Note) => void;
+ renote: (payload: Note) => void;
+ follow: (payload: User) => void;
+ followed: (payload: User) => void;
+ unfollow: (payload: User) => void;
+ meUpdated: (payload: MeDetailed) => void;
+ pageEvent: (payload: PageEvent) => void;
+ urlUploadFinished: (payload: {
+ marker: string;
+ file: DriveFile;
+ }) => void;
+ readAllNotifications: () => void;
+ unreadNotification: (payload: Notification_2) => void;
+ unreadMention: (payload: Note['id']) => void;
+ readAllUnreadMentions: () => void;
+ unreadSpecifiedNote: (payload: Note['id']) => void;
+ readAllUnreadSpecifiedNotes: () => void;
+ readAllMessagingMessages: () => void;
+ messagingMessage: (payload: MessagingMessage) => void;
+ unreadMessagingMessage: (payload: MessagingMessage) => void;
+ readAllAntennas: () => void;
+ unreadAntenna: (payload: Antenna) => void;
+ readAllAnnouncements: () => void;
+ readAllChannels: () => void;
+ unreadChannel: (payload: Note['id']) => void;
+ myTokenRegenerated: () => void;
+ reversiNoInvites: () => void;
+ reversiInvited: (payload: FIXME) => void;
+ signin: (payload: FIXME) => void;
+ registryUpdated: (payload: {
+ scope?: string[];
+ key: string;
+ value: any | null;
+ }) => void;
+ driveFileCreated: (payload: DriveFile) => void;
+ readAntenna: (payload: Antenna) => void;
+ };
+ receives: null;
+ };
+ homeTimeline: {
+ params: null;
+ events: {
+ note: (payload: Note) => void;
+ };
+ receives: null;
+ };
+ localTimeline: {
+ params: null;
+ events: {
+ note: (payload: Note) => void;
+ };
+ receives: null;
+ };
+ hybridTimeline: {
+ params: null;
+ events: {
+ note: (payload: Note) => void;
+ };
+ receives: null;
+ };
+ globalTimeline: {
+ params: null;
+ events: {
+ note: (payload: Note) => void;
+ };
+ receives: null;
+ };
+ messaging: {
+ params: {
+ otherparty?: User['id'] | null;
+ group?: UserGroup['id'] | null;
+ };
+ events: {
+ message: (payload: MessagingMessage) => void;
+ deleted: (payload: MessagingMessage['id']) => void;
+ read: (payload: MessagingMessage['id'][]) => void;
+ typers: (payload: User[]) => void;
+ };
+ receives: {
+ read: {
+ id: MessagingMessage['id'];
+ };
+ };
+ };
+ serverStats: {
+ params: null;
+ events: {
+ stats: (payload: FIXME) => void;
+ };
+ receives: {
+ requestLog: {
+ id: string | number;
+ length: number;
+ };
+ };
+ };
+ queueStats: {
+ params: null;
+ events: {
+ stats: (payload: FIXME) => void;
+ };
+ receives: {
+ requestLog: {
+ id: string | number;
+ length: number;
+ };
+ };
+ };
+};
+
// @public (undocumented)
type Clip = TODO_2;
@@ -2422,11 +2562,8 @@ export class Stream extends EventEmitter<StreamEvents> {
send(typeOrPayload: any, payload?: any): void;
// (undocumented)
state: 'initializing' | 'reconnecting' | 'connected';
- // Warning: (ae-forgotten-export) The symbol "Channels" needs to be exported by the entry point index.d.ts
- // Warning: (ae-forgotten-export) The symbol "Connection" needs to be exported by the entry point index.d.ts
- //
// (undocumented)
- useChannel<C extends keyof Channels>(channel: C, params?: Channels[C]['params'], name?: string): Connection<Channels[C]>;
+ useChannel<C extends keyof Channels>(channel: C, params?: Channels[C]['params'], name?: string): ChannelConnection<Channels[C]>;
}
// @public (undocumented)
@@ -2519,6 +2656,7 @@ type UserSorting = '+follower' | '-follower' | '+createdAt' | '-createdAt' | '+u
// src/api.types.ts:16:32 - (ae-forgotten-export) The symbol "TODO" needs to be exported by the entry point index.d.ts
// src/api.types.ts:18:25 - (ae-forgotten-export) The symbol "NoParams" needs to be exported by the entry point index.d.ts
// src/api.types.ts:595:18 - (ae-forgotten-export) The symbol "ShowUserReq" needs to be exported by the entry point index.d.ts
+// src/streaming.types.ts:35:4 - (ae-forgotten-export) The symbol "FIXME" needs to be exported by the entry point index.d.ts
// (No @packageDocumentation comment for this package)
diff --git a/src/index.ts b/src/index.ts
index 60748ebe0b..f431d65cc7 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,11 +1,14 @@
import { Endpoints } from './api.types';
-import Stream from './streaming';
+import Stream, { Connection } from './streaming';
+import { Channels } from './streaming.types';
import { Acct } from './acct';
import * as consts from './consts';
export {
Endpoints,
Stream,
+ Connection as ChannelConnection,
+ Channels,
Acct,
};
diff --git a/src/streaming.ts b/src/streaming.ts
index 0f41bddd40..c354a758f4 100644
--- a/src/streaming.ts
+++ b/src/streaming.ts
@@ -256,7 +256,7 @@ class Pool {
}
}
-abstract class Connection<Channel extends AnyOf<Channels> = any> extends EventEmitter<Channel['events']> {
+export abstract class Connection<Channel extends AnyOf<Channels> = any> extends EventEmitter<Channel['events']> {
public channel: string;
protected stream: Stream;
public abstract id: string;