uapte
This commit is contained in:
76
node_modules/gulp-sourcemaps/src/utils.js
generated
vendored
Normal file
76
node_modules/gulp-sourcemaps/src/utils.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
'use strict';
|
||||
var path = require('path'),
|
||||
detectNewline = require('detect-newline');
|
||||
|
||||
function unixStylePath(filePath) {
|
||||
return filePath.split(path.sep).join('/');
|
||||
}
|
||||
|
||||
var PLUGIN_NAME = require('../package.json').name;
|
||||
|
||||
var urlRegex = /^(https?|webpack(-[^:]+)?):\/\//;
|
||||
|
||||
var debug = require('./debug').spawn('utils');
|
||||
/*
|
||||
So reusing the same ref for a regex (with global (g)) is from a poor decision in js.
|
||||
See http://stackoverflow.com/questions/10229144/bug-with-regexp-in-javascript-when-do-global-search
|
||||
|
||||
So we either need to use a new instance of a regex everywhere.
|
||||
*/
|
||||
var sourceMapUrlRegEx = function(){ return /\/\/\# sourceMappingURL\=.*/g;};
|
||||
|
||||
var commentFormatters = {
|
||||
css: function cssCommentFormatter(preLine, newline, url) {
|
||||
return preLine + "/*# sourceMappingURL=" + url + " */" + newline;
|
||||
},
|
||||
js: function jsCommentFormatter(preLine, newline, url) {
|
||||
return preLine + "//# sourceMappingURL=" + url + newline;
|
||||
},
|
||||
'default': function defaultFormatter() {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var getCommentFormatter = function (file) {
|
||||
var extension = file.relative.split('.').pop(),
|
||||
fileContents = file.contents.toString(),
|
||||
newline = detectNewline.graceful(fileContents || '');
|
||||
|
||||
var commentFormatter = commentFormatters.default;
|
||||
|
||||
if (file.sourceMap.preExistingComment) {
|
||||
commentFormatter = (commentFormatters[extension] || commentFormatter).bind(undefined, '', newline)
|
||||
debug(function () {
|
||||
return 'preExistingComment commentFormatter ' + commentFormatter.name;
|
||||
});
|
||||
} else {
|
||||
commentFormatter = (commentFormatters[extension] || commentFormatter).bind(undefined, newline, newline);
|
||||
}
|
||||
|
||||
debug(function () {
|
||||
return 'commentFormatter ' + commentFormatter.name;
|
||||
});
|
||||
return commentFormatter;
|
||||
};
|
||||
|
||||
var getInlinePreExisting = function(fileContent){
|
||||
if(sourceMapUrlRegEx().test(fileContent)){
|
||||
debug(function() { return 'has preExisting'; });
|
||||
return fileContent.match(sourceMapUrlRegEx())[0];
|
||||
}
|
||||
};
|
||||
|
||||
var exceptionToString = function (exception) {
|
||||
return exception.message || '';
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
unixStylePath: unixStylePath,
|
||||
PLUGIN_NAME: PLUGIN_NAME,
|
||||
urlRegex: urlRegex,
|
||||
sourceMapUrlRegEx: sourceMapUrlRegEx,
|
||||
getCommentFormatter: getCommentFormatter,
|
||||
getInlinePreExisting: getInlinePreExisting,
|
||||
exceptionToString: exceptionToString
|
||||
};
|
||||
Reference in New Issue
Block a user