vitest-environment-firestore-emulator
Version:
This package contains a [`vitest`](https://vitest.dev/) environment for setup `@firestore-emulator/server`.
61 lines (60 loc) • 2.2 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
default: () => index_default
});
module.exports = __toCommonJS(index_exports);
var import_server = require("@firestore-emulator/server");
var import_find_free_ports = require("find-free-ports");
var import_environments = require("vitest/environments");
var index_default = {
name: "firestore-emulator",
async setup(global, options = {}) {
const supper = await import_environments.builtinEnvironments[options["firestore-emulator"]?.baseEnv ?? "node"].setup(global, options);
const server = new import_server.FirestoreServer();
let tryCount = 0;
while (tryCount < 50) {
const [port] = await (0, import_find_free_ports.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"
};
//# sourceMappingURL=index.cjs.map