aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts')
-rw-r--r--vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts b/vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts
new file mode 100644
index 0000000..1da6af0
--- /dev/null
+++ b/vanilla/node_modules/@jridgewell/trace-mapping/src/by-source.ts
@@ -0,0 +1,41 @@
+import { COLUMN, SOURCES_INDEX, SOURCE_LINE, SOURCE_COLUMN } from './sourcemap-segment';
+import { sortComparator } from './sort';
+
+import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';
+
+export type Source = ReverseSegment[][];
+
+// Rebuilds the original source files, with mappings that are ordered by source line/column instead
+// of generated line/column.
+export default function buildBySources(
+ decoded: readonly SourceMapSegment[][],
+ memos: unknown[],
+): Source[] {
+ const sources: Source[] = memos.map(() => []);
+
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ if (seg.length === 1) continue;
+
+ const sourceIndex = seg[SOURCES_INDEX];
+ const sourceLine = seg[SOURCE_LINE];
+ const sourceColumn = seg[SOURCE_COLUMN];
+
+ const source = sources[sourceIndex];
+ const segs = (source[sourceLine] ||= []);
+ segs.push([sourceColumn, i, seg[COLUMN]]);
+ }
+ }
+
+ for (let i = 0; i < sources.length; i++) {
+ const source = sources[i];
+ for (let j = 0; j < source.length; j++) {
+ const line = source[j];
+ if (line) line.sort(sortComparator);
+ }
+ }
+
+ return sources;
+}