Vue 3 with Composition API, Pinia, Vue Router, Tailwind v4: - Vite build with @/ path aliases and backend proxy - TypeScript strict mode with proper type imports - Pinia stores (auth, game) with setup syntax and persistence - Vue Router with auth guards and lazy-loaded routes - Tailwind v4 with custom theme (Pokemon types, dark UI) - Vitest configured for component testing - ESLint v9 flat config with Vue/TypeScript support Pages: Home, Login, Register, Campaign, Collection, DeckBuilder, Match Components: AppHeader with auth-aware navigation Types: Card, GameState, Player, Deck, Campaign types Also adds frontend-code-audit skill with patterns for: - Error handling (unhandled promises, empty catches) - Security (XSS, token storage, input validation) - Architecture (Composition API, Pinia patterns, Phaser rules) Co-Authored-By: Claude Opus 4.5 <[email protected]>
38 lines
971 B
JavaScript
38 lines
971 B
JavaScript
import js from '@eslint/js'
|
|
import globals from 'globals'
|
|
import vue from 'eslint-plugin-vue'
|
|
import tseslint from 'typescript-eslint'
|
|
|
|
export default [
|
|
js.configs.recommended,
|
|
...tseslint.configs.recommended,
|
|
...vue.configs['flat/recommended'],
|
|
{
|
|
files: ['**/*.{ts,vue}'],
|
|
languageOptions: {
|
|
globals: {
|
|
...globals.browser,
|
|
},
|
|
parserOptions: {
|
|
parser: tseslint.parser,
|
|
},
|
|
},
|
|
rules: {
|
|
// Vue rules
|
|
'vue/multi-word-component-names': 'off',
|
|
'vue/require-default-prop': 'off',
|
|
|
|
// TypeScript rules
|
|
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
|
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
|
|
// General rules - allow console in dev guards
|
|
'no-console': 'off',
|
|
},
|
|
},
|
|
{
|
|
ignores: ['dist/', 'node_modules/', '*.config.js', '*.config.ts'],
|
|
},
|
|
]
|