@@ -5,6 +5,8 @@ import { ResourceWorker } from "./workers/resource-worker.js";
55import { StreamReader , readableStreamFromIterator } from "./stream.js" ;
66import { future } from "./future.js" ;
77
8+ import { environment as environmentV2 } from "@bytecodealliance/preview2-shim/cli" ;
9+
810export {
911 _appendEnv ,
1012 _setEnv ,
@@ -13,7 +15,6 @@ export {
1315 _setTerminalStdin ,
1416 _setTerminalStdout ,
1517 _setTerminalStderr ,
16- environment ,
1718 exit ,
1819 terminalInput ,
1920 terminalOutput ,
@@ -22,6 +23,15 @@ export {
2223 terminalStderr ,
2324} from "@bytecodealliance/preview2-shim/cli" ;
2425
26+ // `wasi:cli/environment` renamed `initial-cwd` to `get-initial-cwd` between
27+ // p2 and p3. Adapt the p2-shim shape to the p3 WIT member name while
28+ // re-exporting the unchanged members.
29+ export const environment = {
30+ getEnvironment : environmentV2 . getEnvironment ,
31+ getArguments : environmentV2 . getArguments ,
32+ getInitialCwd : environmentV2 . initialCwd ,
33+ } ;
34+
2535let WORKER = null ;
2636function worker ( ) {
2737 return ( WORKER ??= new ResourceWorker ( new URL ( "./workers/cli-worker.js" , import . meta. url ) ) ) ;
@@ -88,7 +98,7 @@ export const stdout = {
8898 * @returns {Promise<{tag: string, val?: string}> } Result of the write operation.
8999 */
90100 async writeViaStream ( streamReader ) {
91- const readableStream = readableStreamFromIterator ( streamReader . intoAsyncIterator ( ) ) ;
101+ const readableStream = readableStreamFromIterator ( streamReader [ Symbol . asyncIterator ] ( ) ) ;
92102 try {
93103 await worker ( ) . run ( { op : "stdout" , stream : readableStream } , [ readableStream ] ) ;
94104 return { tag : "ok" , val : undefined } ;
@@ -109,7 +119,7 @@ export const stderr = {
109119 * @returns {Promise<{tag: string, val?: string}> } Result of the write operation.
110120 */
111121 async writeViaStream ( streamReader ) {
112- const readableStream = readableStreamFromIterator ( streamReader . intoAsyncIterator ( ) ) ;
122+ const readableStream = readableStreamFromIterator ( streamReader [ Symbol . asyncIterator ] ( ) ) ;
113123 try {
114124 await worker ( ) . run ( { op : "stderr" , stream : readableStream } , [ readableStream ] ) ;
115125 return { tag : "ok" , val : undefined } ;
0 commit comments