{"version":3,"sources":["../../src/fs/nodefs.ts"],"sourcesContent":["import * as fs from 'fs'\nimport * as path from 'path'\nimport { EmscriptenBuiltinFilesystem } from './base.js'\nimport type { PostgresMod } from '../postgresMod.js'\nimport { PGlite } from '../pglite.js'\nimport { PGDATA } from '../initdb.js'\n\nexport class NodeFS extends EmscriptenBuiltinFilesystem {\n  protected rootDir: string\n\n  constructor(dataDir: string) {\n    super(dataDir)\n    this.rootDir = path.resolve(dataDir)\n    if (!fs.existsSync(path.join(this.rootDir))) {\n      fs.mkdirSync(this.rootDir)\n    }\n  }\n\n  async init(pg: PGlite, opts: Partial<PostgresMod>) {\n    this.pg = pg\n    const options: Partial<PostgresMod> = {\n      ...opts,\n      preRun: [\n        ...(opts.preRun || []),\n        (mod: any) => {\n          const nodefs = mod.FS.filesystems.NODEFS\n          mod.FS.mkdir(PGDATA)\n          mod.FS.mount(nodefs, { root: this.rootDir }, PGDATA)\n        },\n      ],\n    }\n    return { emscriptenOpts: options }\n  }\n\n  async closeFs(): Promise<void> {\n    this.pg!.Module.FS.quit()\n  }\n}\n"],"mappings":"sHAAAA,IAAA,UAAYC,MAAQ,KACpB,UAAYC,MAAU,OAMf,IAAMC,EAAN,cAAqBC,CAA4B,CAGtD,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,EACb,KAAK,QAAe,UAAQA,CAAO,EAC3B,aAAgB,OAAK,KAAK,OAAO,CAAC,GACrC,YAAU,KAAK,OAAO,CAE7B,CAEA,MAAM,KAAKC,EAAYC,EAA4B,CACjD,YAAK,GAAKD,EAYH,CAAE,eAX6B,CACpC,GAAGC,EACH,OAAQ,CACN,GAAIA,EAAK,QAAU,CAAC,EACnBC,GAAa,CACZ,IAAMC,EAASD,EAAI,GAAG,YAAY,OAClCA,EAAI,GAAG,MAAME,CAAM,EACnBF,EAAI,GAAG,MAAMC,EAAQ,CAAE,KAAM,KAAK,OAAQ,EAAGC,CAAM,CACrD,CACF,CACF,CACiC,CACnC,CAEA,MAAM,SAAyB,CAC7B,KAAK,GAAI,OAAO,GAAG,KAAK,CAC1B,CACF","names":["init_esm_shims","fs","path","NodeFS","EmscriptenBuiltinFilesystem","dataDir","pg","opts","mod","nodefs","PGDATA"]}