Team Ai
Apppublic

sanket3280/code-execution

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
index.js48 linesDownload Raw Back to execution
1const arrayWrapper = require('../wrappers/array');2const linkedListWrapper = require('../wrappers/linkedList');3const treeWrapper = require('../wrappers/tree');4const graphWrapper = require('../wrappers/graph');5const stringWrapper = require('../wrappers/string');6const primitivesWrapper = require('../wrappers/primitives');7const stackWrapper = require('../wrappers/stack');8const queueWrapper = require('../wrappers/queue');9const dequeWrapper = require('../wrappers/deque');10const heapWrapper = require('../wrappers/heap');11const trieWrapper = require('../wrappers/trie');12 13function pickTopicWrappers(topic) {14  const t = (topic || '').toLowerCase();15  const wrappers = [];16  // Always include primitives17  wrappers.push(primitivesWrapper);18  if (t.includes('array')) wrappers.push(arrayWrapper);19  if (t.includes('linked') && t.includes('list')) wrappers.push(linkedListWrapper);20  if (t.includes('tree')) wrappers.push(treeWrapper);21  if (t.includes('graph')) wrappers.push(graphWrapper);22  if (t.includes('string')) wrappers.push(stringWrapper);23  if (t.includes('stack')) wrappers.push(stackWrapper);24  if (t.includes('queue')) wrappers.push(queueWrapper);25  if (t.includes('deque')) wrappers.push(dequeWrapper);26  if (t.includes('heap') || t.includes('priority')) wrappers.push(heapWrapper);27  if (t.includes('trie')) wrappers.push(trieWrapper);28  // Future: add linkedlist, tree, graph, string, math, etc.29  return wrappers;30}31 32function applyWrappers({ sourceCode, language, topic }) {33  const wrappers = pickTopicWrappers(topic);34  let processedSourceCode = sourceCode;35  let usedRunner = false;36  for (const wrap of wrappers) {37    const res = wrap({ sourceCode: processedSourceCode, language });38    if (!res) continue;39    processedSourceCode = res.sourceCode;40    usedRunner = usedRunner || !!res.usedRunner;41  }42  return { processedSourceCode, usedRunner };43}44 45module.exports = { applyWrappers };46 47 48