diff options
Diffstat (limited to '')
| -rw-r--r-- | src/eval.ts | 5 | ||||
| -rw-r--r-- | stdlib/sys.ts | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/eval.ts b/src/eval.ts index 19a5557..c34e911 100644 --- a/src/eval.ts +++ b/src/eval.ts @@ -116,6 +116,11 @@ export const evaluateType = async ( return [resultKey] }, + Exit: async () => { + const exitCode = args[0] && ctx.getTypeValue(args[0]) + process.exit(exitCode) + }, + ReadLine: async () => { const line = await readLineFromStdin() const [resultKey, _] = ctx.createResult(`${JSON.stringify(line)}`) diff --git a/stdlib/sys.ts b/stdlib/sys.ts index e170c6c..68f713d 100644 --- a/stdlib/sys.ts +++ b/stdlib/sys.ts @@ -8,3 +8,6 @@ export interface JsExpr<_Expr extends string> extends Effect<any> {} export interface DefineEffect<_Name extends string, _Func extends string> extends Effect {} + +export interface Exit<_ extends number | undefined = undefined> extends Effect {} + |
