Path: blob/master/src/packages/backend/conat/persist.ts
1710 views
/*12To test having multiple persist servers at once in dev mode, start3up your dev server. Then do the following in nodejs to create an4additional persist server:56require("@cocalc/backend/conat/persist").initPersistServer()78*/910import "./index";11import betterSqlite3 from "better-sqlite3";12import { initContext } from "@cocalc/conat/persist/context";13import { compress, decompress } from "zstd-napi";14import { syncFiles } from "@cocalc/backend/data";15import ensureContainingDirectoryExists from "@cocalc/backend/misc/ensure-containing-directory-exists";16import { statSync, copyFileSync } from "node:fs";1718initContext({19betterSqlite3,20compress,21decompress,22syncFiles,23ensureContainingDirectoryExists,24statSync,25copyFileSync,26});2728export { pstream } from "@cocalc/conat/persist/storage";29import { server } from "@cocalc/conat/persist/server";30export { server };31import { conat } from "./conat";3233const persistServers: any[] = [];3435export function initPersistServer() {36const persistServer = server({37client: conat({ noCache: persistServers.length > 0 }),38});39persistServers.push(persistServer);40}4142export function close() {43for (const persistServer of persistServers) {44persistServer.end(); // end is a bit more graceful45}46persistServers.length = 0;47}484950