UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

64 lines (59 loc) 1.79 kB
'use strict'; var chunk3ONWID2V_cjs = require('./chunk-3ONWID2V.cjs'); var Diff = require('diff-match-patch'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var Diff__default = /*#__PURE__*/_interopDefault(Diff); var dmp = new Diff__default.default(); function generateSourceMap(id, source, transpiled) { if (!transpiled) { return; } const diff = dmp.diff_main(source.toString(), transpiled); dmp.diff_cleanupSemantic(diff); let offset = 0; for (let index = 0; index < diff.length; index++) { if (diff[index]) { const [type, text] = diff[index]; const textLength = text.length; switch (type) { case 0: { offset += textLength; break; } case 1: { source.prependLeft(offset, text); break; } case -1: { const next = diff.at(index + 1); if (next && next[0] === 1) { const replaceText = next[1]; const firstNonWhitespaceIndexOfText = text.search(/\S/); const offsetStart = offset + Math.max(firstNonWhitespaceIndexOfText, 0); source.update(offsetStart, offset + textLength, replaceText); index += 1; } else { source.remove(offset, offset + textLength); } offset += textLength; break; } } } } if (!source.hasChanged()) { return; } return { code: source.toString(), map: source.generateMap({ source: id, file: `${id}.map`, includeContent: true }) }; } chunk3ONWID2V_cjs.__name(generateSourceMap, "generateSourceMap"); exports.generateSourceMap = generateSourceMap; //# sourceMappingURL=chunk-XX6K67MA.cjs.map //# sourceMappingURL=chunk-XX6K67MA.cjs.map