import type { CodeExecutor,} from "@executor/codemode-core";import { makeDenoSubprocessExecutor,} from "@executor/runtime-deno-subprocess";import { makeQuickJsExecutor,} from "@executor/runtime-quickjs";import { makeSesExecutor,} from "@executor/runtime-ses";import type { LocalExecutorConfig, LocalExecutorRuntime,} from "#schema"; const DEFAULT_EXECUTION_RUNTIME: LocalExecutorRuntime = "quickjs"; export const resolveConfiguredExecutionRuntime = ( config: LocalExecutorConfig | null | undefined,): LocalExecutorRuntime => config?.runtime ?? DEFAULT_EXECUTION_RUNTIME; export const createCodeExecutorForRuntime = ( runtime: LocalExecutorRuntime,): CodeExecutor => { switch (runtime) { case "deno": return makeDenoSubprocessExecutor(); case "ses": return makeSesExecutor(); case "quickjs": default: return makeQuickJsExecutor(); }};
import type {
CodeExecutor,
} from "@executor/codemode-core";
import {
makeDenoSubprocessExecutor,
} from "@executor/runtime-deno-subprocess";
import {
makeQuickJsExecutor,
} from "@executor/runtime-quickjs";
import {
makeSesExecutor,
} from "@executor/runtime-ses";
import type {
LocalExecutorConfig,
LocalExecutorRuntime,
} from "#schema";
const DEFAULT_EXECUTION_RUNTIME: LocalExecutorRuntime = "quickjs";
export const resolveConfiguredExecutionRuntime = (
config: LocalExecutorConfig | null | undefined,
): LocalExecutorRuntime => config?.runtime ?? DEFAULT_EXECUTION_RUNTIME;
export const createCodeExecutorForRuntime = (
runtime: LocalExecutorRuntime,
): CodeExecutor => {
switch (runtime) {
case "deno":
return makeDenoSubprocessExecutor();
case "ses":
return makeSesExecutor();
case "quickjs":
default:
return makeQuickJsExecutor();
}
};