dev.ts, remove prevent default

This commit is contained in:
Theis Pieter Hollebeek 2025-10-15 11:59:06 +02:00
parent 0391e92bb3
commit 8555cea8a8
6 changed files with 180 additions and 7 deletions

View File

@ -3,6 +3,9 @@
"indentWidth": 4,
"lineWidth": 100
},
"tasks": {
"dev": "deno run -A dev.ts"
},
"exclude": ["./docs"],
"lib": ["dom", "dom.iterable", "dom.asynciterable", "deno.ns"]
}

114
deno.lock generated Normal file
View File

@ -0,0 +1,114 @@
{
"version": "5",
"specifiers": {
"jsr:@std/cli@^1.0.12": "1.0.13",
"jsr:@std/cli@^1.0.23": "1.0.23",
"jsr:@std/encoding@^1.0.10": "1.0.10",
"jsr:@std/encoding@^1.0.7": "1.0.7",
"jsr:@std/fmt@^1.0.5": "1.0.5",
"jsr:@std/fmt@^1.0.8": "1.0.8",
"jsr:@std/fs@^1.0.19": "1.0.19",
"jsr:@std/html@^1.0.3": "1.0.3",
"jsr:@std/html@^1.0.5": "1.0.5",
"jsr:@std/http@*": "1.0.13",
"jsr:@std/http@1.0.21": "1.0.21",
"jsr:@std/internal@^1.0.10": "1.0.12",
"jsr:@std/media-types@^1.1.0": "1.1.0",
"jsr:@std/net@^1.0.4": "1.0.4",
"jsr:@std/net@^1.0.6": "1.0.6",
"jsr:@std/path@^1.0.8": "1.0.8",
"jsr:@std/path@^1.1.2": "1.1.2",
"jsr:@std/streams@^1.0.13": "1.0.13",
"jsr:@std/streams@^1.0.9": "1.0.9"
},
"jsr": {
"@std/cli@1.0.13": {
"integrity": "5db2d95ab2dca3bca9fb6ad3c19908c314e93d6391c8b026725e4892d4615a69"
},
"@std/cli@1.0.23": {
"integrity": "bf95b7a9425ba2af1ae5a6359daf58c508f2decf711a76ed2993cd352498ccca"
},
"@std/encoding@1.0.7": {
"integrity": "f631247c1698fef289f2de9e2a33d571e46133b38d042905e3eac3715030a82d"
},
"@std/encoding@1.0.10": {
"integrity": "8783c6384a2d13abd5e9e87a7ae0520a30e9f56aeeaa3bdf910a3eaaf5c811a1"
},
"@std/fmt@1.0.5": {
"integrity": "0cfab43364bc36650d83c425cd6d99910fc20c4576631149f0f987eddede1a4d"
},
"@std/fmt@1.0.8": {
"integrity": "71e1fc498787e4434d213647a6e43e794af4fd393ef8f52062246e06f7e372b7"
},
"@std/fs@1.0.19": {
"integrity": "051968c2b1eae4d2ea9f79a08a3845740ef6af10356aff43d3e2ef11ed09fb06"
},
"@std/html@1.0.3": {
"integrity": "7a0ac35e050431fb49d44e61c8b8aac1ebd55937e0dc9ec6409aa4bab39a7988"
},
"@std/html@1.0.5": {
"integrity": "4e2d693f474cae8c16a920fa5e15a3b72267b94b84667f11a50c6dd1cb18d35e"
},
"@std/http@1.0.13": {
"integrity": "d29618b982f7ae44380111f7e5b43da59b15db64101198bb5f77100d44eb1e1e",
"dependencies": [
"jsr:@std/cli@^1.0.12",
"jsr:@std/encoding@^1.0.7",
"jsr:@std/fmt@^1.0.5",
"jsr:@std/html@^1.0.3",
"jsr:@std/media-types",
"jsr:@std/net@^1.0.4",
"jsr:@std/path@^1.0.8",
"jsr:@std/streams@^1.0.9"
]
},
"@std/http@1.0.21": {
"integrity": "abb5c747651ee6e3ea6139858fd9b1810d2c97f53a5e6722f3b6d27a6d263edc",
"dependencies": [
"jsr:@std/cli@^1.0.23",
"jsr:@std/encoding@^1.0.10",
"jsr:@std/fmt@^1.0.8",
"jsr:@std/fs",
"jsr:@std/html@^1.0.5",
"jsr:@std/media-types",
"jsr:@std/net@^1.0.6",
"jsr:@std/path@^1.1.2",
"jsr:@std/streams@^1.0.13"
]
},
"@std/internal@1.0.12": {
"integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027"
},
"@std/media-types@1.1.0": {
"integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4"
},
"@std/net@1.0.4": {
"integrity": "2f403b455ebbccf83d8a027d29c5a9e3a2452fea39bb2da7f2c04af09c8bc852"
},
"@std/net@1.0.6": {
"integrity": "110735f93e95bb9feb95790a8b1d1bf69ec0dc74f3f97a00a76ea5efea25500c"
},
"@std/path@1.0.8": {
"integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be"
},
"@std/path@1.1.2": {
"integrity": "c0b13b97dfe06546d5e16bf3966b1cadf92e1cc83e56ba5476ad8b498d9e3038",
"dependencies": [
"jsr:@std/internal"
]
},
"@std/streams@1.0.9": {
"integrity": "a9d26b1988cdd7aa7b1f4b51e1c36c1557f3f252880fa6cc5b9f37078b1a5035"
},
"@std/streams@1.0.13": {
"integrity": "772d208cd0d3e5dac7c1d9e6cdb25842846d136eea4a41a62e44ed4ab0c8dd9e"
}
},
"workspace": {
"packageJson": {
"dependencies": [
"npm:@types/ace@^0.0.52"
]
}
}
}

57
dev.ts Normal file
View File

@ -0,0 +1,57 @@
// deno-lint-ignore no-import-prefix
import { serveDir } from "jsr:@std/http@1.0.21/file-server";
type Addr = {
hostname: string;
port: number;
};
function alertListening(addr: Addr) {
console.log(`Listening on http://${addr.hostname}:${addr.port}/`);
}
async function buildDocs() {
console.log("building docs");
await new Deno.Command("deno", {
args: ["task", "build"],
cwd: "docs",
}).output();
console.log("done");
}
async function watchAndBuildDocs() {
let changeOccurred = true;
let running = false;
setInterval(async () => {
if (!changeOccurred || running) {
return;
}
running = true;
await buildDocs();
changeOccurred = false;
running = false;
}, 250);
const watcher = Deno.watchFs(["docs/src"]);
for await (const _ of watcher) {
changeOccurred = true;
}
}
function serveDist(addr: Addr) {
Deno.serve({
port: addr.port,
hostname: addr.hostname,
onListen: (_) => alertListening(addr),
}, (req: Request) => {
return serveDir(req, { quiet: true, showIndex: true });
});
}
if (import.meta.main) {
await buildDocs();
watchAndBuildDocs();
serveDist({
hostname: "0.0.0.0",
port: 8180,
});
}

View File

@ -14,13 +14,13 @@ function injectIntoTemplate(
dirComponents.push(`${name}.html`);
}
if (dirComponents.length > 0) {
breadcrumbs.push(`<a href="/-/">root</a>`);
breadcrumbs.push(`<a href="/docs/-/">root</a>`);
} else {
breadcrumbs.push(`<span>root</span>`);
}
for (let i = 0; i < dirComponents.length; ++i) {
const component = dirComponents[i];
const href = "/-/" + dirComponents.filter((_, idx) => idx <= i).join("/");
const href = "/docs/-/" + dirComponents.filter((_, idx) => idx <= i).join("/");
if (i < dirComponents.length - 1) {
breadcrumbs.push(`<a href="${href}">${component}</a>`);
} else {

View File

@ -99,7 +99,7 @@ export class AssetEditor {
this.renderList();
}
async setPreview(asset) {
setPreview(asset) {
this.previewedName = asset.name;
this.preview.title.textContent = asset.name;

View File

@ -101,7 +101,7 @@ runButton.onclick = async () => {
}
};
exportButton.onclick = async () => {
exportButton.onclick = () => {
projectSaveHandler.exportProject();
};
@ -122,10 +122,9 @@ addEventListener("keydown", (ev) => {
toggleAssetEditorButton.addEventListener("click", () => assetEditor.toggleEditor());
window.ondragover = (ev) => ev.preventDefault();
window.ondrop = (ev) => ev.preventDefault();
globalThis.ondragover = (ev) => ev.preventDefault();
globalThis.ondrop = (ev) => ev.preventDefault();
dropZone.onclick = (ev) => ev.preventDefault();
dropZone.ondragover = (ev) => ev.preventDefault();
dropZone.ondrop = async (ev) => {
for (const file of ev.dataTransfer.files) {