- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
tiny-case
Extremely minimal string casing utilities that mimic most of lodash's casing behavior, e.g. numbers are considered seperate "words".
npm i tiny-case
Usage
import {
camelCase,
pascalCase,
snakeCase,
kebabCase,
titleCase,
sentenceCase,
words,
upperFirst,
} from 'tiny-case'
words('hi-there john') // ['hi', 'there', 'john']
words(' 1ApplePlease ') // ['1', 'Apple', 'Please']