From 023dffa5fe33de56f77d06327608358fc75529be Mon Sep 17 00:00:00 2001 From: madmti Date: Mon, 15 Jun 2026 15:16:35 -0400 Subject: [PATCH 1/4] chore: desacoplar dependencias y renderizado de dev-tools --- src/lib/dev-tools/gen.ts | 27 +-- src/lib/dev-tools/types.ts | 26 +++ src/lib/state/index.svelte.ts | 2 +- src/routes/(app)/dev-tools/+page.ts | 8 + .../_components/DataGenerator.svelte | 5 +- vite.config.ts | 164 ++++++++++-------- 6 files changed, 131 insertions(+), 101 deletions(-) create mode 100644 src/lib/dev-tools/types.ts create mode 100644 src/routes/(app)/dev-tools/+page.ts diff --git a/src/lib/dev-tools/gen.ts b/src/lib/dev-tools/gen.ts index a991e7f..b198233 100644 --- a/src/lib/dev-tools/gen.ts +++ b/src/lib/dev-tools/gen.ts @@ -6,32 +6,7 @@ import type { RamosSerial } from '$lib/state/ramos.svelte'; import type { SemestresSerial } from '$lib/state/semestres.svelte'; import { generateUUID } from '$lib/utils/crypto'; import { ColorUtils } from '$lib/utils/colors'; - -export interface MockDataInput { - // Semestres a generar - semestres: number; - // Ramos por semestre - ramos: number; - // Eventos por semestre - eventos: number; - // Horarios por semestre - horarios: number; - // Notas por semestre - notas: number; -} - -export type MockDataOutput = { - semestres: SemestresSerial; - semestres_data: Record< - string, - { - ramos: RamosSerial; - notas: NotasSerial; - eventos: EventsSerial; - horarios: HorariosSerial; - } - >; -}; +import type { MockDataInput, MockDataOutput } from './types'; class MockDataGenerator { public static generate(input: MockDataInput): MockDataOutput { diff --git a/src/lib/dev-tools/types.ts b/src/lib/dev-tools/types.ts new file mode 100644 index 0000000..20015d1 --- /dev/null +++ b/src/lib/dev-tools/types.ts @@ -0,0 +1,26 @@ +import type { EventsSerial } from '$lib/state/events.svelte'; +import type { HorariosSerial } from '$lib/state/horarios.svelte'; +import type { NotasSerial } from '$lib/state/notas.svelte'; +import type { RamosSerial } from '$lib/state/ramos.svelte'; +import type { SemestresSerial } from '$lib/state/semestres.svelte'; + +export interface MockDataInput { + semestres: number; + ramos: number; + eventos: number; + horarios: number; + notas: number; +} + +export type MockDataOutput = { + semestres: SemestresSerial; + semestres_data: Record< + string, + { + ramos: RamosSerial; + notas: NotasSerial; + eventos: EventsSerial; + horarios: HorariosSerial; + } + >; +}; diff --git a/src/lib/state/index.svelte.ts b/src/lib/state/index.svelte.ts index 3cda4c1..dfed232 100644 --- a/src/lib/state/index.svelte.ts +++ b/src/lib/state/index.svelte.ts @@ -8,7 +8,7 @@ import { EvaluacionEventsManager } from './evaluacion-events.svelte'; import { HorariosManager } from './horarios.svelte'; import { DevManager } from './dev.svelte'; import { PUBLIC_SHOW_DEV_TOOLS } from '$env/static/public'; -import type { MockDataOutput } from '$lib/dev-tools/gen'; +import type { MockDataOutput } from '$lib/dev-tools/types'; import { untrack } from 'svelte'; export const RAMOLIBE_KEY_PREFIX = 'RAMOLIBRE_'; diff --git a/src/routes/(app)/dev-tools/+page.ts b/src/routes/(app)/dev-tools/+page.ts new file mode 100644 index 0000000..7a88bc9 --- /dev/null +++ b/src/routes/(app)/dev-tools/+page.ts @@ -0,0 +1,8 @@ +import { PUBLIC_SHOW_DEV_TOOLS } from '$env/static/public'; +import { redirect } from '@sveltejs/kit'; + +export function load() { + if (PUBLIC_SHOW_DEV_TOOLS !== 'true') { + redirect(307, '/'); + } +} diff --git a/src/routes/(app)/dev-tools/_components/DataGenerator.svelte b/src/routes/(app)/dev-tools/_components/DataGenerator.svelte index 3eab108..cf4e113 100644 --- a/src/routes/(app)/dev-tools/_components/DataGenerator.svelte +++ b/src/routes/(app)/dev-tools/_components/DataGenerator.svelte @@ -1,5 +1,5 @@
- + Contribuir en GitHub
diff --git a/src/routes/(app)/_components/GradeSolver.svelte b/src/routes/(app)/_components/GradeSolver.svelte index bb9a0d9..4c064bb 100644 --- a/src/routes/(app)/_components/GradeSolver.svelte +++ b/src/routes/(app)/_components/GradeSolver.svelte @@ -1,5 +1,5 @@
- + Ver código fuente
diff --git a/src/routes/(app)/_components/WelcomeBar.svelte b/src/routes/(app)/_components/WelcomeBar.svelte index 9d625d8..730b20c 100644 --- a/src/routes/(app)/_components/WelcomeBar.svelte +++ b/src/routes/(app)/_components/WelcomeBar.svelte @@ -1,7 +1,8 @@ @@ -80,7 +81,7 @@ class="p-2.5 rounded-lg text-content/40 hover:text-content hover:bg-base-300 transition-all active:scale-90 cursor-pointer" title="Ver perfil de GitHub" > - + @@ -90,7 +91,7 @@ target="_blank" class="flex items-center justify-center gap-2 py-2.5 bg-base-100 text-content border border-base-400 rounded-xl text-xs font-bold hover:bg-base-200 transition-colors" > - + Source Code import { cloud } from '$lib/state/cloud.svelte'; + import Icon from '@iconify/svelte'; import { Cloud, CloudOff, LogOut, RefreshCw, CheckCircle2, - GithubIcon, AlertCircle, CircleUser } from '@lucide/svelte'; @@ -208,7 +208,7 @@ onclick={() => cloud.loginWith('github')} class="cursor-pointer w-full inline-flex items-center justify-center gap-2 px-4 py-3 bg-base-200 border border-base-400 text-content rounded-lg text-sm font-semibold hover:bg-base-300 transition-all shadow-sm" > - Continuar con GitHub + Continuar con GitHub