vitest-environment-firestore-emulator
Version:
This package contains a [`vitest`](https://vitest.dev/) environment for setup `@firestore-emulator/server`.
42 lines • 1.24 kB
JavaScript
// src/index.ts
import {
FirestoreServer
} from "@firestore-emulator/server";
import { findFreePorts } from "find-free-ports";
import { builtinEnvironments } from "vitest/environments";
var index_default = {
name: "firestore-emulator",
async setup(global, options = {}) {
const supper = await builtinEnvironments[options["firestore-emulator"]?.baseEnv ?? "node"].setup(global, options);
const server = new FirestoreServer();
let tryCount = 0;
while (tryCount < 50) {
const [port] = await findFreePorts(1);
if (!port) throw new Error("Could not find a free port");
try {
await server.start(port);
global.emulator = {
host: `0.0.0.0:${port}`,
port,
state: server.state
};
return {
async teardown() {
server.stop();
await supper.teardown(global);
}
};
} catch (err) {
if (!(err instanceof Error)) throw err;
if (!err.message.startsWith("No address added out of total")) throw err;
}
tryCount++;
}
throw new Error("Could not find a free port");
},
transformMode: "ssr"
};
export {
index_default as default
};
//# sourceMappingURL=index.js.map