sanket3280/code-execution
0
1module.exports = function arrayWrapper({ sourceCode, language }) {2 let prefix = '';3 switch (language) {4 case 'JAVASCRIPT_NODE':5 prefix = `6// Array helpers (JS)7function __formatArray(arr){return '[' + arr.join(',') + ']';}8const __origLog = console.log; console.log = (...args)=>{__origLog(...args.map(a=>Array.isArray(a)?__formatArray(a):a));};9`;10 break;11 case 'PYTHON3':12 case 'PYTHON3_8':13 prefix = `14# Array helpers (Python)15def __format_array(arr):16 return '[' + ','.join(map(str, arr)) + ']'17`;18 break;19 case 'JAVA':20 prefix = `21// Array helpers (Java)22class __Arr { static String fmt(int[] a){ StringBuilder sb=new StringBuilder("["); for(int i=0;i<a.length;i++){ if(i>0) sb.append(','); sb.append(a[i]); } return sb.append(']').toString(); } }23`;24 break;25 case 'CPP14':26 case 'CPP':27 prefix = `28// Array helpers (C++)29template <typename T> std::string __fmt_vec(const std::vector<T>& a){ std::ostringstream os; os<<'['; for(size_t i=0;i<a.size();++i){ if(i) os<<','; os<<a[i]; } os<<']'; return os.str(); }30`;31 break;32 case 'C':33 prefix = `34/* Array helpers (C) - formatting only */35`;36 break;37 case 'CSHARP':38 prefix = `39// Array helpers (C#)40static class __Arr { public static string Fmt<T>(System.Collections.Generic.IList<T> a){ return "["+string.Join(',', a)+"]"; } }41`;42 break;43 default:44 return { sourceCode, usedRunner: false };45 }46 return { sourceCode: prefix + sourceCode, usedRunner: language==='JAVASCRIPT_NODE' };47};48 