From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- node_modules/webpack-sources/lib/OriginalSource.js | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 node_modules/webpack-sources/lib/OriginalSource.js (limited to 'node_modules/webpack-sources/lib/OriginalSource.js') diff --git a/node_modules/webpack-sources/lib/OriginalSource.js b/node_modules/webpack-sources/lib/OriginalSource.js new file mode 100644 index 000000000..ac80db8a2 --- /dev/null +++ b/node_modules/webpack-sources/lib/OriginalSource.js @@ -0,0 +1,88 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +var SourceNode = require("source-map").SourceNode; +var SourceMapConsumer = require("source-map").SourceMapConsumer; +var SourceListMap = require("source-list-map").SourceListMap; +var Source = require("./Source"); + +function isSplitter(c) { + switch(c) { + case 10: // \n + case 13: // \r + case 59: // ; + case 123: // { + case 125: // } + return true; + } + return false; +} + +function _splitCode(code) { + var result = []; + var i = 0; + var j = 0; + for(; i < code.length; i++) { + if(isSplitter(code.charCodeAt(i))) { + while(isSplitter(code.charCodeAt(++i))); + result.push(code.substring(j, i)); + j = i; + } + } + if(j < code.length) + result.push(code.substr(j)); + return result; +} + +function OriginalSource(value, name) { + Source.call(this); + this._value = value; + this._name = name; +} + +module.exports = OriginalSource; + +OriginalSource.prototype = Object.create(Source.prototype); +OriginalSource.prototype.constructor = OriginalSource; + +OriginalSource.prototype.source = function() { + return this._value; +}; + +require("./SourceAndMapMixin")(OriginalSource.prototype); + +OriginalSource.prototype.node = function(options) { + options = options || {}; + var sourceMap = this._sourceMap; + var value = this._value; + var name = this._name; + var lines = value.split("\n"); + var node = new SourceNode(null, null, null, + lines.map(function(line, idx) { + var pos = 0; + if(options.columns === false) { + var content = line + (idx != lines.length - 1 ? "\n" : ""); + return new SourceNode(idx + 1, 0, name, content); + } + return new SourceNode(null, null, null, + _splitCode(line + (idx != lines.length - 1 ? "\n" : "")).map(function(item) { + if(/^\s*$/.test(item)) return item; + var res = new SourceNode(idx + 1, pos, name, item); + pos += item.length; + return res; + }) + ); + }) + ); + node.setSourceContent(name, value); + return node; +}; + +OriginalSource.prototype.listMap = function(options) { + return new SourceListMap(this._value, this._name, this._value) +}; + +OriginalSource.prototype.updateHash = function(hash) { + hash.update(this._value); +}; -- cgit v1.2.3