2
0

filesystemhost.lpr 999 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. program filesystemhost;
  2. {$mode objfpc}
  3. uses
  4. BrowserConsole, BrowserApp, WASIHostApp, JS, Classes, SysUtils, Web, wasitypes, wasizenfs, libzenfs, libzenfsdom;
  5. type
  6. TMyApplication = class(TWASIHostApplication)
  7. protected
  8. FS :TWASIZenFS;
  9. procedure RunWasm ; async;
  10. procedure DoRun; override;
  11. public
  12. end;
  13. procedure TMyApplication.DoRun;
  14. begin
  15. RunWasm;
  16. end;
  17. procedure TMyApplication.RunWasm;
  18. begin
  19. // Writeln('Enabling logging');
  20. // WasiEnvironment.LogAPI:=True;
  21. await(tjsobject, ZenFS.configure(
  22. new(
  23. ['mounts', new([
  24. '/', DomBackends.WebStorage
  25. ])
  26. ])
  27. )
  28. );
  29. if not ZenFS.existsSync('/tmp') then
  30. begin
  31. ZenFS.mkdirSync('/tmp',777);
  32. end;
  33. FS:=TWASIZenFS.Create;
  34. WasiEnvironment.FS:=FS;
  35. StartWebAssembly('fsdemo.wasm');
  36. end;
  37. var
  38. Application : TMyApplication;
  39. begin
  40. ConsoleStyle:=DefaultCRTConsoleStyle;
  41. HookConsole;
  42. Application:=TMyApplication.Create(nil);
  43. Application.Initialize;
  44. Application.Run;
  45. end.