Skip to content

fix(frontend): align on Tailwind v4 + flat typescript-eslint import#13

Merged
jeremie0342 merged 7 commits into
mainfrom
fix/ci-lint-and-tailwind-v4
Jul 22, 2026
Merged

fix(frontend): align on Tailwind v4 + flat typescript-eslint import#13
jeremie0342 merged 7 commits into
mainfrom
fix/ci-lint-and-tailwind-v4

Conversation

@jeremie0342

Copy link
Copy Markdown
Contributor

The initial commit accidentally shipped Tailwind v3 config (postcss + autoprefixer + tailwind.config.ts + @tailwind directives) while the README, docs and other starters advertise Tailwind v4. It also imported typescript-eslint (unified) but only depended on the legacy @typescript-eslint/* split packages, causing CI to fail at npm run lint.

This aligns T01 with T02-T15:

  • @tailwindcss/vite plugin + @import 'tailwindcss' + drop postcss/autoprefixer
  • typescript-eslint (unified) + globals + eslint parser wiring for .svelte files
  • .prettierignore so prettier doesn't scan .svelte-kit outputs

Jeremie Zitti added 7 commits July 22, 2026 15:33
The initial commit accidentally shipped Tailwind v3 config (postcss + autoprefixer + tailwind.config.ts + @tailwind directives) while the README, docs and other starters advertise Tailwind v4. It also imported 'typescript-eslint' (unified) but only depended on the legacy @typescript-eslint/* split packages, causing CI to fail at 'npm run lint'.

This aligns T01 with T02-T15: @tailwindcss/vite plugin + @import 'tailwindcss' + typescript-eslint + globals + eslint parser wiring for .svelte files, plus a .prettierignore so prettier doesn't scan .svelte-kit outputs.
Three fixes:
- api.ts: use PUBLIC_API_BASE (Vite exposes PUBLIC_ vars), drop the broken `process` typeof check.
- i18n index: type dictionaries as `Record<Lang, Dict>` so the getter returns Dict, not the en|fr union.
- api.test.ts: guard against .mock.calls being empty before indexing.
The previous fr.ts had `as const` inferred literal types that didn't match en.ts's literals, so `Record<Lang, Dict>` rejected the fr entry with 'string literal EN not assignable to FR'. Extract a shared Dict interface into types.ts and type both dictionaries as Dict — this widens the fields to plain 'string' and satisfies svelte-check strict mode.
@jeremie0342
jeremie0342 merged commit ee7500a into main Jul 22, 2026
2 checks passed
@jeremie0342
jeremie0342 deleted the fix/ci-lint-and-tailwind-v4 branch July 22, 2026 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant