{"ast":null,"code":"\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getStackFormattedLocation = exports.formatProjectFilePath = void 0;\nfunction formatProjectFilePath(projectRoot, file) {\n  if (file == null) {\n    return \"<unknown>\";\n  }\n  return pathRelativeToPath(file.replace(/\\\\/g, \"/\"), projectRoot.replace(/\\\\/g, \"/\")).replace(/\\?.*$/, \"\");\n}\nexports.formatProjectFilePath = formatProjectFilePath;\nfunction pathRelativeToPath(path, relativeTo) {\n  var sep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"/\";\n  var relativeToParts = relativeTo.split(sep);\n  var pathParts = path.split(sep);\n  var i = 0;\n  while (i < relativeToParts.length && i < pathParts.length) {\n    if (relativeToParts[i] !== pathParts[i]) {\n      break;\n    }\n    i++;\n  }\n  return pathParts.slice(i).join(sep);\n}\nfunction getStackFormattedLocation(projectRoot, frame) {\n  var column = frame.column != null && parseInt(String(frame.column), 10);\n  var location = formatProjectFilePath(projectRoot, frame.file) + (frame.lineNumber != null ? \":\" + frame.lineNumber + (column && !isNaN(column) ? \":\" + (column + 1) : \"\") : \"\");\n  return location;\n}\nexports.getStackFormattedLocation = getStackFormattedLocation;","map":{"version":3,"sources":["../../src/error-overlay/formatProjectFilePath.ts"],"names":[],"mappings":";;;;;;AAIA,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,IAAoB,EAAA;EAEpB,IAAI,IAAI,IAAI,IAAI,EAAE;IAChB,OAAO,WAAW;EACnB;EAED,OAAO,kBAAkB,CACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EACxB,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAChC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACxB;AAZA,OAAA,CAAA,qBAAA,GAAA,qBAAA;AAcA,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAW;EAAA,IAAT,GAAG,GAAA,SAAA,CAAA,MAAA,QAAA,SAAA,QAAA,SAAA,GAAA,SAAA,MAAG,GAAG;EACrE,IAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;EAC7C,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;EACjC,IAAI,CAAC,GAAG,CAAC;EACT,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE;IACzD,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;MACvC;IACD;IACD,CAAC,EAAE;EACJ;EACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC;AAEA,SAAgB,yBAAyB,CACvC,WAAmB,EACnB,KAAsB,EAAA;EAEtB,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;EACzE,IAAM,QAAQ,GACZ,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAC7C,KAAK,CAAC,UAAU,IAAI,IAAI,GACrB,GAAG,GACH,KAAK,CAAC,UAAU,IACf,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GACpD,EAAE,CAAC;EAET,OAAO,QAAQ;AACjB;AAdA,OAAA,CAAA,yBAAA,GAAA,yBAAA","sourcesContent":["import type { StackFrame } from \"stacktrace-parser\";\n\nexport type MetroStackFrame = StackFrame & { collapse?: boolean };\n\nexport function formatProjectFilePath(\n  projectRoot: string,\n  file?: string | null\n): string {\n  if (file == null) {\n    return \"<unknown>\";\n  }\n\n  return pathRelativeToPath(\n    file.replace(/\\\\/g, \"/\"),\n    projectRoot.replace(/\\\\/g, \"/\")\n  ).replace(/\\?.*$/, \"\");\n}\n\nfunction pathRelativeToPath(path: string, relativeTo: string, sep = \"/\") {\n  const relativeToParts = relativeTo.split(sep);\n  const pathParts = path.split(sep);\n  let i = 0;\n  while (i < relativeToParts.length && i < pathParts.length) {\n    if (relativeToParts[i] !== pathParts[i]) {\n      break;\n    }\n    i++;\n  }\n  return pathParts.slice(i).join(sep);\n}\n\nexport function getStackFormattedLocation(\n  projectRoot: string,\n  frame: MetroStackFrame\n) {\n  const column = frame.column != null && parseInt(String(frame.column), 10);\n  const location =\n    formatProjectFilePath(projectRoot, frame.file) +\n    (frame.lineNumber != null\n      ? \":\" +\n        frame.lineNumber +\n        (column && !isNaN(column) ? \":\" + (column + 1) : \"\")\n      : \"\");\n\n  return location;\n}\n"],"sourceRoot":""},"metadata":{},"sourceType":"script"}