juegos

Juegos de terminal de Pancho: Catan (TUI, GUI, web, servidor, PicoCalc), ajedrez, calculadora y minijuegos
git clone https://git.lu3dhn.xyz/juegos.git
Log | Files | Refs

pre.js (1164B)


      1 // pre.js - antes de main(): monta /data en IDBFS (IndexedDB) para que la config, las
      2 // partidas locales y los tokens (data_dir() en comun/linux/paths.c) sobrevivan a
      3 // cerrar la pestana. Se carga primero y recien si salio bien se activa autoPersist:
      4 // si la carga fallara y se escribiera igual, syncfs borraria de IndexedDB todo lo
      5 // que no esta en memoria. paths_flush() ademas espera el sync tras guardar algo
      6 // importante, y no hace nada si Module.noPersist.
      7 Module.preRun = Module.preRun || [];
      8 Module.preRun.push(function () {
      9   try {
     10     FS.mkdir('/data');
     11     FS.mount(IDBFS, {}, '/data');
     12     addRunDependency('idbfs');
     13     FS.syncfs(true, function (err) {
     14       if (err) {
     15         console.warn('IDBFS: no se pudo cargar, se juega sin guardar', err);
     16         Module.noPersist = true;
     17         if (Module.setStatus) Module.setStatus('Sin almacenamiento: esta sesion no guarda partidas');
     18       } else {
     19         var m = FS.lookupPath('/data').node.mount;
     20         if (m && m.opts) m.opts.autoPersist = true;
     21       }
     22       removeRunDependency('idbfs');
     23     });
     24   } catch (e) {
     25     console.warn('sin persistencia', e);
     26     Module.noPersist = true;
     27   }
     28 });