From 68fd923d2ed676bd547286ee94ff94cd19f2b37b Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Sat, 13 Dec 2025 20:07:10 +0100 Subject: [PATCH] refactor: absolute paths --- package.json | 1 + pnpm-lock.yaml | 26 ++++++++++++++++++++++++-- src/main.ts | 2 +- src/nds.ts | 2 +- src/screen-manager.ts | 4 ++-- src/screens/contact-screen.ts | 22 ---------------------- src/screens/contact/bottom/index.ts | 10 +++++----- src/screens/contact/index.ts | 2 +- src/screens/contact/top/index.ts | 2 +- src/screens/home/bottom/index.ts | 10 +++++----- src/screens/home/index.ts | 2 +- src/screens/home/top/calendar.ts | 2 +- src/screens/home/top/clock.ts | 2 +- src/screens/home/top/index.ts | 2 +- src/screens/home/top/statusBar.ts | 2 +- src/utils/buttonSelector.ts | 4 ++-- tsconfig.json | 8 +++++++- vite.config.ts | 10 ++++++++++ 18 files changed, 65 insertions(+), 48 deletions(-) delete mode 100644 src/screens/contact-screen.ts create mode 100644 vite.config.ts diff --git a/package.json b/package.json index 457e24e..8b0abba 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "format": "prettier --write --cache ." }, "devDependencies": { + "@types/node": "^25.0.1", "@types/three": "^0.182.0", "prettier": "^3.7.4", "typescript": "~5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 97f2d09..836fd20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: specifier: ^0.182.0 version: 0.182.0 devDependencies: + "@types/node": + specifier: ^25.0.1 + version: 25.0.1 "@types/three": specifier: ^0.182.0 version: 0.182.0 @@ -25,7 +28,7 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.2.5 - version: rolldown-vite@7.2.5 + version: rolldown-vite@7.2.5(@types/node@25.0.1) packages: "@dimforge/rapier3d-compat@0.12.0": @@ -214,6 +217,12 @@ packages: integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, } + "@types/node@25.0.1": + resolution: + { + integrity: sha512-czWPzKIAXucn9PtsttxmumiQ9N0ok9FrBwgRWrwmVLlp86BrMExzvXRLFYRJ+Ex3g6yqj+KuaxfX1JTgV2lpfg==, + } + "@types/stats.js@0.17.4": resolution: { @@ -504,6 +513,12 @@ packages: engines: { node: ">=14.17" } hasBin: true + undici-types@7.16.0: + resolution: + { + integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==, + } + snapshots: "@dimforge/rapier3d-compat@0.12.0": {} @@ -587,6 +602,10 @@ snapshots: tslib: 2.8.1 optional: true + "@types/node@25.0.1": + dependencies: + undici-types: 7.16.0 + "@types/stats.js@0.17.4": {} "@types/three@0.182.0": @@ -679,7 +698,7 @@ snapshots: prettier@3.7.4: {} - rolldown-vite@7.2.5: + rolldown-vite@7.2.5(@types/node@25.0.1): dependencies: "@oxc-project/runtime": 0.97.0 fdir: 6.5.0(picomatch@4.0.3) @@ -689,6 +708,7 @@ snapshots: rolldown: 1.0.0-beta.50 tinyglobby: 0.2.15 optionalDependencies: + "@types/node": 25.0.1 fsevents: 2.3.3 rolldown@1.0.0-beta.50: @@ -724,3 +744,5 @@ snapshots: optional: true typescript@5.9.3: {} + + undici-types@7.16.0: {} diff --git a/src/main.ts b/src/main.ts index ae6a634..1f4b54a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,7 +2,7 @@ import "./style.css"; import * as THREE from "three"; import { OrbitControls } from "three/addons/controls/OrbitControls.js"; -import { NDS } from "./nds"; +import { NDS } from "~/nds"; // initialize scene const scene = new THREE.Scene(); diff --git a/src/nds.ts b/src/nds.ts index bcec543..f932246 100644 --- a/src/nds.ts +++ b/src/nds.ts @@ -1,6 +1,6 @@ import * as THREE from "three"; import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js"; -import { ScreenManager } from "./screen-manager"; +import { ScreenManager } from "~/screen-manager"; const SCREEN_SOURCE_TEX_SIZE = 1024; const TOP_SCREEN_SOURCE_TEX_HEIGHT = SCREEN_SOURCE_TEX_SIZE / 404; diff --git a/src/screen-manager.ts b/src/screen-manager.ts index fd98944..6e59b43 100644 --- a/src/screen-manager.ts +++ b/src/screen-manager.ts @@ -1,5 +1,5 @@ -import type { Screen } from "./screen"; -import { HomeScreen } from "./screens/home"; +import type { Screen } from "~/screen"; +import { HomeScreen } from "~/screens/home"; export class ScreenManager { private currentScreen: Screen; diff --git a/src/screens/contact-screen.ts b/src/screens/contact-screen.ts deleted file mode 100644 index 60697e1..0000000 --- a/src/screens/contact-screen.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { Screen, ScreenContext } from "../screen"; -import { HomeScreen } from "./home"; - -export class ContactScreen implements Screen { - renderTop(ctx: CanvasRenderingContext2D) { - ctx; - } - - renderBottom(ctx: CanvasRenderingContext2D) { - ctx.fillStyle = "#ffffff"; - ctx.font = "10px NDS10"; - ctx.textAlign = "left"; - ctx.textBaseline = "bottom"; - ctx.fillText("< Back", 1, 191); - } - - handleTouch(x: number, y: number, context: ScreenContext): void { - if (x >= 0 && x <= 51 && y >= 178 && y <= 192) { - context.navigate(new HomeScreen()); - } - } -} diff --git a/src/screens/contact/bottom/index.ts b/src/screens/contact/bottom/index.ts index 678144d..0e78d85 100644 --- a/src/screens/contact/bottom/index.ts +++ b/src/screens/contact/bottom/index.ts @@ -1,8 +1,8 @@ -import { ImageLoader } from "../../../utils/loadImages"; -import { ButtonNavigation } from "../../../utils/buttonNavigation"; -import { ButtonSelector } from "../../../utils/buttonSelector"; -import { HomeScreen } from "../../home"; -import type { ContactScreenContext } from "../index"; +import { ImageLoader } from "~/utils/loadImages"; +import { ButtonNavigation } from "~/utils/buttonNavigation"; +import { ButtonSelector } from "~/utils/buttonSelector"; +import { HomeScreen } from "~/screens/home"; +import type { ContactScreenContext } from "~/screens/contact"; type ContactButton = "github" | "email" | "website" | "cv"; diff --git a/src/screens/contact/index.ts b/src/screens/contact/index.ts index ed0ae61..dcb800c 100644 --- a/src/screens/contact/index.ts +++ b/src/screens/contact/index.ts @@ -1,4 +1,4 @@ -import type { Screen, ScreenContext } from "../../screen"; +import type { Screen, ScreenContext } from "~/screen"; import { ContactTopScreen } from "./top"; import { ContactBottomScreen } from "./bottom"; diff --git a/src/screens/contact/top/index.ts b/src/screens/contact/top/index.ts index 666ce1f..a417628 100644 --- a/src/screens/contact/top/index.ts +++ b/src/screens/contact/top/index.ts @@ -1,4 +1,4 @@ -import { ImageLoader } from "../../../utils/loadImages"; +import { ImageLoader } from "~/utils/loadImages"; export class ContactTopScreen { private images = new ImageLoader({ diff --git a/src/screens/home/bottom/index.ts b/src/screens/home/bottom/index.ts index 337afb2..eb9ea0b 100644 --- a/src/screens/home/bottom/index.ts +++ b/src/screens/home/bottom/index.ts @@ -1,8 +1,8 @@ -import { ImageLoader } from "../../../utils/loadImages"; -import { ButtonNavigation } from "../../../utils/buttonNavigation"; -import { ButtonSelector } from "../../../utils/buttonSelector"; -import type { ScreenContext } from "../../../screen"; -import { ContactScreen } from "../../contact"; +import { ImageLoader } from "~/utils/loadImages"; +import { ButtonNavigation } from "~/utils/buttonNavigation"; +import { ButtonSelector } from "~/utils/buttonSelector"; +import type { ScreenContext } from "~/screen"; +import { ContactScreen } from "~/screens/contact"; type HomeButton = "projects" | "contact" | "downloadPlay" | "settings"; diff --git a/src/screens/home/index.ts b/src/screens/home/index.ts index 1b4092a..d7f5743 100644 --- a/src/screens/home/index.ts +++ b/src/screens/home/index.ts @@ -1,4 +1,4 @@ -import type { Screen, ScreenContext } from "../../screen"; +import type { Screen, ScreenContext } from "~/screen"; import { HomeTopScreen } from "./top"; import { HomeBottomScreen } from "./bottom"; diff --git a/src/screens/home/top/calendar.ts b/src/screens/home/top/calendar.ts index 41ad799..eefbe6f 100644 --- a/src/screens/home/top/calendar.ts +++ b/src/screens/home/top/calendar.ts @@ -1,4 +1,4 @@ -import { ImageLoader } from "../../../utils/loadImages"; +import { ImageLoader } from "~/utils/loadImages"; export class Calendar { private images = new ImageLoader({ diff --git a/src/screens/home/top/clock.ts b/src/screens/home/top/clock.ts index 8bfab51..837e2ca 100644 --- a/src/screens/home/top/clock.ts +++ b/src/screens/home/top/clock.ts @@ -1,4 +1,4 @@ -import { ImageLoader } from "../../../utils/loadImages"; +import { ImageLoader } from "~/utils/loadImages"; const CENTER_X = 63; const CENTER_Y = 95; diff --git a/src/screens/home/top/index.ts b/src/screens/home/top/index.ts index a273015..165eb0c 100644 --- a/src/screens/home/top/index.ts +++ b/src/screens/home/top/index.ts @@ -1,4 +1,4 @@ -import { ImageLoader } from "../../../utils/loadImages"; +import { ImageLoader } from "~/utils/loadImages"; import { StatusBar } from "./statusBar"; import { Clock } from "./clock"; import { Calendar } from "./calendar"; diff --git a/src/screens/home/top/statusBar.ts b/src/screens/home/top/statusBar.ts index d4b4891..cd3bf75 100644 --- a/src/screens/home/top/statusBar.ts +++ b/src/screens/home/top/statusBar.ts @@ -1,4 +1,4 @@ -import { ImageLoader } from "../../../utils/loadImages"; +import { ImageLoader } from "~/utils/loadImages"; export class StatusBar { private images = new ImageLoader({ diff --git a/src/utils/buttonSelector.ts b/src/utils/buttonSelector.ts index d741c43..5b4025c 100644 --- a/src/utils/buttonSelector.ts +++ b/src/utils/buttonSelector.ts @@ -1,5 +1,5 @@ -import { ImageLoader } from "./loadImages"; -import type { ButtonRect } from "./buttonNavigation"; +import { ImageLoader } from "~/utils/loadImages"; +import type { ButtonRect } from "~/utils/buttonNavigation"; const ANIMATION_SPEED = 0.25; diff --git a/tsconfig.json b/tsconfig.json index 4ba8dd9..f56769c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,7 +20,13 @@ "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + + "baseUrl": ".", + "paths": { + "~/*": ["./src/*"], + "~/": ["./src/index.ts"] + } }, "include": ["src"] } diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..3f7906f --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "vite"; +import { resolve } from "path"; + +export default defineConfig({ + resolve: { + alias: { + "~": resolve(__dirname, "./src"), + }, + }, +});