mirror of https://github.com/sveltejs/svelte
parent
c7f8749b92
commit
9583d72c92
@ -0,0 +1,20 @@
|
|||||||
|
import MagicString from 'magic-string';
|
||||||
|
|
||||||
|
export function magic_string_preprocessor_result(filename: string, src: MagicString) {
|
||||||
|
return {
|
||||||
|
code: src.toString(),
|
||||||
|
map: src.generateMap({
|
||||||
|
source: filename,
|
||||||
|
hires: true,
|
||||||
|
includeContent: false
|
||||||
|
})
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function magic_string_replace_all(src: MagicString, search: string, replace: string) {
|
||||||
|
let idx = src.original.indexOf(search);
|
||||||
|
if (idx == -1) throw new Error('search not found in src');
|
||||||
|
do {
|
||||||
|
src.overwrite(idx, idx + search.length, replace, { storeName: true });
|
||||||
|
} while ((idx = src.original.indexOf(search, idx + 1)) != -1);
|
||||||
|
}
|
@ -1,18 +1,12 @@
|
|||||||
import MagicString from 'magic-string';
|
import MagicString from 'magic-string';
|
||||||
|
import { magic_string_preprocessor_result, magic_string_replace_all } from '../../helpers';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
preprocess: {
|
preprocess: {
|
||||||
markup: ({ content, filename }) => {
|
markup: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('baritone');
|
magic_string_replace_all(src, 'baritone', 'bar');
|
||||||
src.overwrite(idx, idx+'baritone'.length, 'bar');
|
return magic_string_preprocessor_result(filename, src);
|
||||||
return {
|
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateDecodedMap({
|
|
||||||
source: filename,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,48 +1,25 @@
|
|||||||
import MagicString from 'magic-string';
|
import MagicString from 'magic-string';
|
||||||
|
import { magic_string_preprocessor_result, magic_string_replace_all } from '../../helpers';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
preprocess: {
|
preprocess: {
|
||||||
markup: ({ content, filename }) => {
|
markup: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('baritone');
|
magic_string_replace_all(src, 'baritone', 'bar');
|
||||||
src.overwrite(idx, idx + 'baritone'.length, 'bar');
|
magic_string_replace_all(src, '--bazitone', '--baz');
|
||||||
|
return magic_string_preprocessor_result(filename, src);
|
||||||
const css_idx = content.indexOf('--bazitone');
|
|
||||||
src.overwrite(css_idx, css_idx + '--bazitone'.length, '--baz');
|
|
||||||
return {
|
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateDecodedMap({
|
|
||||||
source: filename,
|
|
||||||
hires: true,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
script: ({ content, filename }) => {
|
script: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('bar');
|
const idx = content.indexOf('bar');
|
||||||
src.prependLeft(idx, ' ');
|
src.prependLeft(idx, ' ');
|
||||||
return {
|
return magic_string_preprocessor_result(filename, src);
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateDecodedMap({
|
|
||||||
source: filename,
|
|
||||||
hires: true,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
style: ({ content, filename }) => {
|
style: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('--baz');
|
const idx = content.indexOf('--baz');
|
||||||
src.prependLeft(idx, ' ');
|
src.prependLeft(idx, ' ');
|
||||||
return {
|
return magic_string_preprocessor_result(filename, src);
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateDecodedMap({
|
|
||||||
source: filename,
|
|
||||||
hires: true,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,19 +1,12 @@
|
|||||||
import MagicString from 'magic-string';
|
import MagicString from 'magic-string';
|
||||||
|
import { magic_string_preprocessor_result, magic_string_replace_all } from '../../helpers';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
preprocess: {
|
preprocess: {
|
||||||
script: ({ content, filename }) => {
|
script: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('baritone');
|
magic_string_replace_all(src, 'baritone', 'bar');
|
||||||
src.overwrite(idx, idx+'baritone'.length, 'bar');
|
return magic_string_preprocessor_result(filename, src);
|
||||||
return {
|
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateMap({
|
|
||||||
source: filename,
|
|
||||||
hires: true,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -1,19 +1,12 @@
|
|||||||
import MagicString from 'magic-string';
|
import MagicString from 'magic-string';
|
||||||
|
import { magic_string_preprocessor_result, magic_string_replace_all } from '../../helpers';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
preprocess: {
|
preprocess: {
|
||||||
style: ({ content, filename }) => {
|
style: ({ content, filename }) => {
|
||||||
const src = new MagicString(content);
|
const src = new MagicString(content);
|
||||||
const idx = content.indexOf('baritone');
|
magic_string_replace_all(src, 'baritone', 'bar');
|
||||||
src.overwrite(idx, idx+'baritone'.length, 'bar');
|
return magic_string_preprocessor_result(filename, src);
|
||||||
return {
|
|
||||||
code: src.toString(),
|
|
||||||
map: src.generateMap({
|
|
||||||
source: filename,
|
|
||||||
hires: true,
|
|
||||||
includeContent: false
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in new issue