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 { ExecutorScopeConfig, ExecutorRuntimeConfig,} from "#schema"; const DEFAULT_EXECUTION_RUNTIME: ExecutorRuntimeConfig = "quickjs"; export const resolveConfiguredExecutionRuntime = ( config: ExecutorScopeConfig | null | undefined,): ExecutorRuntimeConfig => config?.runtime ?? DEFAULT_EXECUTION_RUNTIME; export const createCodeExecutorForRuntime = ( runtime: ExecutorRuntimeConfig,): 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 {
ExecutorScopeConfig,
ExecutorRuntimeConfig,
} from "#schema";
const DEFAULT_EXECUTION_RUNTIME: ExecutorRuntimeConfig = "quickjs";
export const resolveConfiguredExecutionRuntime = (
config: ExecutorScopeConfig | null | undefined,
): ExecutorRuntimeConfig => config?.runtime ?? DEFAULT_EXECUTION_RUNTIME;
export const createCodeExecutorForRuntime = (
runtime: ExecutorRuntimeConfig,
): CodeExecutor => {
switch (runtime) {
case "deno":
return makeDenoSubprocessExecutor();
case "ses":
return makeSesExecutor();
case "quickjs":
default:
return makeQuickJsExecutor();
}
};