diff --git a/src/server-side-rendering/register.js b/src/server-side-rendering/register.js index bb4ea61e7b..d50157140c 100644 --- a/src/server-side-rendering/register.js +++ b/src/server-side-rendering/register.js @@ -26,10 +26,14 @@ function _deregister(extension) { function _register(extension) { require.extensions[extension] = function(module, filename) { + const name = path.basename(filename) + .slice(0, -path.extname(filename).length) + .replace(/^\d/, '_$&') + .replace(/[^a-zA-Z0-9_$]/g, ''); + const options = Object.assign({}, compileOptions, { filename, - name: capitalise(path.basename(filename) - .replace(new RegExp(`${extension.replace('.', '\\.')}$`), '')), + name: capitalise(name), generate: 'ssr' }); diff --git a/test/helpers.js b/test/helpers.js index cc90e1f9bd..caf78894ce 100644 --- a/test/helpers.js +++ b/test/helpers.js @@ -175,11 +175,17 @@ function capitalise(str) { export function showOutput(cwd, options = {}, s = svelte) { glob.sync('**/*.html', { cwd }).forEach(file => { if (file[0] === '_') return; + + const name = path.basename(file) + .slice(0, -path.extname(file).length) + .replace(/^\d/, '_$&') + .replace(/[^a-zA-Z0-9_$]/g, ''); + const { code } = s.compile( fs.readFileSync(`${cwd}/${file}`, 'utf-8'), Object.assign(options, { filename: file, - name: capitalise(path.basename(file).replace(/\.html$/, '')) + name: capitalise(name) }) ); diff --git a/test/server-side-rendering/samples/sanitize-name/:foo.html b/test/server-side-rendering/samples/sanitize-name/:foo.html new file mode 100644 index 0000000000..5ed8b34a53 --- /dev/null +++ b/test/server-side-rendering/samples/sanitize-name/:foo.html @@ -0,0 +1 @@ +
foo!
\ No newline at end of file diff --git a/test/server-side-rendering/samples/sanitize-name/_expected.html b/test/server-side-rendering/samples/sanitize-name/_expected.html new file mode 100644 index 0000000000..5ed8b34a53 --- /dev/null +++ b/test/server-side-rendering/samples/sanitize-name/_expected.html @@ -0,0 +1 @@ +foo!
\ No newline at end of file diff --git a/test/server-side-rendering/samples/sanitize-name/main.html b/test/server-side-rendering/samples/sanitize-name/main.html new file mode 100644 index 0000000000..04e387bcfe --- /dev/null +++ b/test/server-side-rendering/samples/sanitize-name/main.html @@ -0,0 +1,9 @@ +