@@ -2,26 +2,30 @@ import { getRuntimeExposeCustomGlobal } from "../common/global-exposure";
22
33const __runtimeExposeCustomGlobal = getRuntimeExposeCustomGlobal ( ) ;
44
5- const __fsFacade : Record < string , unknown > = {
6- readFile : globalThis . _fsReadFile ,
7- writeFile : globalThis . _fsWriteFile ,
8- readFileBinary : globalThis . _fsReadFileBinary ,
9- writeFileBinary : globalThis . _fsWriteFileBinary ,
10- readDir : globalThis . _fsReadDir ,
11- mkdir : globalThis . _fsMkdir ,
12- rmdir : globalThis . _fsRmdir ,
13- exists : globalThis . _fsExists ,
14- stat : globalThis . _fsStat ,
15- unlink : globalThis . _fsUnlink ,
16- rename : globalThis . _fsRename ,
17- chmod : globalThis . _fsChmod ,
18- chown : globalThis . _fsChown ,
19- link : globalThis . _fsLink ,
20- symlink : globalThis . _fsSymlink ,
21- readlink : globalThis . _fsReadlink ,
22- lstat : globalThis . _fsLstat ,
23- truncate : globalThis . _fsTruncate ,
24- utimes : globalThis . _fsUtimes ,
25- } ;
5+ // Getter-based delegation: each _fs property resolves globalThis._fsXxx at
6+ // call time, not setup time. This allows snapshot-restored contexts to pick
7+ // up replaced bridge function globals after restore.
8+ const __fsFacade : Record < string , unknown > = { } ;
9+ Object . defineProperties ( __fsFacade , {
10+ readFile : { get ( ) { return globalThis . _fsReadFile ; } , enumerable : true } ,
11+ writeFile : { get ( ) { return globalThis . _fsWriteFile ; } , enumerable : true } ,
12+ readFileBinary : { get ( ) { return globalThis . _fsReadFileBinary ; } , enumerable : true } ,
13+ writeFileBinary : { get ( ) { return globalThis . _fsWriteFileBinary ; } , enumerable : true } ,
14+ readDir : { get ( ) { return globalThis . _fsReadDir ; } , enumerable : true } ,
15+ mkdir : { get ( ) { return globalThis . _fsMkdir ; } , enumerable : true } ,
16+ rmdir : { get ( ) { return globalThis . _fsRmdir ; } , enumerable : true } ,
17+ exists : { get ( ) { return globalThis . _fsExists ; } , enumerable : true } ,
18+ stat : { get ( ) { return globalThis . _fsStat ; } , enumerable : true } ,
19+ unlink : { get ( ) { return globalThis . _fsUnlink ; } , enumerable : true } ,
20+ rename : { get ( ) { return globalThis . _fsRename ; } , enumerable : true } ,
21+ chmod : { get ( ) { return globalThis . _fsChmod ; } , enumerable : true } ,
22+ chown : { get ( ) { return globalThis . _fsChown ; } , enumerable : true } ,
23+ link : { get ( ) { return globalThis . _fsLink ; } , enumerable : true } ,
24+ symlink : { get ( ) { return globalThis . _fsSymlink ; } , enumerable : true } ,
25+ readlink : { get ( ) { return globalThis . _fsReadlink ; } , enumerable : true } ,
26+ lstat : { get ( ) { return globalThis . _fsLstat ; } , enumerable : true } ,
27+ truncate : { get ( ) { return globalThis . _fsTruncate ; } , enumerable : true } ,
28+ utimes : { get ( ) { return globalThis . _fsUtimes ; } , enumerable : true } ,
29+ } ) ;
2630
2731__runtimeExposeCustomGlobal ( "_fs" , __fsFacade ) ;
0 commit comments