| 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";
const Source = require("./Source");
class CachedSource extends Source {
constructor(source) {
super();
this._source = source;
this._cachedSource = undefined;
this._cachedSize = undefined;
this._cachedMaps = {};
if(source.node) this.node = function(options) {
return this._source.node(options);
};
if(source.listMap) this.listMap = function(options) {
return this._source.listMap(options);
};
}
source() {
if(typeof this._cachedSource !== "undefined") return this._cachedSource;
return this._cachedSource = this._source.source();
}
size() {
if(typeof this._cachedSize !== "undefined") return this._cachedSize;
if(typeof this._cachedSource !== "undefined") {
if(Buffer.from.length === 1) return new Buffer(this._cachedSource).length;
return this._cachedSize = Buffer.byteLength(this._cachedSource);
}
return this._cachedSize = this._source.size();
}
sourceAndMap(options) {
const key = JSON.stringify(options);
if(typeof this._cachedSource !== "undefined" && key in this._cachedMaps)
return {
source: this._cachedSource,
map: this._cachedMaps[key]
};
else if(typeof this._cachedSource !== "undefined") {
return {
source: this._cachedSource,
map: this._cachedMaps[key] = this._source.map(options)
};
} else if(key in this._cachedMaps) {
return {
source: this._cachedSource = this._source.source(),
map: this._cachedMaps[key]
};
}
const result = this._source.sourceAndMap(options);
this._cachedSource = result.source;
this._cachedMaps[key] = result.map;
return {
source: this._cachedSource,
map: this._cachedMaps[key]
};
}
map(options) {
if(!options) options = {};
const key = JSON.stringify(options);
if(key in this._cachedMaps)
return this._cachedMaps[key];
return this._cachedMaps[key] = this._source.map();
}
updateHash(hash) {
this._source.updateHash(hash);
}
}
module.exports = CachedSource;