refactor: de-duplicate channel runtime and payload helpers

This commit is contained in:
Peter Steinberger
2026-02-23 21:25:20 +00:00
parent 0ae7f470a2
commit 0183610db3
44 changed files with 775 additions and 698 deletions

24
src/plugin-sdk/runtime.ts Normal file
View File

@@ -0,0 +1,24 @@
import { format } from "node:util";
import type { RuntimeEnv } from "../runtime.js";
type LoggerLike = {
info: (message: string) => void;
error: (message: string) => void;
};
export function createLoggerBackedRuntime(params: {
logger: LoggerLike;
exitError?: (code: number) => Error;
}): RuntimeEnv {
return {
log: (...args) => {
params.logger.info(format(...args));
},
error: (...args) => {
params.logger.error(format(...args));
},
exit: (code: number): never => {
throw params.exitError?.(code) ?? new Error(`exit ${code}`);
},
};
}