{"version":3,"sources":["../../../src/build/turbopack-build/index.ts"],"sourcesContent":["import path from 'path'\n\nimport { Worker } from '../../lib/worker'\nimport { NextBuildContext } from '../build-context'\nimport { exportTraceState, recordTraceEvents } from '../../trace'\n\nasync function turbopackBuildWithWorker(): ReturnType<\n  typeof import('./impl').turbopackBuild\n> {\n  const nextBuildSpan = NextBuildContext.nextBuildSpan!\n  try {\n    const worker = new Worker(path.join(__dirname, 'impl.js'), {\n      exposedMethods: ['workerMain', 'waitForShutdown'],\n      enableWorkerThreads: true,\n      debuggerPortOffset: -1,\n      isolatedMemory: false,\n      numWorkers: 1,\n      maxRetries: 0,\n      forkOptions: {\n        env: {\n          NEXT_PRIVATE_BUILD_WORKER: '1',\n          ...(process.env.NEXT_CPU_PROF\n            ? {\n                NEXT_CPU_PROF: '1',\n                NEXT_CPU_PROF_DIR: process.env.NEXT_CPU_PROF_DIR,\n                __NEXT_PRIVATE_CPU_PROFILE: 'build-turbopack',\n              }\n            : undefined),\n        },\n      },\n    }) as Worker & typeof import('./impl')\n    const {\n      nextBuildSpan: _nextBuildSpan,\n      // Config is not serializable and is loaded in the worker.\n      config: _config,\n      ...prunedBuildContext\n    } = NextBuildContext\n    const { buildTraceContext, duration } = await worker.workerMain({\n      buildContext: prunedBuildContext,\n      traceState: {\n        ...exportTraceState(),\n        defaultParentSpanId: nextBuildSpan.getId(),\n        shouldSaveTraceEvents: true,\n      },\n    })\n\n    return {\n      // destroy worker when Turbopack has shutdown so it's not sticking around using memory\n      // We need to wait for shutdown to make sure filesystem cache is flushed\n      shutdownPromise: worker.waitForShutdown().then(({ debugTraceEvents }) => {\n        if (debugTraceEvents) {\n          recordTraceEvents(debugTraceEvents)\n        }\n        worker.end()\n      }),\n      buildTraceContext,\n      duration,\n    }\n  } catch (err: any) {\n    // When the error is a serialized `Error` object we need to recreate the `Error` instance\n    // in order to keep the consistent error reporting behavior.\n    if (err.type === 'Error') {\n      const error = new Error(err.message)\n      if (err.name) {\n        error.name = err.name\n      }\n      if (err.cause) {\n        error.cause = err.cause\n      }\n      error.message = err.message\n      error.stack = err.stack\n      throw error\n    }\n    throw err\n  }\n}\n\nexport function turbopackBuild(\n  withWorker: boolean\n): ReturnType<typeof import('./impl').turbopackBuild> {\n  const nextBuildSpan = NextBuildContext.nextBuildSpan!\n  return nextBuildSpan.traceChild('run-turbopack').traceAsyncFn(async () => {\n    if (withWorker) {\n      return await turbopackBuildWithWorker()\n    } else {\n      const build = (require('./impl') as typeof import('./impl'))\n        .turbopackBuild\n      return await build()\n    }\n  })\n}\n"],"names":["turbopackBuild","turbopackBuildWithWorker","nextBuildSpan","NextBuildContext","worker","Worker","path","join","__dirname","exposedMethods","enableWorkerThreads","debuggerPortOffset","isolatedMemory","numWorkers","maxRetries","forkOptions","env","NEXT_PRIVATE_BUILD_WORKER","process","NEXT_CPU_PROF","NEXT_CPU_PROF_DIR","__NEXT_PRIVATE_CPU_PROFILE","undefined","_nextBuildSpan","config","_config","prunedBuildContext","buildTraceContext","duration","workerMain","buildContext","traceState","exportTraceState","defaultParentSpanId","getId","shouldSaveTraceEvents","shutdownPromise","waitForShutdown","then","debugTraceEvents","recordTraceEvents","end","err","type","error","Error","message","name","cause","stack","withWorker","traceChild","traceAsyncFn","build","require"],"mappings":";;;;+BA6EgBA;;;eAAAA;;;6DA7EC;wBAEM;8BACU;uBACmB;;;;;;AAEpD,eAAeC;IAGb,MAAMC,gBAAgBC,8BAAgB,CAACD,aAAa;IACpD,IAAI;QACF,MAAME,SAAS,IAAIC,cAAM,CAACC,aAAI,CAACC,IAAI,CAACC,WAAW,YAAY;YACzDC,gBAAgB;gBAAC;gBAAc;aAAkB;YACjDC,qBAAqB;YACrBC,oBAAoB,CAAC;YACrBC,gBAAgB;YAChBC,YAAY;YACZC,YAAY;YACZC,aAAa;gBACXC,KAAK;oBACHC,2BAA2B;oBAC3B,GAAIC,QAAQF,GAAG,CAACG,aAAa,GACzB;wBACEA,eAAe;wBACfC,mBAAmBF,QAAQF,GAAG,CAACI,iBAAiB;wBAChDC,4BAA4B;oBAC9B,IACAC,SAAS;gBACf;YACF;QACF;QACA,MAAM,EACJpB,eAAeqB,cAAc,EAC7B,0DAA0D;QAC1DC,QAAQC,OAAO,EACf,GAAGC,oBACJ,GAAGvB,8BAAgB;QACpB,MAAM,EAAEwB,iBAAiB,EAAEC,QAAQ,EAAE,GAAG,MAAMxB,OAAOyB,UAAU,CAAC;YAC9DC,cAAcJ;YACdK,YAAY;gBACV,GAAGC,IAAAA,uBAAgB,GAAE;gBACrBC,qBAAqB/B,cAAcgC,KAAK;gBACxCC,uBAAuB;YACzB;QACF;QAEA,OAAO;YACL,sFAAsF;YACtF,wEAAwE;YACxEC,iBAAiBhC,OAAOiC,eAAe,GAAGC,IAAI,CAAC,CAAC,EAAEC,gBAAgB,EAAE;gBAClE,IAAIA,kBAAkB;oBACpBC,IAAAA,wBAAiB,EAACD;gBACpB;gBACAnC,OAAOqC,GAAG;YACZ;YACAd;YACAC;QACF;IACF,EAAE,OAAOc,KAAU;QACjB,yFAAyF;QACzF,4DAA4D;QAC5D,IAAIA,IAAIC,IAAI,KAAK,SAAS;YACxB,MAAMC,QAAQ,qBAAsB,CAAtB,IAAIC,MAAMH,IAAII,OAAO,GAArB,qBAAA;uBAAA;4BAAA;8BAAA;YAAqB;YACnC,IAAIJ,IAAIK,IAAI,EAAE;gBACZH,MAAMG,IAAI,GAAGL,IAAIK,IAAI;YACvB;YACA,IAAIL,IAAIM,KAAK,EAAE;gBACbJ,MAAMI,KAAK,GAAGN,IAAIM,KAAK;YACzB;YACAJ,MAAME,OAAO,GAAGJ,IAAII,OAAO;YAC3BF,MAAMK,KAAK,GAAGP,IAAIO,KAAK;YACvB,MAAML;QACR;QACA,MAAMF;IACR;AACF;AAEO,SAAS1C,eACdkD,UAAmB;IAEnB,MAAMhD,gBAAgBC,8BAAgB,CAACD,aAAa;IACpD,OAAOA,cAAciD,UAAU,CAAC,iBAAiBC,YAAY,CAAC;QAC5D,IAAIF,YAAY;YACd,OAAO,MAAMjD;QACf,OAAO;YACL,MAAMoD,QAAQ,AAACC,QAAQ,UACpBtD,cAAc;YACjB,OAAO,MAAMqD;QACf;IACF;AACF","ignoreList":[0]}