Tests and chores

pull/5754/head
dmitrage 5 years ago
parent 1c241dd1a8
commit 3830216b16

@ -211,8 +211,8 @@ export default async function preprocess(
const filename = (options && options.filename) || preprocessor.filename; // legacy
const dependencies = [];
// preprocess source must be relative to itself
const file_basename = filename && get_file_basename(filename);
// preprocess source must be relative to itself or equal null
const file_basename = filename == null ? null : get_file_basename(filename);
const preprocessors = preprocessor
? Array.isArray(preprocessor) ? preprocessor : [preprocessor]

@ -16,17 +16,17 @@ export function sourcemap_add_offset(
map: DecodedSourceMap, offset: SourceLocation, source_index: number
) {
if (map.mappings.length == 0) return;
// shift lines
for (let line = 0; line < map.mappings.length; line++) {
const segment_list = map.mappings[line];
for (let segment = 0; segment < segment_list.length; segment++) {
const seg = segment_list[segment];
// shift only segments that belong to component source file
if (seg.length >= 4 && seg[1] === source_index) {
// shift columns pointing at the first line
if (seg[1] === source_index) { // also ensures that seg.length >= 4
// shift column if it points at the first line
if (seg[2] === 0) {
seg[3] += offset.column;
}
// shift line
seg[2] += offset.line;
}
}
@ -121,8 +121,8 @@ export class StringWithSourcemap {
const segment_list = m2.mappings[line];
for (let segment = 0; segment < segment_list.length; segment++) {
const seg = segment_list[segment];
if (seg.length > 1) seg[1] = new_source_idx[seg[1]];
if (seg.length > 4) seg[4] = new_name_idx[seg[4]];
if (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];
if (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];
}
}
} else if (sources_idx_changed) {
@ -130,7 +130,7 @@ export class StringWithSourcemap {
const segment_list = m2.mappings[line];
for (let segment = 0; segment < segment_list.length; segment++) {
const seg = segment_list[segment];
if (seg.length > 1) seg[1] = new_source_idx[seg[1]];
if (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];
}
}
} else if (names_idx_changed) {
@ -138,7 +138,7 @@ export class StringWithSourcemap {
const segment_list = m2.mappings[line];
for (let segment = 0; segment < segment_list.length; segment++) {
const seg = segment_list[segment];
if (seg.length > 4) seg[4] = new_name_idx[seg[4]];
if (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];
}
}
}

@ -1,22 +0,0 @@
import MagicString from 'magic-string';
import { magic_string_preprocessor_result } from '../../helpers';
export default {
js_map_sources: [
'input.svelte'
],
preprocess: [
{
script: ({ content, filename }) => {
const s = new MagicString(content);
s.prepend('// This script code is approved\n');
return magic_string_preprocessor_result(filename, s);
},
style: ({ content, filename }) => {
const s = new MagicString(content);
s.prepend('/* This style code is approved */\n');
return magic_string_preprocessor_result(filename, s);
}
}
]
};

@ -1,19 +0,0 @@
<script>
import { onMount } from 'svelte';
let count = 0;
onMount(() => {
const id = setInterval(() => count++, 1000);
return () => clearInterval(id);
});
</script>
<style>
h1 {
color: orange;
}
</style>
<h1>Hello world!</h1>
<div>Counter value: {count}</div>

@ -1,9 +0,0 @@
import { assert_mapped } from '../../helpers';
export function test({ input, preprocessed }) {
assert_mapped({
code: '<h1>Hello world!</h1>',
input: input.locate,
preprocessed
});
}

@ -2,7 +2,7 @@ import { assert_mapped } from '../../helpers';
export function test({ input, preprocessed }) {
assert_mapped({
code: 'Target',
code: 'Target',
input: input.locate,
preprocessed
});

@ -0,0 +1,18 @@
import { magic_string_bundle } from '../../helpers';
export const EXTERNAL = 'span { --external-var: 1px; }';
export default {
js_map_sources: [],
css_map_sources: ['input.svelte', 'external.css'],
preprocess: [
{
style: ({ content, filename }) => {
return magic_string_bundle([
{ code: EXTERNAL, filename: 'external.css' },
{ code: content, filename }
]);
}
}
]
};

@ -0,0 +1,9 @@
<script>
// This block is here to offset style block
</script>
<style>
div { --component-var: 2px; }
</style>
<div><span>Text</span></div>

@ -0,0 +1,19 @@
import { assert_mapped } from '../../helpers';
import { EXTERNAL } from './_config';
export function test({ input, preprocessed }) {
// Part from component, should be with offset
assert_mapped({
code: '--component-var',
input: input.locate,
preprocessed
});
// Part from external file, should be without offset
assert_mapped({
filename: 'external.css',
code: '--external-var',
input: EXTERNAL,
preprocessed
});
}
Loading…
Cancel
Save