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