swc-load-failure.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.eventSwcLoadFailure = eventSwcLoadFailure;
  6. var _shared = require("../../trace/shared");
  7. var _packageJson = require("next/package.json");
  8. const EVENT_PLUGIN_PRESENT = "NEXT_SWC_LOAD_FAILURE";
  9. async function eventSwcLoadFailure(event) {
  10. const telemetry = _shared.traceGlobals.get("telemetry");
  11. // can't continue if telemetry isn't set
  12. if (!telemetry) return;
  13. let glibcVersion;
  14. let installedSwcPackages;
  15. try {
  16. var ref;
  17. // @ts-ignore
  18. glibcVersion = (ref = process.report) == null ? void 0 : ref.getReport().header.glibcVersionRuntime;
  19. } catch (_) {}
  20. try {
  21. const pkgNames = Object.keys(_packageJson.optionalDependencies || {}).filter((pkg)=>pkg.startsWith("@next/swc"));
  22. const installedPkgs = [];
  23. for (const pkg1 of pkgNames){
  24. try {
  25. const { version } = require(`${pkg1}/package.json`);
  26. installedPkgs.push(`${pkg1}@${version}`);
  27. } catch (_) {}
  28. }
  29. if (installedPkgs.length > 0) {
  30. installedSwcPackages = installedPkgs.sort().join(",");
  31. }
  32. } catch (_1) {}
  33. telemetry.record({
  34. eventName: EVENT_PLUGIN_PRESENT,
  35. payload: {
  36. nextVersion: _packageJson.version,
  37. glibcVersion,
  38. installedSwcPackages,
  39. arch: process.arch,
  40. platform: process.platform,
  41. nodeVersion: process.versions.node,
  42. wasm: event == null ? void 0 : event.wasm
  43. }
  44. });
  45. // ensure this event is flushed before process exits
  46. await telemetry.flush();
  47. }
  48. //# sourceMappingURL=swc-load-failure.js.map