Setup frontend

This commit is contained in:
2024-10-15 23:51:33 -05:00
parent 5b28c69163
commit dd8f7a7014
12 changed files with 5352 additions and 0 deletions

6
frontend/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
.eslintcache
.pnpm-debug.log
node_modules/
coverage/
dist/
tsconfig.tsbuildinfo

3
frontend/.prettierignore Normal file
View File

@@ -0,0 +1,3 @@
coverage/
dist/
pnpm-lock.yaml

1
frontend/.tool-versions Normal file
View File

@@ -0,0 +1 @@
nodejs 22.9.0

16
frontend/index.html Normal file
View File

@@ -0,0 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<meta name="theme-color" content="#fff" />
<title>App</title>
</head>
<body>
<div id="root"></div>
<script src="/src/index.tsx" type="module"></script>
</body>
</html>

58
frontend/package.json Normal file
View File

@@ -0,0 +1,58 @@
{
"name": "linkpulse",
"version": "0.0.1",
"author": "Xevion <xevion@xevion.dev>",
"type": "module",
"engines": {
"node": ">=22.0.0",
"pnpm": ">=9.0.0"
},
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@ianvs/prettier-plugin-sort-imports": "^4.2.1",
"@nkzw/eslint-config": "^1.16.0",
"@swc/core": "^1.6.5",
"@types/node": "^20.14.8",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
"autoprefixer": "^10.4.19",
"eslint": "^8.57.0",
"npm-run-all2": "^6.2.0",
"postcss": "^8.4.38",
"prettier": "^3.3.2",
"prettier-plugin-tailwindcss": "^0.6.5",
"tailwindcss": "^3.4.4",
"ts-node": "^10.9.2",
"typescript": "^5.5.2",
"vite": "^5.3.1",
"vitest": "^1.6.0"
},
"scripts": {
"preinstall": "command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || true",
"build": "vite build",
"dev:update-deps": "rm -rf pnpm-lock.yaml node_modules/ **/node_modules && pnpm install",
"dev": "vite dev",
"format": "prettier --write .",
"lint:format": "prettier --cache --check .",
"lint": "eslint --cache .",
"test": "npm-run-all --parallel tsc:check vitest:run lint lint:format",
"tsc:check": "tsc",
"vitest:run": "vitest run"
},
"browserslist": [
">0.2%",
"not dead",
"not op_mini all"
],
"pnpm": {
"updateConfig": {
"ignoreDependencies": [
"eslint"
]
}
}
}

5200
frontend/pnpm-lock.yaml generated Normal file
View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
module.exports = {
plugins: {
autoprefixer: {},
tailwindcss: {},
},
};

View File

@@ -0,0 +1,7 @@
export default {
plugins: [
'@ianvs/prettier-plugin-sort-imports',
'prettier-plugin-tailwindcss',
],
singleQuote: true,
};

3
frontend/run.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
pnpm run dev

View File

@@ -0,0 +1,13 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ['./src/**/*.{js,jsx,ts,tsx}', './*.html'],
darkMode: 'media',
mode: 'jit',
theme: {
extend: {
fontFamily: {
inter: ['Inter', 'sans-serif'],
},
},
},
};

33
frontend/tsconfig.json Normal file
View File

@@ -0,0 +1,33 @@
{
"compilerOptions": {
"allowJs": true,
"allowImportingTsExtensions": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"isolatedModules": true,
"jsx": "preserve",
"lib": ["dom", "dom.iterable", "esnext"],
"module": "nodenext",
"moduleResolution": "nodenext",
"noEmit": true,
"noImplicitOverride": true,
"noUnusedLocals": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "es2017",
"types": ["vite/client"]
},
"exclude": ["node_modules"],
"include": ["**/*.ts", "**/*.tsx"],
"ts-node": {
"transpileOnly": true,
"transpiler": "ts-node/transpilers/swc",
"files": true,
"compilerOptions": {
"module": "esnext",
"isolatedModules": false
}
}
}

6
frontend/vite.config.ts Normal file
View File

@@ -0,0 +1,6 @@
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [react()],
});