rollup-plugin-sourcemaps
Advanced tools
Comparing version 0.1.1 to 0.2.0
# Changelog | ||
## 0.1.1 | ||
* Fix inline source maps not being detected | ||
## 0.1.0 | ||
* First public release 🎉 |
import _regeneratorRuntime from 'babel-runtime/regenerator'; | ||
import _slicedToArray from 'babel-runtime/helpers/slicedToArray'; | ||
import _asyncToGenerator from 'babel-runtime/helpers/asyncToGenerator'; | ||
import { createFilter } from 'rollup-pluginutils'; | ||
import { dirname, resolve } from 'path'; | ||
import { resolveSourceMap } from 'source-map-resolve'; | ||
import { readFile } from 'fs'; | ||
@@ -28,9 +27,4 @@ import _Promise from 'babel-runtime/core-js/promise'; | ||
var readFileAsync = promisify(readFile); | ||
var resolveSourceMapAsync = promisify(resolveSourceMap); | ||
// Borrowed from https://github.com/webpack/source-map-loader | ||
var baseRegex = '\\s*[@#]\\s*sourceMappingURL\\s*=\\s*([^\\s]*)'; | ||
var regex1 = new RegExp('/\\*' + baseRegex + '\\s*\\*/'); // Matches /* ... */ comments | ||
var regex2 = new RegExp('//' + baseRegex + '($|\n|\r\n?)'); // Matches // .... comments | ||
var regexDataUrl = /data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,(.+)/i; // Matches data urls | ||
function sourceMapsPlugin() { | ||
@@ -49,3 +43,3 @@ var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; | ||
return _asyncToGenerator(_regeneratorRuntime.mark(function _callee() { | ||
var code, match, _match, sourceMapComment, sourceMapURL, dataUrlMatch, rawMap, _dataUrlMatch, dataUrl, mimeType, _dataUrlMatch$, charset, _dataUrlMatch$2, encoding, data, sourceMapPath, map; | ||
var code, sourceMap, _sourceMap, map; | ||
@@ -80,98 +74,33 @@ return _regeneratorRuntime.wrap(function _callee$(_context) { | ||
case 12: | ||
sourceMap = void 0; | ||
_context.prev = 13; | ||
_context.next = 16; | ||
return resolveSourceMapAsync(code, id, readFile); | ||
// Check for source map comments | ||
match = regex1.exec(code) || regex2.exec(code); | ||
case 16: | ||
sourceMap = _context.sent; | ||
_context.next = 23; | ||
break; | ||
// No source map detected, return code | ||
case 19: | ||
_context.prev = 19; | ||
_context.t1 = _context['catch'](13); | ||
if (!(match === null)) { | ||
_context.next = 15; | ||
break; | ||
} | ||
console.error('rollup-plugin-sourcemaps: Failed resolving source map from ' + id + ': ' + _context.t1); | ||
return _context.abrupt('return', code); | ||
case 15: | ||
_match = _slicedToArray(match, 2); | ||
sourceMapComment = _match[0]; | ||
sourceMapURL = _match[1]; | ||
// Remove the source map comment, and make sure we don't return an empty string | ||
code = code.replace(sourceMapComment, '') || '\n'; | ||
// Check if the source map is inlined, i.e. it uses a data url | ||
dataUrlMatch = regexDataUrl.exec(sourceMapURL); | ||
rawMap = void 0; | ||
if (!(dataUrlMatch !== null)) { | ||
_context.next = 40; | ||
case 23: | ||
if (!(sourceMap === null)) { | ||
_context.next = 25; | ||
break; | ||
} | ||
/* eslint-disable no-unused-vars */ | ||
_dataUrlMatch = _slicedToArray(dataUrlMatch, 5); | ||
dataUrl = _dataUrlMatch[0]; | ||
mimeType = _dataUrlMatch[1]; | ||
_dataUrlMatch$ = _dataUrlMatch[2]; | ||
charset = _dataUrlMatch$ === undefined ? 'utf8' : _dataUrlMatch$; | ||
_dataUrlMatch$2 = _dataUrlMatch[3]; | ||
encoding = _dataUrlMatch$2 === undefined ? 'base64' : _dataUrlMatch$2; | ||
data = _dataUrlMatch[4]; | ||
/* eslint-enable */ | ||
_context.prev = 30; | ||
rawMap = new Buffer(data, encoding).toString(charset); | ||
_context.next = 38; | ||
break; | ||
case 34: | ||
_context.prev = 34; | ||
_context.t1 = _context['catch'](30); | ||
console.error('rollup-plugin-sourcemaps: Failed parsing data url: ' + _context.t1); | ||
return _context.abrupt('return', code); | ||
case 38: | ||
_context.next = 51; | ||
break; | ||
case 40: | ||
sourceMapPath = resolve(dirname(id), sourceMapURL); | ||
_context.prev = 41; | ||
_context.next = 44; | ||
return readFileAsync(sourceMapPath, 'utf8'); | ||
case 44: | ||
rawMap = _context.sent; | ||
_context.next = 51; | ||
break; | ||
case 47: | ||
_context.prev = 47; | ||
_context.t2 = _context['catch'](41); | ||
console.error('rollup-plugin-sourcemaps: Could not open source map: ' + _context.t2); | ||
return _context.abrupt('return', code); | ||
case 51: | ||
map = void 0; | ||
_context.prev = 52; | ||
map = JSON.parse(rawMap); | ||
_context.next = 60; | ||
break; | ||
case 56: | ||
_context.prev = 56; | ||
_context.t3 = _context['catch'](52); | ||
console.error('rollup-plugin-sourcemaps: Failed parsing raw source map from ' + id + ': ' + _context.t3); | ||
return _context.abrupt('return', code); | ||
case 60: | ||
case 25: | ||
_sourceMap = sourceMap; | ||
map = _sourceMap.map; | ||
return _context.abrupt('return', { code: code, map: map }); | ||
case 61: | ||
case 28: | ||
case 'end': | ||
@@ -181,3 +110,3 @@ return _context.stop(); | ||
} | ||
}, _callee, _this, [[3, 9], [30, 34], [41, 47], [52, 56]]); | ||
}, _callee, _this, [[3, 9], [13, 19]]); | ||
}))(); | ||
@@ -184,0 +113,0 @@ } |
@@ -6,6 +6,5 @@ 'use strict'; | ||
var _regeneratorRuntime = _interopDefault(require('babel-runtime/regenerator')); | ||
var _slicedToArray = _interopDefault(require('babel-runtime/helpers/slicedToArray')); | ||
var _asyncToGenerator = _interopDefault(require('babel-runtime/helpers/asyncToGenerator')); | ||
var rollupPluginutils = require('rollup-pluginutils'); | ||
var path = require('path'); | ||
var sourceMapResolve = require('source-map-resolve'); | ||
var fs = require('fs'); | ||
@@ -33,9 +32,4 @@ var _Promise = _interopDefault(require('babel-runtime/core-js/promise')); | ||
var readFileAsync = promisify(fs.readFile); | ||
var resolveSourceMapAsync = promisify(sourceMapResolve.resolveSourceMap); | ||
// Borrowed from https://github.com/webpack/source-map-loader | ||
var baseRegex = '\\s*[@#]\\s*sourceMappingURL\\s*=\\s*([^\\s]*)'; | ||
var regex1 = new RegExp('/\\*' + baseRegex + '\\s*\\*/'); // Matches /* ... */ comments | ||
var regex2 = new RegExp('//' + baseRegex + '($|\n|\r\n?)'); // Matches // .... comments | ||
var regexDataUrl = /data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,(.+)/i; // Matches data urls | ||
function sourceMapsPlugin() { | ||
@@ -54,3 +48,3 @@ var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; | ||
return _asyncToGenerator(_regeneratorRuntime.mark(function _callee() { | ||
var code, match, _match, sourceMapComment, sourceMapURL, dataUrlMatch, rawMap, _dataUrlMatch, dataUrl, mimeType, _dataUrlMatch$, charset, _dataUrlMatch$2, encoding, data, sourceMapPath, map; | ||
var code, sourceMap, _sourceMap, map; | ||
@@ -85,98 +79,33 @@ return _regeneratorRuntime.wrap(function _callee$(_context) { | ||
case 12: | ||
sourceMap = void 0; | ||
_context.prev = 13; | ||
_context.next = 16; | ||
return resolveSourceMapAsync(code, id, fs.readFile); | ||
// Check for source map comments | ||
match = regex1.exec(code) || regex2.exec(code); | ||
case 16: | ||
sourceMap = _context.sent; | ||
_context.next = 23; | ||
break; | ||
// No source map detected, return code | ||
case 19: | ||
_context.prev = 19; | ||
_context.t1 = _context['catch'](13); | ||
if (!(match === null)) { | ||
_context.next = 15; | ||
break; | ||
} | ||
console.error('rollup-plugin-sourcemaps: Failed resolving source map from ' + id + ': ' + _context.t1); | ||
return _context.abrupt('return', code); | ||
case 15: | ||
_match = _slicedToArray(match, 2); | ||
sourceMapComment = _match[0]; | ||
sourceMapURL = _match[1]; | ||
// Remove the source map comment, and make sure we don't return an empty string | ||
code = code.replace(sourceMapComment, '') || '\n'; | ||
// Check if the source map is inlined, i.e. it uses a data url | ||
dataUrlMatch = regexDataUrl.exec(sourceMapURL); | ||
rawMap = void 0; | ||
if (!(dataUrlMatch !== null)) { | ||
_context.next = 40; | ||
case 23: | ||
if (!(sourceMap === null)) { | ||
_context.next = 25; | ||
break; | ||
} | ||
/* eslint-disable no-unused-vars */ | ||
_dataUrlMatch = _slicedToArray(dataUrlMatch, 5); | ||
dataUrl = _dataUrlMatch[0]; | ||
mimeType = _dataUrlMatch[1]; | ||
_dataUrlMatch$ = _dataUrlMatch[2]; | ||
charset = _dataUrlMatch$ === undefined ? 'utf8' : _dataUrlMatch$; | ||
_dataUrlMatch$2 = _dataUrlMatch[3]; | ||
encoding = _dataUrlMatch$2 === undefined ? 'base64' : _dataUrlMatch$2; | ||
data = _dataUrlMatch[4]; | ||
/* eslint-enable */ | ||
_context.prev = 30; | ||
rawMap = new Buffer(data, encoding).toString(charset); | ||
_context.next = 38; | ||
break; | ||
case 34: | ||
_context.prev = 34; | ||
_context.t1 = _context['catch'](30); | ||
console.error('rollup-plugin-sourcemaps: Failed parsing data url: ' + _context.t1); | ||
return _context.abrupt('return', code); | ||
case 38: | ||
_context.next = 51; | ||
break; | ||
case 40: | ||
sourceMapPath = path.resolve(path.dirname(id), sourceMapURL); | ||
_context.prev = 41; | ||
_context.next = 44; | ||
return readFileAsync(sourceMapPath, 'utf8'); | ||
case 44: | ||
rawMap = _context.sent; | ||
_context.next = 51; | ||
break; | ||
case 47: | ||
_context.prev = 47; | ||
_context.t2 = _context['catch'](41); | ||
console.error('rollup-plugin-sourcemaps: Could not open source map: ' + _context.t2); | ||
return _context.abrupt('return', code); | ||
case 51: | ||
map = void 0; | ||
_context.prev = 52; | ||
map = JSON.parse(rawMap); | ||
_context.next = 60; | ||
break; | ||
case 56: | ||
_context.prev = 56; | ||
_context.t3 = _context['catch'](52); | ||
console.error('rollup-plugin-sourcemaps: Failed parsing raw source map from ' + id + ': ' + _context.t3); | ||
return _context.abrupt('return', code); | ||
case 60: | ||
case 25: | ||
_sourceMap = sourceMap; | ||
map = _sourceMap.map; | ||
return _context.abrupt('return', { code: code, map: map }); | ||
case 61: | ||
case 28: | ||
case 'end': | ||
@@ -186,3 +115,3 @@ return _context.stop(); | ||
} | ||
}, _callee, _this, [[3, 9], [30, 34], [41, 47], [52, 56]]); | ||
}, _callee, _this, [[3, 9], [13, 19]]); | ||
}))(); | ||
@@ -189,0 +118,0 @@ } |
{ | ||
"name": "rollup-plugin-sourcemaps", | ||
"version": "0.1.1", | ||
"description": "Rollup plugin for grabbing source maps from sourceMappingsURLs", | ||
"version": "0.2.0", | ||
"description": "Rollup plugin for grabbing source maps from sourceMappingURLs", | ||
"author": "Max Davidson <davidsonmax@gmail.com>", | ||
@@ -47,3 +47,4 @@ "license": "MIT", | ||
"babel-runtime": "^6.9.2", | ||
"rollup-pluginutils": "^1.5.0" | ||
"rollup-pluginutils": "^1.5.0", | ||
"source-map-resolve": "^0.5.0" | ||
}, | ||
@@ -50,0 +51,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14844
3
184
+ Addedsource-map-resolve@^0.5.0
+ Addedatob@2.1.2(transitive)
+ Addeddecode-uri-component@0.2.2(transitive)
+ Addedresolve-url@0.2.1(transitive)
+ Addedsource-map-resolve@0.5.3(transitive)
+ Addedsource-map-url@0.4.1(transitive)
+ Addedurix@0.1.0(transitive)