diff --git a/Compilation/RuntimeEmitter.FsHelpers.cs b/Compilation/RuntimeEmitter.FsHelpers.cs
index bb7380a..6f8ea2f 100644
--- a/Compilation/RuntimeEmitter.FsHelpers.cs
+++ b/Compilation/RuntimeEmitter.FsHelpers.cs
@@ -715,4 +715,166 @@ private void EmitFsAccessSync(TypeBuilder typeBuilder, EmittedRuntime runtime)
});
il.Emit(OpCodes.Ret);
}
+
+ ///
+ /// Emits wrapper methods for fs module functions to support named imports.
+ /// Each wrapper takes individual object parameters (compatible with TSFunction.Invoke).
+ ///
+ private void EmitFsModuleMethodWrappers(TypeBuilder typeBuilder, EmittedRuntime runtime)
+ {
+ // existsSync(path) -> bool
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "existsSync", 1,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Call, runtime.FsExistsSync);
+ il.Emit(OpCodes.Box, _types.Boolean);
+ });
+
+ // readFileSync(path, encoding?) -> object
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "readFileSync", 2,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Ldarg_1);
+ il.Emit(OpCodes.Call, runtime.FsReadFileSync);
+ });
+
+ // writeFileSync(path, data) -> undefined
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "writeFileSync", 2,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Ldarg_1);
+ il.Emit(OpCodes.Call, runtime.FsWriteFileSync);
+ il.Emit(OpCodes.Ldnull);
+ });
+
+ // appendFileSync(path, data) -> undefined
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "appendFileSync", 2,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Ldarg_1);
+ il.Emit(OpCodes.Call, runtime.FsAppendFileSync);
+ il.Emit(OpCodes.Ldnull);
+ });
+
+ // unlinkSync(path) -> undefined
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "unlinkSync", 1,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Call, runtime.FsUnlinkSync);
+ il.Emit(OpCodes.Ldnull);
+ });
+
+ // mkdirSync(path, options?) -> undefined
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "mkdirSync", 2,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Ldarg_1);
+ il.Emit(OpCodes.Call, runtime.FsMkdirSync);
+ il.Emit(OpCodes.Ldnull);
+ });
+
+ // rmdirSync(path, options?) -> undefined
+ EmitFsMethodWrapperSimple(typeBuilder, runtime, "rmdirSync", 2,
+ il =>
+ {
+ il.Emit(OpCodes.Ldarg_0);
+ il.Emit(OpCodes.Ldarg_1);
+ il.Emit(OpCodes.Call, runtime.FsRmdirSync);
+ il.Emit(OpCodes.Ldnull);
+ });
+
+ // readdirSync(path) -> List