MCPcopy Create free account
hub / github.com/EvoMap/evolver / withEnv

Function withEnv

test/adapters.test.js:32–68  ·  view source on GitHub ↗
(patch, fn)

Source from the content-addressed store, hash-verified

30// the suite runs from inside a Claude Code / Cursor session, #590), then the
31// `patch` values are applied; everything is restored afterwards.
32function withEnv(patch, fn) {
33 const keys = [
34 'CLAUDECODE',
35 'CLAUDE_CODE_ENTRYPOINT',
36 'CLAUDE_PROJECT_DIR',
37 'CURSOR_TRACE_ID',
38 'CURSOR_SESSION_ID',
39 'CURSOR_PROJECT_DIR',
40 'CURSOR_AGENT',
41 'CODEX_THREAD_ID',
42 'CODEX_SHELL',
43 'CODEX_CI',
44 'CODEX_INTERNAL_ORIGINATOR_OVERRIDE',
45 'TERM_PROGRAM',
46 ...Object.keys(patch),
47 ];
48 const oldEnv = {};
49 for (const key of keys) {
50 oldEnv[key] = process.env[key];
51 delete process.env[key];
52 }
53 for (const [key, value] of Object.entries(patch)) {
54 if (value !== undefined) process.env[key] = value;
55 }
56
57 try {
58 return fn();
59 } finally {
60 for (const key of keys) {
61 if (oldEnv[key] === undefined) {
62 delete process.env[key];
63 } else {
64 process.env[key] = oldEnv[key];
65 }
66 }
67 }
68}
69
70function withHome(home, fn) {
71 const originalHome = os.homedir;

Callers 1

adapters.test.jsFile · 0.70

Calls 1

fnFunction · 0.70

Tested by

no test coverage detected