Set up the foundational build configuration for Mission Control: Frontend Build (Vite + TypeScript): - package.json: React 19, TanStack Query, Zustand, Framer Motion - tsconfig.json: Strict TypeScript with path aliases (@/) - vite.config.ts: Tailored for Tauri (port 1420, ignores src-tauri) Styling (Tailwind CSS): - tailwind.config.ts: Custom surface color palette (zinc-900/800/700) - postcss.config.js: Tailwind + autoprefixer pipeline - tailwind.config.js: Generated config (superseded by .ts) Code Quality: - eslint.config.js: ESLint 9 flat config with TypeScript + React hooks - .gitignore: Exclude node_modules, dist, coverage, test artifacts This establishes the monorepo structure where: - Frontend lives in src/ and builds to dist/ - Tauri backend lives in src-tauri/ with its own Cargo workspace
27 lines
655 B
JavaScript
27 lines
655 B
JavaScript
import js from "@eslint/js";
|
|
import globals from "globals";
|
|
import reactHooks from "eslint-plugin-react-hooks";
|
|
import tseslint from "typescript-eslint";
|
|
|
|
export default tseslint.config(
|
|
{ ignores: ["dist", "src-tauri"] },
|
|
{
|
|
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
files: ["**/*.{ts,tsx}"],
|
|
languageOptions: {
|
|
ecmaVersion: 2020,
|
|
globals: globals.browser,
|
|
},
|
|
plugins: {
|
|
"react-hooks": reactHooks,
|
|
},
|
|
rules: {
|
|
...reactHooks.configs.recommended.rules,
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"error",
|
|
{ argsIgnorePattern: "^_" },
|
|
],
|
|
},
|
|
}
|
|
);
|