feat: clean server script before running

This commit is contained in:
Ayo 2023-10-14 20:58:12 +02:00
parent 60c650750c
commit 7dda73fef5
3 changed files with 43 additions and 1 deletions

View file

@ -75,7 +75,8 @@ function doSetUp(html: string) {
isServerScript isServerScript
) { ) {
const scripts = node.children.map((child) => child.value); const scripts = node.children.map((child) => child.value);
serverScripts.push(scripts.join(" ")); const script = cleanScript(scripts);
serverScripts.push(script);
} }
}); });
@ -117,3 +118,42 @@ function deleteServerScripts(html: string): string {
return renderSync(ast); return renderSync(ast);
} }
function cleanScript(scripts: string[]): string {
let script = scripts.map((s) => s.trim()).join(" ");
// remove comments
script = removeComments(script);
return script.replace(/\n/g, "").replace(/\s+/g, " ");
}
function isComment(node) {
return (
node.type === "Line" ||
node.type === "Block" ||
node.type === "BlockComment" ||
node.type === "LineComment"
);
}
function removeComments(script: string) {
const entries = [];
parseScript(script, { comment: true }, function (node, meta) {
if (isComment(node)) {
entries.push({
start: meta.start.offset,
end: meta.end.offset,
});
}
});
entries
.sort((a, b) => {
return b.end - a.end;
})
.forEach((n) => {
script = script.slice(0, n.start) + script.slice(n.end);
});
return script;
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -9,6 +9,8 @@
let greeting = "hello"; let greeting = "hello";
var count = sum(1, 247); var count = sum(1, 247);
// comment
greeting = "nope"; greeting = "nope";
function sum(x, y) { function sum(x, y) {