import type { RunnableNodeConfig } from "../types"; type BinaryKeepingRunnableNodeConfig = RunnableNodeConfig & Readonly<{ keepBinaries?: boolean; }>; type MergeJsonRunnableNodeConfig = RunnableNodeConfig & Readonly<{ mergeJson?: boolean; }>; export type RunnableOutputBehavior = Readonly<{ keepBinaries: boolean; mergeJson: boolean; }>; export class RunnableOutputBehaviorResolver { resolve(config: RunnableNodeConfig): RunnableOutputBehavior { return { keepBinaries: this.isKeepBinariesEnabled(config), mergeJson: this.isMergeJsonEnabled(config), }; } private isKeepBinariesEnabled(config: RunnableNodeConfig): boolean { const candidate = config as BinaryKeepingRunnableNodeConfig; return candidate.keepBinaries === true; } private isMergeJsonEnabled(config: RunnableNodeConfig): boolean { const candidate = config as MergeJsonRunnableNodeConfig; return candidate.mergeJson === true; } }