export const MessageContextRef = GenericTag<MtcuteMessageContext>(
"@ref/MessageContext",
);
export class MessageContext
extends Effect.Service<MessageContext>()("@service/MessageContext", {
effect: Effect.gen(function* () {
const update = yield* MessageContextRef;
return {
update,
answerText: (
text: InputText,
params?: CommonParams,
): Effect.Effect<void, Error> => Effect.tryPromise({
try: () => update.answerText(text, params as any),
catch: () => new Error("answerText"),
}),
};
}),
}) {}
# handler
handler(context, state).pipe(
Effect.provide(MessageContext.Default),
Effect.provideService(MessageContextRef, context),
)
export const MessageContextRef = GenericTag<MtcuteMessageContext>(
"@ref/MessageContext",
);
export class MessageContext
extends Effect.Service<MessageContext>()("@service/MessageContext", {
effect: Effect.gen(function* () {
const update = yield* MessageContextRef;
return {
update,
answerText: (
text: InputText,
params?: CommonParams,
): Effect.Effect<void, Error> => Effect.tryPromise({
try: () => update.answerText(text, params as any),
catch: () => new Error("answerText"),
}),
};
}),
}) {}
# handler
handler(context, state).pipe(
Effect.provide(MessageContext.Default),
Effect.provideService(MessageContextRef, context),
)