mirror of https://github.com/sveltejs/svelte
parent
1073120a16
commit
cf600f7a9f
@ -0,0 +1,29 @@
|
||||
import MagicString from 'magic-string';
|
||||
|
||||
function replace(search, replace, content, src, options = {}) {
|
||||
let idx = -1;
|
||||
while ((idx = content.indexOf(search, idx + 1)) != -1) {
|
||||
src.overwrite(idx, idx + search.length, replace, options);
|
||||
}
|
||||
}
|
||||
|
||||
function result(src, filename) {
|
||||
return {
|
||||
code: src.toString(),
|
||||
map: src.generateDecodedMap({ // return decoded sourcemap
|
||||
source: filename,
|
||||
hires: true,
|
||||
includeContent: false
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export default {
|
||||
preprocess: {
|
||||
markup: ({ content, filename }) => {
|
||||
const src = new MagicString(content);
|
||||
replace('replace me', 'success', content, src);
|
||||
return result(src, filename);
|
||||
}
|
||||
}
|
||||
};
|
@ -0,0 +1,2 @@
|
||||
<h1>decoded-sourcemap</h1>
|
||||
<div>replace me</div>
|
@ -0,0 +1,19 @@
|
||||
export function test({ assert, input, preprocessed }) {
|
||||
|
||||
const expected = input.locate('replace me');
|
||||
|
||||
const start = preprocessed.locate('success');
|
||||
|
||||
const actualbar = preprocessed.mapConsumer.originalPositionFor({
|
||||
line: start.line + 1,
|
||||
column: start.column
|
||||
});
|
||||
|
||||
assert.deepEqual(actualbar, {
|
||||
source: 'input.svelte',
|
||||
name: null,
|
||||
line: expected.line + 1,
|
||||
column: expected.column
|
||||
});
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
import MagicString from 'magic-string';
|
||||
|
||||
function add(bundle, filename, source) {
|
||||
bundle.addSource({
|
||||
filename: filename,
|
||||
content: new MagicString(source)
|
||||
});
|
||||
}
|
||||
|
||||
function result(bundle, filename) {
|
||||
return {
|
||||
code: bundle.toString(),
|
||||
map: bundle.generateMap({
|
||||
file: filename,
|
||||
includeContent: true,
|
||||
hires: true
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
export default {
|
||||
preprocess: [
|
||||
{
|
||||
script: ({ content, filename }) => {
|
||||
const bundle = new MagicString.Bundle();
|
||||
|
||||
add(bundle, filename, content);
|
||||
add(bundle, 'foo.js', 'var answer = 42;');
|
||||
add(bundle, 'bar.js', 'console.log(answer);');
|
||||
|
||||
return result(bundle, filename);
|
||||
}
|
||||
},
|
||||
{
|
||||
script: ({ content, filename }) => {
|
||||
const bundle = new MagicString.Bundle();
|
||||
|
||||
add(bundle, filename, content);
|
||||
add(bundle, 'foo2.js', 'var answer2 = 84;');
|
||||
add(bundle, 'bar2.js', 'console.log(answer2);');
|
||||
|
||||
return result(bundle, filename);
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
@ -0,0 +1,4 @@
|
||||
<script>
|
||||
export let name;
|
||||
</script>
|
||||
<h1>sourcemap-sources</h1>
|
@ -0,0 +1,12 @@
|
||||
export function test({ assert, preprocessed, js, css }) {
|
||||
|
||||
const msg_expected = 'Transformation map 0 must have exactly one source file.';
|
||||
|
||||
assert.notEqual(preprocessed.error, undefined, 'expected preprocessed.error');
|
||||
|
||||
assert.equal(
|
||||
preprocessed.error.message.slice(0, msg_expected.length),
|
||||
msg_expected
|
||||
);
|
||||
|
||||
}
|
Loading…
Reference in new issue