@@ -2,54 +2,53 @@ import { SwiftRuntime } from "javascript-kit-swift";
22import { WASI } from "@wasmer/wasi" ;
33import { WasmFs } from "@wasmer/wasmfs" ;
44
5-
65const swift = new SwiftRuntime ( ) ;
76// Instantiate a new WASI Instance
87const wasmFs = new WasmFs ( ) ;
98
109// Output stdout and stderr to console
1110const originalWriteSync = wasmFs . fs . writeSync ;
1211wasmFs . fs . writeSync = ( fd , buffer , offset , length , position ) => {
13- const text = new TextDecoder ( "utf-8" ) . decode ( buffer ) ;
14-
15- // Filter out standalone "\n" added by every `print`, `console.log`
16- // always adds its own "\n" on top.
17- if ( text !== "\n" ) {
18- switch ( fd ) {
19- case 1 :
20- console . log ( text ) ;
21- break ;
22- case 2 :
23- console . error ( text ) ;
24- break ;
12+ const text = new TextDecoder ( "utf-8" ) . decode ( buffer ) ;
13+
14+ // Filter out standalone "\n" added by every `print`, `console.log`
15+ // always adds its own "\n" on top.
16+ if ( text !== "\n" ) {
17+ switch ( fd ) {
18+ case 1 :
19+ console . log ( text ) ;
20+ break ;
21+ case 2 :
22+ console . error ( text ) ;
23+ break ;
24+ }
2525 }
26- }
27- return originalWriteSync ( fd , buffer , offset , length , position ) ;
26+ return originalWriteSync ( fd , buffer , offset , length , position ) ;
2827} ;
2928
3029let wasi = new WASI ( {
31- args : [ ] ,
32- env : { } ,
33- bindings : {
34- ...WASI . defaultBindings ,
35- fs : wasmFs . fs
36- }
30+ args : [ ] ,
31+ env : { } ,
32+ bindings : {
33+ ...WASI . defaultBindings ,
34+ fs : wasmFs . fs ,
35+ } ,
3736} ) ;
3837
3938const startWasiTask = async ( ) => {
40- // Fetch our Wasm File
41- const response = await fetch ( "JavaScriptKitExample.wasm" ) ;
42- const responseArrayBuffer = await response . arrayBuffer ( ) ;
39+ // Fetch our Wasm File
40+ const response = await fetch ( "JavaScriptKitExample.wasm" ) ;
41+ const responseArrayBuffer = await response . arrayBuffer ( ) ;
4342
44- // Instantiate the WebAssembly file
45- const wasm_bytes = new Uint8Array ( responseArrayBuffer ) . buffer ;
46- let { instance } = await WebAssembly . instantiate ( wasm_bytes , {
47- wasi_snapshot_preview1 : wasi . wasiImport ,
48- javascript_kit : swift . importObjects ( ) ,
49- } ) ;
43+ // Instantiate the WebAssembly file
44+ const wasm_bytes = new Uint8Array ( responseArrayBuffer ) . buffer ;
45+ let { instance } = await WebAssembly . instantiate ( wasm_bytes , {
46+ wasi_snapshot_preview1 : wasi . wasiImport ,
47+ javascript_kit : swift . importObjects ( ) ,
48+ } ) ;
5049
51- swift . setInstance ( instance ) ;
52- // Start the WebAssembly WASI instance!
53- wasi . start ( instance ) ;
50+ swift . setInstance ( instance ) ;
51+ // Start the WebAssembly WASI instance!
52+ wasi . start ( instance ) ;
5453} ;
5554startWasiTask ( ) ;
0 commit comments