





















@@ -3,7 +3,7 @@ import type { ChannelDirectoryAdapter, ChannelOutboundAdapter } from "./types.ad
33type MaybePromise<T> = T | Promise<T>;
4455type DirectoryMethod = "self" | "listPeersLive" | "listGroupsLive" | "listGroupMembers";
6-type OutboundMethod = "sendText" | "sendMedia" | "sendPoll";
6+type OutboundMethod = "renderPresentation" | "sendPayload" | "sendText" | "sendMedia" | "sendPoll";
7788type DirectorySelfParams = Parameters<NonNullable<ChannelDirectoryAdapter["self"]>>[0];
99type DirectoryListParams = Parameters<NonNullable<ChannelDirectoryAdapter["listPeersLive"]>>[0];
@@ -13,6 +13,10 @@ type DirectoryGroupMembersParams = Parameters<
1313type SendTextParams = Parameters<NonNullable<ChannelOutboundAdapter["sendText"]>>[0];
1414type SendMediaParams = Parameters<NonNullable<ChannelOutboundAdapter["sendMedia"]>>[0];
1515type SendPollParams = Parameters<NonNullable<ChannelOutboundAdapter["sendPoll"]>>[0];
16+type RenderPresentationParams = Parameters<
17+NonNullable<ChannelOutboundAdapter["renderPresentation"]>
18+>[0];
19+type SendPayloadParams = Parameters<NonNullable<ChannelOutboundAdapter["sendPayload"]>>[0];
16201721async function resolveForwardedMethod<Runtime, Fn>(params: {
1822getRuntime: () => MaybePromise<Runtime>;
@@ -80,6 +84,14 @@ export function createRuntimeDirectoryLiveAdapter<Runtime>(params: {
80848185export function createRuntimeOutboundDelegates<Runtime>(params: {
8286getRuntime: () => MaybePromise<Runtime>;
87+renderPresentation?: {
88+resolve: (runtime: Runtime) => ChannelOutboundAdapter["renderPresentation"] | null | undefined;
89+unavailableMessage?: string;
90+};
91+sendPayload?: {
92+resolve: (runtime: Runtime) => ChannelOutboundAdapter["sendPayload"] | null | undefined;
93+unavailableMessage?: string;
94+};
8395sendText?: {
8496resolve: (runtime: Runtime) => ChannelOutboundAdapter["sendText"] | null | undefined;
8597unavailableMessage?: string;
@@ -94,6 +106,26 @@ export function createRuntimeOutboundDelegates<Runtime>(params: {
94106};
95107}): Pick<ChannelOutboundAdapter, OutboundMethod> {
96108return {
109+renderPresentation: params.renderPresentation
110+ ? async (ctx: RenderPresentationParams) =>
111+await (
112+await resolveForwardedMethod({
113+getRuntime: params.getRuntime,
114+resolve: params.renderPresentation!.resolve,
115+unavailableMessage: params.renderPresentation!.unavailableMessage,
116+})
117+)(ctx)
118+ : undefined,
119+sendPayload: params.sendPayload
120+ ? async (ctx: SendPayloadParams) =>
121+await (
122+await resolveForwardedMethod({
123+getRuntime: params.getRuntime,
124+resolve: params.sendPayload!.resolve,
125+unavailableMessage: params.sendPayload!.unavailableMessage,
126+})
127+)(ctx)
128+ : undefined,
97129sendText: params.sendText
98130 ? async (ctx: SendTextParams) =>
99131await (
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。