Projekt

Obecné

Profil

Stáhnout (2.51 KB) Statistiky
| Větev: | Revize:
1
"use strict";
2

    
3
exports.__esModule = true;
4

    
5
var _keys = require("babel-runtime/core-js/object/keys");
6

    
7
var _keys2 = _interopRequireDefault(_keys);
8

    
9
var _typeof2 = require("babel-runtime/helpers/typeof");
10

    
11
var _typeof3 = _interopRequireDefault(_typeof2);
12

    
13
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");
14

    
15
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16

    
17
var _sourceMap = require("source-map");
18

    
19
var _sourceMap2 = _interopRequireDefault(_sourceMap);
20

    
21
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22

    
23
var SourceMap = function () {
24
  function SourceMap(opts, code) {
25
    (0, _classCallCheck3.default)(this, SourceMap);
26

    
27
    this._cachedMap = null;
28
    this._code = code;
29
    this._opts = opts;
30
    this._rawMappings = [];
31
  }
32

    
33
  SourceMap.prototype.get = function get() {
34
    if (!this._cachedMap) {
35
      var map = this._cachedMap = new _sourceMap2.default.SourceMapGenerator({
36
        file: this._opts.sourceMapTarget,
37
        sourceRoot: this._opts.sourceRoot
38
      });
39

    
40
      var code = this._code;
41
      if (typeof code === "string") {
42
        map.setSourceContent(this._opts.sourceFileName, code);
43
      } else if ((typeof code === "undefined" ? "undefined" : (0, _typeof3.default)(code)) === "object") {
44
        (0, _keys2.default)(code).forEach(function (sourceFileName) {
45
          map.setSourceContent(sourceFileName, code[sourceFileName]);
46
        });
47
      }
48

    
49
      this._rawMappings.forEach(map.addMapping, map);
50
    }
51

    
52
    return this._cachedMap.toJSON();
53
  };
54

    
55
  SourceMap.prototype.getRawMappings = function getRawMappings() {
56
    return this._rawMappings.slice();
57
  };
58

    
59
  SourceMap.prototype.mark = function mark(generatedLine, generatedColumn, line, column, identifierName, filename) {
60
    if (this._lastGenLine !== generatedLine && line === null) return;
61

    
62
    if (this._lastGenLine === generatedLine && this._lastSourceLine === line && this._lastSourceColumn === column) {
63
      return;
64
    }
65

    
66
    this._cachedMap = null;
67
    this._lastGenLine = generatedLine;
68
    this._lastSourceLine = line;
69
    this._lastSourceColumn = column;
70

    
71
    this._rawMappings.push({
72
      name: identifierName || undefined,
73
      generated: {
74
        line: generatedLine,
75
        column: generatedColumn
76
      },
77
      source: line == null ? undefined : filename || this._opts.sourceFileName,
78
      original: line == null ? undefined : {
79
        line: line,
80
        column: column
81
      }
82
    });
83
  };
84

    
85
  return SourceMap;
86
}();
87

    
88
exports.default = SourceMap;
89
module.exports = exports["default"];
(4-4/5)