MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / main

Function main

scripts/perf/node-bench/start_nodefs_socket.mjs:44–110  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

42}
43
44async function main() {
45 const args = parseArgs(process.argv.slice(2))
46 const readyPath = requireArg(args, '--ready')
47 const runId = requireArg(args, '--run-id')
48
49 const scriptDir = path.dirname(fileURLToPath(import.meta.url))
50 const repoRoot = path.resolve(scriptDir, '../../..')
51 const dataDir =
52 args['--data-dir'] ??
53 path.join(repoRoot, 'target/perf/node-bench/runtime', runId, 'pglite_nodefs_sqlx')
54
55 await fs.mkdir(path.dirname(readyPath), { recursive: true })
56 await fs.rm(readyPath, { force: true })
57 await fs.rm(dataDir, { recursive: true, force: true })
58 await fs.mkdir(dataDir, { recursive: true })
59
60 const openStarted = nowMicros()
61 const db = new PGlite(dataDir)
62 await db.waitReady
63 const server = new PGLiteSocketServer({
64 db,
65 host: '127.0.0.1',
66 port: 0,
67 maxConnections: 1,
68 })
69 await server.start()
70 const openMicros = elapsedMicros(openStarted)
71
72 const [host, port] = server.getServerConn().split(':')
73 const databaseUrl = `postgresql://postgres:postgres@${host}:${port}/postgres?sslmode=disable`
74 const ready = {
75 databaseUrl,
76 host,
77 port: Number(port),
78 dataDir,
79 openMicros,
80 node: process.version,
81 package: '@electric-sql/pglite',
82 version: '0.4.5',
83 socketPackage: '@electric-sql/pglite-socket',
84 socketVersion: '0.1.5',
85 }
86 await fs.writeFile(readyPath, `${JSON.stringify(ready, null, 2)}\n`)
87 console.log(`PGlite NodeFS socket ready at ${host}:${port}`)
88
89 let shuttingDown = false
90 const stop = async () => {
91 if (shuttingDown) {
92 return
93 }
94 shuttingDown = true
95 await server.stop()
96 await db.close()
97 }
98
99 await new Promise((resolve) => {
100 for (const signal of ['SIGINT', 'SIGTERM']) {
101 process.once(signal, () => {

Callers 1

Calls 8

nowMicrosFunction · 0.85
elapsedMicrosFunction · 0.85
stopFunction · 0.85
resolveMethod · 0.80
parseArgsFunction · 0.70
requireArgFunction · 0.70
joinMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected