Skip to content

Instantly share code, notes, and snippets.

@pi0
Last active December 18, 2024 21:41
Show Gist options
  • Save pi0/019ab8ad75ce2b2ef79adeb60107cead to your computer and use it in GitHub Desktop.
Save pi0/019ab8ad75ce2b2ef79adeb60107cead to your computer and use it in GitHub Desktop.
import { bench, summary, run } from "mitata";
import { createStorage, defineDriver } from "unstorage";
import fsLite from "unstorage/drivers/fs-lite";
const denoDriver = defineDriver((opts) => {
return {
async getItem(key: string) {
const val = await Deno.readTextFile(`${opts.base}/${key}`);
return val;
},
async setItem(key: string, value: string) {
// Similar to fs-lite ensureDir
try {
Deno.statSync(opts.base);
} catch {
await Deno.mkdir(`${opts.base}`, { recursive: true });
}
await Deno.writeTextFile(`${opts.base}/${key}`, value);
},
};
});
summary(() => {
const storage = createStorage({});
storage.mount("node", fsLite({ base: "./.data/node" }));
storage.mount("deno", denoDriver({ base: "./.data/deno" }));
bench("node-api", async () => {
await storage.setItem("node/test", "Hello, world!");
const value = await storage.getItem("node/test");
if (value !== "Hello, world!") {
throw new Error("Invalid value: " + value);
}
});
bench("deno-api", async () => {
await storage.setItem("deno/test", "Hello, world!");
const value = await storage.getItem("deno/test");
if (value !== "Hello, world!") {
throw new Error("Invalid value: " + value);
}
});
});
await run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment