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

Function withMachineJsonConsole

src/gep/cliContracts.js:830–878  ·  view source on GitHub ↗
(enabled, deps, fn)

Source from the content-addressed store, hash-verified

828}
829
830async function withMachineJsonConsole(enabled, deps, fn) {
831 if (!enabled) return fn();
832 const original = {
833 log: console.log,
834 info: console.info,
835 warn: console.warn,
836 error: console.error,
837 debug: console.debug,
838 stdoutWrite: process.stdout.write,
839 stderrWrite: process.stderr.write,
840 };
841 const hadOriginalStdoutWrite = Object.prototype.hasOwnProperty.call(deps, MACHINE_JSON_STDOUT_WRITE);
842 const previousOriginalStdoutWrite = deps[MACHINE_JSON_STDOUT_WRITE];
843 const write = (...args) => {
844 try { process.stderr.write(sanitizeText(util.format(...args), deps) + '\n'); } catch (_) {}
845 };
846 deps[MACHINE_JSON_STDOUT_WRITE] = original.stdoutWrite;
847 process.stdout.write = function (chunk, encoding, callback) {
848 const clean = sanitizeStderrChunk(chunk, encoding, deps);
849 if (typeof encoding === 'function') return original.stderrWrite.call(process.stderr, clean, encoding);
850 return original.stderrWrite.call(process.stderr, clean, encoding, callback);
851 };
852 process.stderr.write = function (chunk, encoding, callback) {
853 const clean = sanitizeStderrChunk(chunk, encoding, deps);
854 if (typeof encoding === 'function') return original.stderrWrite.call(process.stderr, clean, encoding);
855 return original.stderrWrite.call(process.stderr, clean, encoding, callback);
856 };
857 console.log = write;
858 console.info = write;
859 console.warn = write;
860 console.error = write;
861 console.debug = write;
862 try {
863 return await fn();
864 } finally {
865 console.log = original.log;
866 console.info = original.info;
867 console.warn = original.warn;
868 console.error = original.error;
869 console.debug = original.debug;
870 process.stdout.write = original.stdoutWrite;
871 process.stderr.write = original.stderrWrite;
872 if (hadOriginalStdoutWrite) {
873 deps[MACHINE_JSON_STDOUT_WRITE] = previousOriginalStdoutWrite;
874 } else {
875 delete deps[MACHINE_JSON_STDOUT_WRITE];
876 }
877 }
878}
879
880function classifyError(e, command) {
881 if (e instanceof ContractError) return { reason: e.reason, message: e.safeMessage, retryable: e.reason === 'network_error' };

Callers 2

runReuseCommandFunction · 0.85
runPublishCommandFunction · 0.85

Calls 2

sanitizeStderrChunkFunction · 0.85
fnFunction · 0.50

Tested by

no test coverage detected