2023-10-31 14:47:59 -04:00
|
|
|
/**
|
2023-10-31 17:38:15 -04:00
|
|
|
* The main entrypoint when using Bun as the runtime
|
2023-10-31 14:47:59 -04:00
|
|
|
*/
|
2023-10-31 17:38:15 -04:00
|
|
|
|
2023-11-16 11:10:33 -05:00
|
|
|
import { IRuntime, RunTimeType } from '../common/mod.ts';
|
2023-11-10 18:22:09 -05:00
|
|
|
import BunFFI from './ffi.ts';
|
|
|
|
import BunTerminalIO from './terminal_io.ts';
|
2023-11-13 15:33:56 -05:00
|
|
|
import BunFileIO from './file_io.ts';
|
2023-10-31 17:38:15 -04:00
|
|
|
|
2023-11-10 18:22:09 -05:00
|
|
|
const BunRuntime: IRuntime = {
|
|
|
|
name: RunTimeType.Bun,
|
2023-11-13 15:33:56 -05:00
|
|
|
file: BunFileIO,
|
2023-11-10 18:22:09 -05:00
|
|
|
ffi: BunFFI,
|
2023-11-13 15:33:56 -05:00
|
|
|
term: BunTerminalIO,
|
2023-11-16 11:10:33 -05:00
|
|
|
onEvent: (eventName: string, handler: (e: Event) => void) =>
|
|
|
|
process.on(eventName, handler),
|
2023-11-10 18:22:09 -05:00
|
|
|
onExit: (cb: () => void): void => {
|
|
|
|
process.on('beforeExit', cb);
|
|
|
|
process.on('exit', cb);
|
|
|
|
process.on('SIGINT', cb);
|
|
|
|
},
|
|
|
|
exit: (code?: number) => process.exit(code),
|
2023-11-08 15:53:14 -05:00
|
|
|
};
|
2023-11-10 18:22:09 -05:00
|
|
|
|
|
|
|
export default BunRuntime;
|