| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.rewriteConsoleExpr = void 0;
- const magic_string_1 = __importDefault(require("magic-string"));
- const utils_1 = require("../utils");
- function rewriteConsoleExpr(method, id, filename, code, sourceMap = false) {
- filename = (0, utils_1.normalizePath)(filename);
- const re = /(console\.(log|info|debug|warn|error))\(([^)]+)\)/g;
- const locate = getLocator(code);
- const s = new magic_string_1.default(code);
- let match;
- while ((match = re.exec(code))) {
- const [, expr, type] = match;
- s.overwrite(match.index, match.index + expr.length + 1, method + `('${type}','at ${filename}:${locate(match.index).line + 1}',`);
- }
- return {
- code: s.toString(),
- map: sourceMap ? s.generateMap({ source: id, hires: true }) : null,
- };
- }
- exports.rewriteConsoleExpr = rewriteConsoleExpr;
- function getLocator(source) {
- const originalLines = source.split('\n');
- const lineOffsets = [];
- for (let i = 0, pos = 0; i < originalLines.length; i++) {
- lineOffsets.push(pos);
- pos += originalLines[i].length + 1;
- }
- return function locate(index) {
- let i = 0;
- let j = lineOffsets.length;
- while (i < j) {
- const m = (i + j) >> 1;
- if (index < lineOffsets[m]) {
- j = m;
- }
- else {
- i = m + 1;
- }
- }
- const line = i - 1;
- const column = index - lineOffsets[line];
- return { line, column };
- };
- }
|