Sha256: 153e95733fe50067aad7537e31452e8dffd5b0761c1c12b435cf4e19911fbcb7

Contents?: true

Size: 1.75 KB

Versions: 62

Compression:

Stored size: 1.75 KB

Contents

/*
	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 SourceMapNodeSource = require("./SourceMapNodeSource");

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, 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, sourceMap) {
	if(sourceMap) {
		if(typeof sourceMap === "string")
			sourceMap = JSON.parse(sourceMap);
		node = SourceNode.fromStringWithSourceMap(value, new SourceMapConsumer(sourceMap));
	} else {
		var lines = value.split("\n");
		var node = new SourceNode(null, null, null,
			lines.map(function(line, idx) {
				var pos = 0;
				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);
	}
	SourceMapNodeSource.call(this, node, name);
	this._value = value;
}

module.exports = OriginalSource;

OriginalSource.prototype = Object.create(SourceMapNodeSource.prototype);
OriginalSource.prototype.source = function() {
	return this._value;
};
OriginalSource.prototype.updateHash = function(hash) {
	hash.update(this._value);
	hash.update(this._name);
};

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
smock-0.1.268 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.267 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.266 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.265 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.264 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.263 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.262 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.261 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.260 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.259 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.258 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.256 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.255 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.254 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.253 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.252 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.251 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.250 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.249 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js
smock-0.1.247 node_modules/webpack/node_modules/webpack-core/lib/OriginalSource.js