MCPcopy Create free account
hub / github.com/CashScript/cashscript / generateSourceMap

Function generateSourceMap

packages/utils/src/source-map.ts:28–80  ·  view source on GitHub ↗
(locationData: FullLocationData)

Source from the content-addressed store, hash-verified

26 *
27 */
28export function generateSourceMap(locationData: FullLocationData): string {
29 let prevStartLine = 0;
30 let prevStartColumn = 0;
31 let prevEndLine = 0;
32 let prevEndColumn = 0;
33 let prevHint = PositionHint.START;
34
35 return locationData.map(({ location, positionHint }: SingleLocationData) => {
36 const prevStartLineString = prevStartLine === location.start.line ? '' : String(location.start.line);
37 prevStartLine = location.start.line;
38
39 const prevStartColumnString = prevStartColumn === location.start.column ? '' : String(location.start.column);
40 prevStartColumn = location.start.column;
41
42 const prevEndLineString = prevEndLine === location.end.line ? '' : String(location.end.line);
43 prevEndLine = location.end.line;
44
45 const prevEndColumnString = prevEndColumn === location.end.column ? '' : String(location.end.column);
46 prevEndColumn = location.end.column;
47
48 const hint = positionHint ?? PositionHint.START;
49 const prevHintString = prevHint === hint ? '' : String(hint);
50 prevHint = hint;
51
52 let result = '';
53 if (prevStartLineString) {
54 result += prevStartLineString;
55 }
56
57 result += ':';
58 if (prevStartColumnString) {
59 result += prevStartColumnString;
60 }
61
62 result += ':';
63 if (prevEndLineString) {
64 result += prevEndLineString;
65 }
66
67 result += ':';
68 if (prevEndColumnString) {
69 result += prevEndColumnString;
70 }
71
72 result += ':';
73 if (prevHintString) {
74 result += prevHintString;
75 }
76
77 result = result.replace(/:*$/, '');
78 return result;
79 }).join(';');
80}
81
82export const sourceMapToLocationData = (sourceMap: string): FullLocationData => {
83 let prevStartLine = 0;

Callers 3

compileStringFunction · 0.90
visitSourceFileMethod · 0.90
source-map.test.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected