chore: Emit TypeScript declaration files so that we can type-check the extensions folder soon.

This commit is contained in:
cpojer
2026-01-31 21:57:21 +09:00
parent 1838ab019b
commit 59cfff02f6
7 changed files with 27 additions and 11 deletions

View File

@@ -418,7 +418,7 @@ export function createDiscordNativeCommand(params: {
accountId: string;
sessionPrefix: string;
ephemeralDefault: boolean;
}) {
}): Command {
const { command, cfg, discordConfig, accountId, sessionPrefix, ephemeralDefault } = params;
const commandDefinition =
findCommandByNativeName(command.name, "discord") ??
@@ -449,6 +449,7 @@ export function createDiscordNativeCommand(params: {
},
] satisfies CommandOptions)
: undefined;
return new (class extends Command {
name = command.name;
description = command.description;

View File

@@ -3,7 +3,7 @@ import fs from "node:fs/promises";
import fsSync from "node:fs";
import os from "node:os";
import path from "node:path";
import { vi } from "vitest";
import { Mock, vi } from "vitest";
import type { ChannelPlugin, ChannelOutboundAdapter } from "../channels/plugins/types.js";
import { applyPluginAutoEnable } from "../config/plugin-auto-enable.js";
@@ -199,8 +199,8 @@ export const setTestConfigRoot = (root: string) => {
export const testTailnetIPv4 = hoisted.testTailnetIPv4;
export const piSdkMock = hoisted.piSdkMock;
export const cronIsolatedRun = hoisted.cronIsolatedRun;
export const agentCommand = hoisted.agentCommand;
export const getReplyFromConfig = hoisted.getReplyFromConfig;
export const agentCommand: Mock<() => void> = hoisted.agentCommand;
export const getReplyFromConfig: Mock<() => void> = hoisted.getReplyFromConfig;
export const testState = {
agentConfig: undefined as Record<string, unknown> | undefined,

View File

@@ -1,4 +1,5 @@
import type { WebhookRequestBody } from "@line/bot-sdk";
import type { Request, Response, NextFunction } from "express";
import type { OpenClawConfig } from "../config/config.js";
import { loadConfig } from "../config/config.js";
import { logVerbose } from "../globals.js";
@@ -71,7 +72,7 @@ export function createLineWebhookCallback(
bot: LineBot,
channelSecret: string,
path = "/line/webhook",
) {
): { path: string; handler: (req: Request, res: Response, _next: NextFunction) => Promise<void> } {
const { handler } = startLineWebhook({
channelSecret,
onEvents: bot.handleWebhook,

View File

@@ -31,7 +31,9 @@ function parseWebhookBody(req: Request, rawBody: string): WebhookRequestBody | n
}
}
export function createLineWebhookMiddleware(options: LineWebhookOptions) {
export function createLineWebhookMiddleware(
options: LineWebhookOptions,
): (req: Request, res: Response, _next: NextFunction) => Promise<void> {
const { channelSecret, onEvents, runtime } = options;
return async (req: Request, res: Response, _next: NextFunction): Promise<void> => {
@@ -87,7 +89,10 @@ export interface StartLineWebhookOptions {
path?: string;
}
export function startLineWebhook(options: StartLineWebhookOptions) {
export function startLineWebhook(options: StartLineWebhookOptions): {
path: string;
handler: (req: Request, res: Response, _next: NextFunction) => Promise<void>;
} {
const path = options.path ?? "/line/webhook";
const middleware = createLineWebhookMiddleware({
channelSecret: options.channelSecret,

View File

@@ -1,8 +1,16 @@
import { vi } from "vitest";
import { Mock, vi } from "vitest";
type SlackHandler = (args: unknown) => Promise<void>;
const slackTestState = vi.hoisted(() => ({
const slackTestState: {
config: Record<string, unknown>;
sendMock: Mock<(...args: unknown[]) => Promise<unknown>>;
replyMock: Mock<(...args: unknown[]) => unknown>;
updateLastRouteMock: Mock<(...args: unknown[]) => unknown>;
reactMock: Mock<(...args: unknown[]) => unknown>;
readAllowFromStoreMock: Mock<(...args: unknown[]) => Promise<unknown>>;
upsertPairingRequestMock: Mock<(...args: unknown[]) => Promise<unknown>>;
} = vi.hoisted(() => ({
config: {} as Record<string, unknown>,
sendMock: vi.fn(),
replyMock: vi.fn(),
@@ -12,7 +20,7 @@ const slackTestState = vi.hoisted(() => ({
upsertPairingRequestMock: vi.fn(),
}));
export const getSlackTestState = () => slackTestState;
export const getSlackTestState: () => void = () => slackTestState;
export const getSlackHandlers = () =>
(

View File

@@ -96,7 +96,7 @@ export async function createWaSocket(
printQr: boolean,
verbose: boolean,
opts: { authDir?: string; onQr?: (qr: string) => void } = {},
) {
): Promise<ReturnType<typeof makeWASocket>> {
const baseLogger = getChildLogger(
{ module: "baileys" },
{

View File

@@ -7,6 +7,7 @@
"moduleResolution": "NodeNext",
"lib": ["DOM", "DOM.Iterable", "ES2023", "ScriptHost"],
"noEmit": true,
"declaration": true,
"noEmitOnError": true,
"outDir": "dist",
"resolveJsonModule": true,