createRunner
API Reference for createRunner.
createRunner()
Create a reusable runner with shared resource limits and continuation configuration.
import { createRunner } from 'run';
const runner = createRunner({
limits: { timeoutMs: 10_000 },
});
const result = await runner.run<number>({
source: 'return 6 * 7;',
});Import
import { createRunner } from 'run';API Signature
Type Parameters
[
{
"name": "TOKEN",
"type": "unknown",
"isOptional": true,
"description": "The token type produced and consumed by the continuation codec. Default: string."
}
]Parameters
[
{
"name": "limits",
"type": "RunLimits",
"isOptional": true,
"description": "Shared resource limits. Per-run limits override these values.",
"properties": [
{
"type": "RunLimits",
"parameters": [
{
"name": "timeoutMs",
"type": "number",
"isOptional": true,
"description": "Invocation timeout in milliseconds. Default: 30000."
},
{
"name": "memoryLimitBytes",
"type": "number",
"isOptional": true,
"description": "QuickJS memory limit in bytes. Default: 67108864."
},
{
"name": "maxStackSizeBytes",
"type": "number",
"isOptional": true,
"description": "QuickJS stack limit in bytes. Default: 2097152."
},
{
"name": "maxResultBytes",
"type": "number",
"isOptional": true,
"description": "Maximum serialized result size in bytes. Default: 1048576."
},
{
"name": "maxConsoleOutputBytes",
"type": "number",
"isOptional": true,
"description": "Maximum console output in bytes. Default: 65536."
},
{
"name": "maxSourceBytes",
"type": "number",
"isOptional": true,
"description": "Maximum source size in bytes. Default: 262144."
},
{
"name": "maxHostFunctionArgumentsBytes",
"type": "number",
"isOptional": true,
"description": "Maximum serialized arguments for one host function request in bytes. Default: 1048576."
},
{
"name": "maxHostFunctionOutputBytes",
"type": "number",
"isOptional": true,
"description": "Maximum serialized host function output or interruption payload in bytes. Default: 4194304."
},
{
"name": "maxBridgeRequests",
"type": "number",
"isOptional": true,
"description": "Maximum bridge requests in one invocation. Default: 256."
},
{
"name": "maxInFlightBridgeRequests",
"type": "number",
"isOptional": true,
"description": "Maximum bridge requests in flight at once. Default: 32."
},
{
"name": "maxContinuationBytes",
"type": "number",
"isOptional": true,
"description": "Maximum serialized continuation state in bytes. Default: 33554432."
}
]
}
]
},
{
"name": "continuationSecret",
"type": "string | Uint8Array",
"isOptional": true,
"description": "The HMAC key used by the default signed continuation codec. Must contain at least 32 bytes. Defaults to RUN_CONTINUATION_SECRET. Cannot be combined with continuationCodec."
},
{
"name": "continuationCodec",
"type": "ContinuationCodec<TOKEN>",
"isOptional": true,
"description": "A custom continuation encoder and decoder. Cannot be combined with continuationSecret.",
"properties": [
{
"type": "ContinuationCodec<TOKEN>",
"parameters": [
{
"name": "encode",
"type": "(state: RunContinuationState, context?: ContinuationOperationContext) => TOKEN | Promise<TOKEN>",
"description": "Encodes replay state into a continuation token."
},
{
"name": "decode",
"type": "(token: TOKEN, context?: ContinuationOperationContext) => RunContinuationState | Promise<RunContinuationState>",
"description": "Decodes a continuation token into replay state."
}
]
}
]
},
{
"name": "continuationAudience",
"type": "string",
"isOptional": true,
"description": "The authenticated application or endpoint audience for every continuation. Must contain between 1 and 512 bytes. Default: 'run'."
}
]Returns
[
{
"name": "runner",
"type": "Runner<TOKEN>",
"description": "A reusable configured runner.",
"properties": [
{
"type": "Runner<TOKEN>",
"parameters": [
{
"name": "run",
"type": "<OUTPUT = unknown>(input: RunInput<TOKEN>) => Promise<RunResult<OUTPUT, TOKEN>>",
"description": "Executes source in a fresh sandbox using the runner defaults."
}
]
}
]
}
]