MCPcopy
hub / github.com/webpack/webpack / encodeMappings

Function encodeMappings

lib/util/createMappings.js:69–115  ·  view source on GitHub ↗
(lines)

Source from the content-addressed store, hash-verified

67 * @returns {string} VLQ-encoded V3 mappings string
68 */
69const encodeMappings = (lines) => {
70 let prevSourceIndex = 0;
71 let prevOriginalLine = 0;
72 let prevOriginalColumn = 0;
73 let prevNameIndex = 0;
74
75 const encodedLines = [];
76
77 for (const line of lines) {
78 if (line === null || line === undefined) {
79 encodedLines.push("");
80 continue;
81 }
82
83 const segments = Array.isArray(line) ? line : [line];
84 let prevGeneratedColumn = 0;
85 const encodedSegments = [];
86
87 for (const segment of segments) {
88 const generatedColumn = segment.generatedColumn || 0;
89 let encoded = encodeVLQ(generatedColumn - prevGeneratedColumn);
90 prevGeneratedColumn = generatedColumn;
91
92 if (segment.sourceIndex !== undefined) {
93 const originalLine = /** @type {number} */ (segment.originalLine);
94 const originalColumn = /** @type {number} */ (segment.originalColumn);
95 encoded += encodeVLQ(segment.sourceIndex - prevSourceIndex);
96 encoded += encodeVLQ(originalLine - prevOriginalLine);
97 encoded += encodeVLQ(originalColumn - prevOriginalColumn);
98 prevSourceIndex = segment.sourceIndex;
99 prevOriginalLine = originalLine;
100 prevOriginalColumn = originalColumn;
101
102 if (segment.nameIndex !== undefined) {
103 encoded += encodeVLQ(segment.nameIndex - prevNameIndex);
104 prevNameIndex = segment.nameIndex;
105 }
106 }
107
108 encodedSegments.push(encoded);
109 }
110
111 encodedLines.push(encodedSegments.join(","));
112 }
113
114 return encodedLines.join(";");
115};
116
117module.exports.encodeMappings = encodeMappings;
118module.exports.encodeVLQ = encodeVLQ;

Callers 2

buildExportsSourceMapFunction · 0.85

Calls 3

encodeVLQFunction · 0.85
isArrayMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected