aboutsummaryrefslogtreecommitdiff
path: root/node_modules/concat-with-sourcemaps/index.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-10-10 03:43:44 +0200
commitabd94a7f5a50f43c797a11b53549ae48fff667c3 (patch)
treeab8ed457f65cdd72e13e0571d2975729428f1551 /node_modules/concat-with-sourcemaps/index.js
parenta0247c6a3fd6a09a41a7e35a3441324c4dcb58be (diff)
downloadwallet-core-abd94a7f5a50f43c797a11b53549ae48fff667c3.tar.xz
add node_modules to address #4364
Diffstat (limited to 'node_modules/concat-with-sourcemaps/index.js')
-rw-r--r--node_modules/concat-with-sourcemaps/index.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/node_modules/concat-with-sourcemaps/index.js b/node_modules/concat-with-sourcemaps/index.js
new file mode 100644
index 000000000..a46fa2386
--- /dev/null
+++ b/node_modules/concat-with-sourcemaps/index.js
@@ -0,0 +1,121 @@
+'use strict';
+var SourceMapGenerator = require('source-map').SourceMapGenerator;
+var SourceMapConsumer = require('source-map').SourceMapConsumer;
+
+function unixStylePath(filePath) {
+ return filePath.replace(/\\/g, '/');
+}
+
+function Concat(generateSourceMap, fileName, separator) {
+ this.lineOffset = 0;
+ this.columnOffset = 0;
+ this.sourceMapping = generateSourceMap;
+ this.contentParts = [];
+
+ if (separator === undefined) {
+ this.separator = new Buffer(0);
+ } else {
+ this.separator = new Buffer(separator);
+ }
+
+ if (this.sourceMapping) {
+ this._sourceMap = new SourceMapGenerator({file: unixStylePath(fileName)});
+ this.separatorLineOffset = 0;
+ this.separatorColumnOffset = 0;
+ var separatorString = this.separator.toString();
+ for (var i = 0; i < separatorString.length; i++) {
+ this.separatorColumnOffset++;
+ if (separatorString[i] === '\n') {
+ this.separatorLineOffset++;
+ this.separatorColumnOffset = 0;
+ }
+ }
+ }
+}
+
+Concat.prototype.add = function(filePath, content, sourceMap) {
+ filePath = filePath && unixStylePath(filePath);
+
+ if (!Buffer.isBuffer(content)) {
+ content = new Buffer(content);
+ }
+
+ if (this.contentParts.length !== 0) {
+ this.contentParts.push(this.separator);
+ }
+ this.contentParts.push(content);
+
+ if (this.sourceMapping) {
+ var contentString = content.toString();
+ var lines = contentString.split('\n').length;
+
+ if (Object.prototype.toString.call(sourceMap) === '[object String]')
+ sourceMap = JSON.parse(sourceMap);
+
+ if (sourceMap && sourceMap.mappings && sourceMap.mappings.length > 0) {
+ var upstreamSM = new SourceMapConsumer(sourceMap);
+ var _this = this;
+ upstreamSM.eachMapping(function(mapping) {
+ if (mapping.source) {
+ _this._sourceMap.addMapping({
+ generated: {
+ line: _this.lineOffset + mapping.generatedLine,
+ column: (mapping.generatedLine === 1 ? _this.columnOffset : 0) + mapping.generatedColumn
+ },
+ original: {
+ line: mapping.originalLine,
+ column: mapping.originalColumn
+ },
+ source: mapping.source,
+ name: mapping.name
+ });
+ }
+ });
+ if (upstreamSM.sourcesContent) {
+ upstreamSM.sourcesContent.forEach(function(sourceContent, i) {
+ _this._sourceMap.setSourceContent(upstreamSM.sources[i], sourceContent);
+ });
+ }
+ } else {
+ if (sourceMap && sourceMap.sources && sourceMap.sources.length > 0)
+ filePath = sourceMap.sources[0];
+ if (filePath) {
+ for (var i = 1; i <= lines; i++) {
+ this._sourceMap.addMapping({
+ generated: {
+ line: this.lineOffset + i,
+ column: (i === 1 ? this.columnOffset : 0)
+ },
+ original: {
+ line: i,
+ column: 0
+ },
+ source: filePath
+ });
+ }
+ if (sourceMap && sourceMap.sourcesContent)
+ this._sourceMap.setSourceContent(filePath, sourceMap.sourcesContent[0]);
+ }
+ }
+ if (lines > 1)
+ this.columnOffset = 0;
+ if (this.separatorLineOffset === 0)
+ this.columnOffset += contentString.length - Math.max(0, contentString.lastIndexOf('\n')+1);
+ this.columnOffset += this.separatorColumnOffset;
+ this.lineOffset += lines - 1 + this.separatorLineOffset;
+ }
+};
+
+Object.defineProperty(Concat.prototype, 'content', {
+ get: function content() {
+ return Buffer.concat(this.contentParts);
+ }
+});
+
+Object.defineProperty(Concat.prototype, 'sourceMap', {
+ get: function sourceMap() {
+ return this._sourceMap ? this._sourceMap.toString() : undefined;
+ }
+});
+
+module.exports = Concat;