Skip to content

Commit

Permalink
Fix sourcemap plugin (#1505)
Browse files Browse the repository at this point in the history
  • Loading branch information
drwpow authored Nov 6, 2020
1 parent 803e67c commit 77e6101
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ export function rollupPluginStripSourceMapping(): Plugin {
return {
name: 'snowpack:rollup-plugin-strip-source-mapping',
transform: (code) => ({
code: code.replace(/[^'"`]\/\/+#\s*sourceMappingURL=.+$/gm, ''),
code: code
// [a-zA-Z0-9-_\*?\.\/\&=+%]: valid URL characters (for sourcemaps)
.replace(/\/\/#\s*sourceMappingURL=[a-zA-Z0-9-_\*\?\.\/\&=+%\s]+$/gm, ''),
map: null,
}),
};
Expand Down
49 changes: 49 additions & 0 deletions test/rollup-plugins.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
const {
rollupPluginStripSourceMapping,
} = require('../esinstall/lib/rollup-plugins/rollup-plugin-strip-source-mapping.js');

describe('snowpack:rollup-plugin-strip-source-mapping', () => {
const tests = [
{
name: 'inline',
given: `console.log('foo');//# sourceMappingURL=js.map.js`,
expected: `console.log('foo');`,
},
{
name: 'end of file',
given: `console.log('foo');
//# sourceMappingURL=js.map.js`,
expected: `console.log('foo');
`,
},
{
name: 'middle of file',
given: `console.log('foo');
//# sourceMappingURL=js.map.js
console.log('bar');
//# sourceMappingURL=js.map.js`,
expected: `console.log('foo');
console.log('bar');
`,
},
{
name: 'inside string', // leave alone
given: `const myString ='//# sourceMappingURL=js.map.js';`,
expected: `const myString ='//# sourceMappingURL=js.map.js';`,
},
{
name: 'es-module-shim', // leave alone
given: ` sourceMappingResolved = \`\n//# sourceMappingURL=\` + resolveUrl(sourceMapping.slice(21), load.r);`,
expected: ` sourceMappingResolved = \`\n//# sourceMappingURL=\` + resolveUrl(sourceMapping.slice(21), load.r);`,
},
];

const {transform} = rollupPluginStripSourceMapping();

tests.forEach(({name, given, expected}) => {
it(name, () => {
expect(transform(given).code).toBe(expected);
});
});
});

1 comment on commit 77e6101

@vercel
Copy link

@vercel vercel bot commented on 77e6101 Nov 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.