diff options
Diffstat (limited to '')
-rw-r--r-- | app/src/app.d.ts | 2 | ||||
-rw-r--r-- | app/src/app.html | 1 | ||||
-rw-r--r-- | app/src/hooks.server.ts | 18 | ||||
-rw-r--r-- | app/src/lib/svelte/Navigation.svelte | 20 | ||||
-rw-r--r-- | app/src/lib/svelte/ReloadPrompt.svelte | 60 | ||||
-rw-r--r-- | app/src/lib/ts/download.ts | 32 | ||||
-rw-r--r-- | app/src/lib/ts/truncate.worker.ts | 14 | ||||
-rw-r--r-- | app/src/lib/types/truncate-worker.ts | 10 | ||||
-rw-r--r-- | app/src/routes/+layout.svelte | 24 | ||||
-rw-r--r-- | app/src/routes/+layout.ts | 2 | ||||
-rw-r--r-- | app/src/routes/+page.svelte | 9 | ||||
-rw-r--r-- | app/src/routes/truncate/+page.svelte | 48 |
12 files changed, 119 insertions, 121 deletions
diff --git a/app/src/app.d.ts b/app/src/app.d.ts index bf2855f..bbacd79 100644 --- a/app/src/app.d.ts +++ b/app/src/app.d.ts @@ -2,7 +2,7 @@ // for information about these interfaces // and what to do when importing types -import 'vite-plugin-pwa/info'; +import 'vite-plugin-pwa/info' declare namespace App { // interface Locals {} diff --git a/app/src/app.html b/app/src/app.html index 4950b86..2ce4c3b 100644 --- a/app/src/app.html +++ b/app/src/app.html @@ -7,6 +7,7 @@ <meta name="viewport" content="width=device-width" /> %sveltekit.head% </head> + <body data-sveltekit-preload-data="hover" data-theme="wintry"> <div style="display: contents" class="h-full overflow-hidden">%sveltekit.body%</div> </body> diff --git a/app/src/hooks.server.ts b/app/src/hooks.server.ts index bf7121a..3abdfb3 100644 --- a/app/src/hooks.server.ts +++ b/app/src/hooks.server.ts @@ -1,5 +1,5 @@ -import { minify } from 'html-minifier-terser'; -import { building } from '$app/environment'; +import { minify } from 'html-minifier-terser' +import { building } from '$app/environment' const minification_options = { collapseBooleanAttributes: true, @@ -18,19 +18,19 @@ const minification_options = { removeScriptTypeAttributes: true, removeStyleLinkTypeAttributes: true, sortAttributes: true, - sortClassName: true -}; + sortClassName: true, +} /** @type {import('@sveltejs/kit').Handle} */ export async function handle({ event, resolve }) { - let page = ''; + let page = '' return resolve(event, { transformPageChunk: ({ html, done }) => { - page += html; + page += html if (done) { - return building ? minify(page, minification_options) : page; + return building ? minify(page, minification_options) : page } - } - }); + }, + }) } diff --git a/app/src/lib/svelte/Navigation.svelte b/app/src/lib/svelte/Navigation.svelte index 9246c28..fa9182f 100644 --- a/app/src/lib/svelte/Navigation.svelte +++ b/app/src/lib/svelte/Navigation.svelte @@ -1,22 +1,22 @@ <script lang="ts"> - import { page } from '$app/stores'; + import { page } from '$app/stores' - import Icon from '@iconify/svelte'; - import homeIcon from '@iconify/icons-carbon/home'; - import logoGithub from '@iconify/icons-carbon/logo-github'; - import menuIcon from '@iconify/icons-carbon/menu'; - import pageBreak from '@iconify/icons-carbon/page-break'; + import Icon from '@iconify/svelte' + import homeIcon from '@iconify/icons-carbon/home' + import logoGithub from '@iconify/icons-carbon/logo-github' + import menuIcon from '@iconify/icons-carbon/menu' + import pageBreak from '@iconify/icons-carbon/page-break' - import { AppRail, AppRailAnchor, getDrawerStore } from '@skeletonlabs/skeleton'; + import { AppRail, AppRailAnchor, getDrawerStore } from '@skeletonlabs/skeleton' - const drawerStore = getDrawerStore(); + const drawerStore = getDrawerStore() function drawerClose(): void { - drawerStore.close(); + drawerStore.close() } // Hamburgers - export let menu = false; + export let menu = false </script> <AppRail> diff --git a/app/src/lib/svelte/ReloadPrompt.svelte b/app/src/lib/svelte/ReloadPrompt.svelte index d54a202..e6effbb 100644 --- a/app/src/lib/svelte/ReloadPrompt.svelte +++ b/app/src/lib/svelte/ReloadPrompt.svelte @@ -1,34 +1,32 @@ <script lang="ts"> - import { getToastStore } from "@skeletonlabs/skeleton"; - import { useRegisterSW } from "virtual:pwa-register/svelte"; + import { getToastStore } from '@skeletonlabs/skeleton' + import { useRegisterSW } from 'virtual:pwa-register/svelte' - const toastStore = getToastStore(); + const toastStore = getToastStore() - const { - updateServiceWorker, - } = useRegisterSW({ - onRegisteredSW(r) { - console.log("SW Registered: ", r) - }, - onNeedRefresh() { - toastStore.trigger({ - message: 'A new version of the application is available.', - autohide: false, - action: { - label: 'Refresh', - response: updateServiceWorker - } - }); - }, - onOfflineReady() { - toastStore.trigger({ - background: 'variant-filled-success', - message: 'Now ready for offline use!', - timeout: 5000 - }); - }, - onRegisterError(err) { - console.error("SW Registration Error: ", err) - } - }) -</script>
\ No newline at end of file + const { updateServiceWorker } = useRegisterSW({ + onRegisteredSW(r) { + console.log('SW Registered: ', r) + }, + onNeedRefresh() { + toastStore.trigger({ + message: 'A new version of the application is available.', + autohide: false, + action: { + label: 'Refresh', + response: updateServiceWorker, + }, + }) + }, + onOfflineReady() { + toastStore.trigger({ + background: 'variant-filled-success', + message: 'Now ready for offline use!', + timeout: 5000, + }) + }, + onRegisterError(err) { + console.error('SW Registration Error: ', err) + }, + }) +</script> diff --git a/app/src/lib/ts/download.ts b/app/src/lib/ts/download.ts index c3e98b0..48debec 100644 --- a/app/src/lib/ts/download.ts +++ b/app/src/lib/ts/download.ts @@ -5,33 +5,33 @@ export default async function saveFile(blob: ArrayBuffer, suggestedName: string 'showSaveFilePicker' in window && (() => { try { - return window.self === window.top; + return window.self === window.top } catch { - return false; + return false } - })(); + })() if (supportsFSAccess) { try { const handle = await window.showSaveFilePicker({ - suggestedName: suggestedName - }); - const writable = await handle.createWritable(); - await writable.write(blob); - await writable.close(); - return; + suggestedName: suggestedName, + }) + const writable = await handle.createWritable() + await writable.write(blob) + await writable.close() + return } catch (err: unknown) { // TypeScript if ((err as Error)?.name !== 'AbortError') { - return Promise.reject(err); + return Promise.reject(err) } } } else { - const anchor = document.createElement('a'); - anchor.download = suggestedName ?? 'truncated'; - anchor.href = URL.createObjectURL(new Blob([blob])); - anchor.click(); - URL.revokeObjectURL(anchor.href); - document.body.removeChild(anchor); + const anchor = document.createElement('a') + anchor.download = suggestedName ?? 'truncated' + anchor.href = URL.createObjectURL(new Blob([blob])) + anchor.click() + URL.revokeObjectURL(anchor.href) + document.body.removeChild(anchor) } } diff --git a/app/src/lib/ts/truncate.worker.ts b/app/src/lib/ts/truncate.worker.ts index 9ddf63c..da75041 100644 --- a/app/src/lib/ts/truncate.worker.ts +++ b/app/src/lib/ts/truncate.worker.ts @@ -1,9 +1,9 @@ -import type { TruncateRequest, TruncateResponse } from '../types/truncate-worker'; +import type { TruncateRequest, TruncateResponse } from '../types/truncate-worker' onmessage = async (message: MessageEvent<TruncateRequest>) => { - console.log('File received. Truncating...'); - const file = message.data.file; - const buffer = await file.arrayBuffer(); - const truncated = buffer.slice(0, message.data.size); - postMessage({ file: truncated } as TruncateResponse); -}; + console.log('File received. Truncating...') + const file = message.data.file + const buffer = await file.arrayBuffer() + const truncated = buffer.slice(0, message.data.size) + postMessage({ file: truncated } as TruncateResponse) +} diff --git a/app/src/lib/types/truncate-worker.ts b/app/src/lib/types/truncate-worker.ts index 7052d17..2691ccb 100644 --- a/app/src/lib/types/truncate-worker.ts +++ b/app/src/lib/types/truncate-worker.ts @@ -1,8 +1,8 @@ export type TruncateRequest = { - file: File; - size: number; -}; + file: File + size: number +} export type TruncateResponse = { - file: ArrayBuffer; -}; + file: ArrayBuffer +} diff --git a/app/src/routes/+layout.svelte b/app/src/routes/+layout.svelte index 087465b..df0f707 100644 --- a/app/src/routes/+layout.svelte +++ b/app/src/routes/+layout.svelte @@ -1,34 +1,34 @@ <script lang="ts"> - import Navigation from '$lib/svelte/Navigation.svelte'; - import Icon from '@iconify/svelte'; - import menuIcon from '@iconify/icons-carbon/menu'; + import Navigation from '$lib/svelte/Navigation.svelte' + import Icon from '@iconify/svelte' + import menuIcon from '@iconify/icons-carbon/menu' import { AppBar, AppShell, Drawer, Toast, getDrawerStore, - initializeStores - } from '@skeletonlabs/skeleton'; - import { pwaInfo } from 'virtual:pwa-info'; - import '../app.postcss'; + initializeStores, + } from '@skeletonlabs/skeleton' + import { pwaInfo } from 'virtual:pwa-info' + import '../app.postcss' // Floating UI for Popups // import { computePosition, autoUpdate, flip, shift, offset, arrow } from '@floating-ui/dom'; // import { storePopup } from '@skeletonlabs/skeleton'; // storePopup.set({ computePosition, autoUpdate, flip, shift, offset, arrow }); - initializeStores(); + initializeStores() - const drawerStore = getDrawerStore(); + const drawerStore = getDrawerStore() function drawerOpen() { drawerStore.open({ - width: 'w-[80px]' - }); + width: 'w-[80px]', + }) } - $: webManifestLink = pwaInfo ? pwaInfo.webManifest.linkTag : ''; + $: webManifestLink = pwaInfo ? pwaInfo.webManifest.linkTag : '' </script> <svelte:head> diff --git a/app/src/routes/+layout.ts b/app/src/routes/+layout.ts index 189f71e..176ae64 100644 --- a/app/src/routes/+layout.ts +++ b/app/src/routes/+layout.ts @@ -1 +1 @@ -export const prerender = true; +export const prerender = true diff --git a/app/src/routes/+page.svelte b/app/src/routes/+page.svelte index e34c31e..123282c 100644 --- a/app/src/routes/+page.svelte +++ b/app/src/routes/+page.svelte @@ -1,15 +1,14 @@ <svelte:head> - <title>Coming Soon(TM)</title> + <title>Coming Soon(TM)</title> </svelte:head> <!-- YOU CAN DELETE EVERYTHING IN THIS PAGE --> <div class="container h-full mx-auto flex justify-center items-center"> - <div class="space-y-10 text-center flex flex-col items-center"> - <h2 class="h2">Welcome to a placeholder.</h2> - </div> + <div class="space-y-10 text-center flex flex-col items-center"> + <h2 class="h2">Welcome to a placeholder.</h2> + </div> </div> <style lang="postcss"> - </style> diff --git a/app/src/routes/truncate/+page.svelte b/app/src/routes/truncate/+page.svelte index 635b6bc..6db6d25 100644 --- a/app/src/routes/truncate/+page.svelte +++ b/app/src/routes/truncate/+page.svelte @@ -1,36 +1,36 @@ <script lang="ts"> - import saveFile from '$lib/ts/download'; - import type { TruncateRequest, TruncateResponse } from '$lib/types/truncate-worker'; - import Icon from '@iconify/svelte'; - import fileStorage from '@iconify/icons-carbon/file-storage'; - import { FileDropzone, ProgressBar } from '@skeletonlabs/skeleton'; - import { onDestroy, onMount } from 'svelte'; + import saveFile from '$lib/ts/download' + import type { TruncateRequest, TruncateResponse } from '$lib/types/truncate-worker' + import Icon from '@iconify/svelte' + import fileStorage from '@iconify/icons-carbon/file-storage' + import { FileDropzone, ProgressBar } from '@skeletonlabs/skeleton' + import { onDestroy, onMount } from 'svelte' - let disableInput = false; - let files: FileList; - let form: HTMLFormElement; - let worker: Worker; - $: truncateTo = 1; - let originalName: string; + let disableInput = false + let files: FileList + let form: HTMLFormElement + let worker: Worker + $: truncateTo = 1 + let originalName: string function onUpload() { - disableInput = true; - originalName = files[0].name; + disableInput = true + originalName = files[0].name worker.postMessage({ file: files[0], - size: truncateTo - } as TruncateRequest); + size: truncateTo, + } as TruncateRequest) } onMount(async () => { - worker = new Worker(new URL('$lib/ts/truncate.worker.ts', import.meta.url), { type: 'module' }); + worker = new Worker(new URL('$lib/ts/truncate.worker.ts', import.meta.url), { type: 'module' }) worker.onmessage = async (e: MessageEvent<TruncateResponse>) => { - await saveFile(e.data.file, `trunc-${originalName}`).catch((e) => console.error(e)); - disableInput = false; - form.reset(); - truncateTo = 1; - }; - }); + await saveFile(e.data.file, `trunc-${originalName}`).catch((e) => console.error(e)) + disableInput = false + form.reset() + truncateTo = 1 + } + }) onDestroy(() => { worker?.terminate() @@ -60,7 +60,7 @@ > <svelte:fragment slot="lead"> <div class="flex justify-center items-center"> - <Icon icon={fileStorage} width="50" /> + <Icon icon={fileStorage} width="50" /> </div> </svelte:fragment> <svelte:fragment slot="meta">Drop a file here to truncate it.</svelte:fragment> |