{"version":3,"file":"snapshot.mjs","names":["#fetch"],"sources":["../../../../src/worker/lib/cloudflare/snapshot.ts"],"sourcesContent":["import assert from \"node:assert\";\nimport { dirname } from \"node:path\";\nimport { env } from \"cloudflare:workers\";\nimport { VitestSnapshotEnvironment } from \"vitest/runtime\";\n\n// Define a custom `SnapshotEnvironment` that uses a service binding for file\n// system operations, rather than `node:fs`\nclass WorkersSnapshotEnvironment extends VitestSnapshotEnvironment {\n\t#fetch(method: string, path: string, body?: BodyInit): Promise<Response> {\n\t\tconst encodedPath = encodeURIComponent(path);\n\t\tconst url = `http://placeholder/snapshot?path=${encodedPath}`;\n\t\treturn env.__VITEST_POOL_WORKERS_LOOPBACK_SERVICE.fetch(url, {\n\t\t\tmethod,\n\t\t\tbody,\n\t\t});\n\t}\n\n\tasync prepareDirectory(dirPath: string): Promise<void> {\n\t\tconst res = await this.#fetch(\"POST\", dirPath);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n\n\tasync saveSnapshotFile(filePath: string, snapshot: string): Promise<void> {\n\t\tawait this.prepareDirectory(dirname(filePath));\n\t\tconst res = await this.#fetch(\"PUT\", filePath, snapshot);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n\n\tasync readSnapshotFile(filePath: string): Promise<string | null> {\n\t\tconst res = await this.#fetch(\"GET\", filePath);\n\t\tif (res.status === 404) {\n\t\t\treturn null;\n\t\t}\n\t\tassert.strictEqual(res.status, 200);\n\t\treturn await res.text();\n\t}\n\n\tasync removeSnapshotFile(filePath: string): Promise<void> {\n\t\tconst res = await this.#fetch(\"DELETE\", filePath);\n\t\tassert.strictEqual(res.status, 204);\n\t}\n}\nexport default new WorkersSnapshotEnvironment();\n"],"mappings":";;;;;;AAOA,IAAM,6BAAN,cAAyC,0BAA0B;CAClE,OAAO,QAAgB,MAAc,MAAoC;EAExE,MAAM,MAAM,oCADQ,mBAAmB,KAAK;AAE5C,SAAO,IAAI,uCAAuC,MAAM,KAAK;GAC5D;GACA;GACA,CAAC;;CAGH,MAAM,iBAAiB,SAAgC;EACtD,MAAM,MAAM,MAAM,MAAKA,MAAO,QAAQ,QAAQ;AAC9C,SAAO,YAAY,IAAI,QAAQ,IAAI;;CAGpC,MAAM,iBAAiB,UAAkB,UAAiC;AACzE,QAAM,KAAK,iBAAiB,QAAQ,SAAS,CAAC;EAC9C,MAAM,MAAM,MAAM,MAAKA,MAAO,OAAO,UAAU,SAAS;AACxD,SAAO,YAAY,IAAI,QAAQ,IAAI;;CAGpC,MAAM,iBAAiB,UAA0C;EAChE,MAAM,MAAM,MAAM,MAAKA,MAAO,OAAO,SAAS;AAC9C,MAAI,IAAI,WAAW,IAClB,QAAO;AAER,SAAO,YAAY,IAAI,QAAQ,IAAI;AACnC,SAAO,MAAM,IAAI,MAAM;;CAGxB,MAAM,mBAAmB,UAAiC;EACzD,MAAM,MAAM,MAAM,MAAKA,MAAO,UAAU,SAAS;AACjD,SAAO,YAAY,IAAI,QAAQ,IAAI;;;AAGrC,uBAAe,IAAI,4BAA4B"}