| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/webpack-sources/lib/ |
Upload File : |
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
var Source = require("./Source");
var SourceNode = require("source-map").SourceNode;
var REPLACE_REGEX = /\n(?=.|\s)/g;
function cloneAndPrefix(node, prefix, append) {
if(typeof node === "string") {
var result = node.replace(REPLACE_REGEX, "\n" + prefix);
if(append.length > 0) result = append.pop() + result;
if(/\n$/.test(node)) append.push(prefix);
return result;
} else {
var newNode = new SourceNode(
node.line,
node.column,
node.source,
node.children.map(function(node) {
return cloneAndPrefix(node, prefix, append);
}),
node.name
);
newNode.sourceContents = node.sourceContents;
return newNode;
}
};
class PrefixSource extends Source {
constructor(prefix, source) {
super();
this._source = source;
this._prefix = prefix;
}
source() {
var node = typeof this._source === "string" ? this._source : this._source.source();
var prefix = this._prefix;
return prefix + node.replace(REPLACE_REGEX, "\n" + prefix);
}
node(options) {
var node = this._source.node(options);
var prefix = this._prefix;
var output = [];
var result = new SourceNode();
node.walkSourceContents(function(source, content) {
result.setSourceContent(source, content);
});
var needPrefix = true;
node.walk(function(chunk, mapping) {
var parts = chunk.split(/(\n)/);
for(var i = 0; i < parts.length; i += 2) {
var nl = i + 1 < parts.length;
var part = parts[i] + (nl ? "\n" : "");
if(part) {
if(needPrefix) {
output.push(prefix);
}
output.push(new SourceNode(mapping.line, mapping.column, mapping.source, part, mapping.name));
needPrefix = nl;
}
}
});
result.add(output);
return result;
}
listMap(options) {
var prefix = this._prefix;
var map = this._source.listMap(options);
return map.mapGeneratedCode(function(code) {
return prefix + code.replace(REPLACE_REGEX, "\n" + prefix);
});
}
updateHash(hash) {
if(typeof this._source === "string")
hash.update(this._source);
else
this._source.updateHash(hash);
if(typeof this._prefix === "string")
hash.update(this._prefix);
else
this._prefix.updateHash(hash);
}
}
require("./SourceAndMapMixin")(PrefixSource.prototype);
module.exports = PrefixSource;