refactor: reuse runtime logger helper

This commit is contained in:
Peter Steinberger
2026-04-20 15:34:39 +01:00
parent f6f7d2f85e
commit 8d4e3f5c3c
3 changed files with 6 additions and 37 deletions

View File

@@ -1,37 +1 @@
import { format } from "node:util";
type RuntimeLoggerLike = {
info: (message: string) => void;
error: (message: string) => void;
};
type LoggerBackedRuntime = {
log: (...args: unknown[]) => void;
error: (...args: unknown[]) => void;
writeStdout: (value: string) => void;
writeJson: (value: unknown, space?: number) => void;
exit: (code: number) => never;
};
export function createLoggerBackedRuntime(params: {
logger: RuntimeLoggerLike;
exitError?: (code: number) => Error;
}): LoggerBackedRuntime {
return {
log: (...args) => {
params.logger.info(format(...args));
},
error: (...args) => {
params.logger.error(format(...args));
},
writeStdout: (value) => {
params.logger.info(value);
},
writeJson: (value, space = 2) => {
params.logger.info(JSON.stringify(value, null, space > 0 ? space : undefined));
},
exit: (code: number): never => {
throw params.exitError?.(code) ?? new Error(`exit ${code}`);
},
};
}
export { createLoggerBackedRuntime } from "openclaw/plugin-sdk/runtime-logger";

View File

@@ -97,6 +97,10 @@
"types": "./dist/plugin-sdk/runtime-env.d.ts",
"default": "./dist/plugin-sdk/runtime-env.js"
},
"./plugin-sdk/runtime-logger": {
"types": "./dist/plugin-sdk/runtime-logger.d.ts",
"default": "./dist/plugin-sdk/runtime-logger.js"
},
"./plugin-sdk/proxy-capture": {
"types": "./dist/plugin-sdk/proxy-capture.d.ts",
"default": "./dist/plugin-sdk/proxy-capture.js"

View File

@@ -10,6 +10,7 @@
"runtime",
"runtime-doctor",
"runtime-env",
"runtime-logger",
"proxy-capture",
"runtime-secret-resolution",
"setup",