MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / withDataDirEnv

Function withDataDirEnv

apps/cli/src/runtime-compat-startup.test.ts:30–51  ·  view source on GitHub ↗
(userDataDir: string, fn: () => Promise<T> | T)

Source from the content-addressed store, hash-verified

28}
29
30async function withDataDirEnv<T>(userDataDir: string, fn: () => Promise<T> | T): Promise<T> {
31 const previousDataDir = process.env.CHATLAB_DATA_DIR
32 const previousOverride = process.env.CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR
33 process.env.CHATLAB_DATA_DIR = userDataDir
34 delete process.env.CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR
35
36 try {
37 return await fn()
38 } finally {
39 if (previousDataDir === undefined) {
40 delete process.env.CHATLAB_DATA_DIR
41 } else {
42 process.env.CHATLAB_DATA_DIR = previousDataDir
43 }
44
45 if (previousOverride === undefined) {
46 delete process.env.CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR
47 } else {
48 process.env.CHATLAB_ALLOW_INCOMPATIBLE_DATA_DIR = previousOverride
49 }
50 }
51}
52
53test('startHttpServer fails before serving when data directory requires a newer runtime', async () => {
54 const userDataDir = makeTempDir()

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected