Support exclusively special characters in component filenames. Fixes #7143.

pull/7664/head
Dane David 4 years ago
parent 3798808e74
commit b169edb5d2

@ -13,4 +13,10 @@ describe('get_name_from_filename', () => {
it('handles Windows filenames', () => { it('handles Windows filenames', () => {
assert.equal(get_name_from_filename('path\\to\\Widget.svelte'), 'Widget'); assert.equal(get_name_from_filename('path\\to\\Widget.svelte'), 'Widget');
}); });
it('handles special characters in filenames', () => {
assert.equal(get_name_from_filename('@.svelte'), '_');
assert.equal(get_name_from_filename('&.svelte'), '_');
assert.equal(get_name_from_filename('~.svelte'), '_');
});
}); });

@ -15,8 +15,8 @@ export default function get_name_from_filename(filename: string) {
.replace(/%/g, 'u') .replace(/%/g, 'u')
.replace(/\.[^.]+$/, '') .replace(/\.[^.]+$/, '')
.replace(/[^a-zA-Z_$0-9]+/g, '_') .replace(/[^a-zA-Z_$0-9]+/g, '_')
.replace(/^_/, '') .replace(/^_(?=.)/, '')
.replace(/_$/, '') .replace(/(?<=.)_$/, '')
.replace(/^(\d)/, '_$1'); .replace(/^(\d)/, '_$1');
if (!base) { if (!base) {

Loading…
Cancel
Save