diff --git a/src/frontend/eslint.config.ts b/src/frontend/eslint.config.ts
index 2db585e..aab6828 100644
--- a/src/frontend/eslint.config.ts
+++ b/src/frontend/eslint.config.ts
@@ -1,7 +1,7 @@
-import pluginVue from 'eslint-plugin-vue'
-import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'
-import oxlint from 'eslint-plugin-oxlint'
-import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
+import pluginVue from "eslint-plugin-vue";
+import { defineConfigWithVueTs, vueTsConfigs } from "@vue/eslint-config-typescript";
+import oxlint from "eslint-plugin-oxlint";
+import skipFormatting from "@vue/eslint-config-prettier/skip-formatting";
// To allow more languages other than `ts` in `.vue` files, uncomment the following lines:
// import { configureVueProject } from '@vue/eslint-config-typescript'
@@ -10,17 +10,17 @@ import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
export default defineConfigWithVueTs(
{
- name: 'app/files-to-lint',
- files: ['**/*.{ts,mts,tsx,vue}'],
+ name: "app/files-to-lint",
+ files: ["**/*.{ts,mts,tsx,vue}"],
},
{
- name: 'app/files-to-ignore',
- ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
+ name: "app/files-to-ignore",
+ ignores: ["**/dist/**", "**/dist-ssr/**", "**/coverage/**"],
},
- pluginVue.configs['flat/essential'],
+ pluginVue.configs["flat/essential"],
vueTsConfigs.recommended,
- oxlint.configs['flat/recommended'],
+ oxlint.configs["flat/recommended"],
skipFormatting,
-)
+);
diff --git a/src/frontend/index.html b/src/frontend/index.html
index 9e5fc8f..9d30802 100644
--- a/src/frontend/index.html
+++ b/src/frontend/index.html
@@ -1,9 +1,9 @@
-
+
-
-
-
+
+
+
Vite App
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 84cbeb3..15d4d92 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -20,6 +20,11 @@
"tailwindcss": "^4.0.9",
"vue": "^3.5.13"
},
+ "prettier": {
+ "plugins": [
+ "tailwindcss"
+ ]
+ },
"devDependencies": {
"@tsconfig/node22": "^22.0.0",
"@types/node": "^22.10.7",
@@ -28,13 +33,14 @@
"@vue/eslint-config-typescript": "^14.3.0",
"@vue/tsconfig": "^0.7.0",
"daisyui": "^5.0.6",
- "eslint": "^9.18.0",
+ "eslint": "^9.20.1",
"eslint-plugin-oxlint": "^0.15.6",
"eslint-plugin-vue": "^9.32.0",
"jiti": "^2.4.2",
"npm-run-all2": "^7.0.2",
"oxlint": "^0.15.6",
- "prettier": "^3.4.2",
+ "prettier": "^3.5.0",
+ "prettier-plugin-tailwindcss": "^0.6.11",
"typescript": "~5.7.3",
"vite": "^6.0.11",
"vite-plugin-vue-devtools": "^7.7.0",
diff --git a/src/frontend/pnpm-lock.yaml b/src/frontend/pnpm-lock.yaml
index ec9a6f3..be4879e 100644
--- a/src/frontend/pnpm-lock.yaml
+++ b/src/frontend/pnpm-lock.yaml
@@ -43,7 +43,7 @@ importers:
specifier: ^5.0.6
version: 5.0.6
eslint:
- specifier: ^9.18.0
+ specifier: ^9.20.1
version: 9.20.1(jiti@2.4.2)
eslint-plugin-oxlint:
specifier: ^0.15.6
@@ -61,8 +61,11 @@ importers:
specifier: ^0.15.6
version: 0.15.10
prettier:
- specifier: ^3.4.2
+ specifier: ^3.5.0
version: 3.5.0
+ prettier-plugin-tailwindcss:
+ specifier: ^0.6.11
+ version: 0.6.11(prettier@3.5.0)
typescript:
specifier: ~5.7.3
version: 5.7.3
@@ -1555,6 +1558,61 @@ packages:
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
engines: {node: '>=6.0.0'}
+ prettier-plugin-tailwindcss@0.6.11:
+ resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
+ engines: {node: '>=14.21.3'}
+ peerDependencies:
+ '@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-pug': '*'
+ '@shopify/prettier-plugin-liquid': '*'
+ '@trivago/prettier-plugin-sort-imports': '*'
+ '@zackad/prettier-plugin-twig': '*'
+ prettier: ^3.0
+ prettier-plugin-astro: '*'
+ prettier-plugin-css-order: '*'
+ prettier-plugin-import-sort: '*'
+ prettier-plugin-jsdoc: '*'
+ prettier-plugin-marko: '*'
+ prettier-plugin-multiline-arrays: '*'
+ prettier-plugin-organize-attributes: '*'
+ prettier-plugin-organize-imports: '*'
+ prettier-plugin-sort-imports: '*'
+ prettier-plugin-style-order: '*'
+ prettier-plugin-svelte: '*'
+ peerDependenciesMeta:
+ '@ianvs/prettier-plugin-sort-imports':
+ optional: true
+ '@prettier/plugin-pug':
+ optional: true
+ '@shopify/prettier-plugin-liquid':
+ optional: true
+ '@trivago/prettier-plugin-sort-imports':
+ optional: true
+ '@zackad/prettier-plugin-twig':
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+ prettier-plugin-css-order:
+ optional: true
+ prettier-plugin-import-sort:
+ optional: true
+ prettier-plugin-jsdoc:
+ optional: true
+ prettier-plugin-marko:
+ optional: true
+ prettier-plugin-multiline-arrays:
+ optional: true
+ prettier-plugin-organize-attributes:
+ optional: true
+ prettier-plugin-organize-imports:
+ optional: true
+ prettier-plugin-sort-imports:
+ optional: true
+ prettier-plugin-style-order:
+ optional: true
+ prettier-plugin-svelte:
+ optional: true
+
prettier@3.5.0:
resolution: {integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==}
engines: {node: '>=14'}
@@ -3265,6 +3323,10 @@ snapshots:
dependencies:
fast-diff: 1.3.0
+ prettier-plugin-tailwindcss@0.6.11(prettier@3.5.0):
+ dependencies:
+ prettier: 3.5.0
+
prettier@3.5.0: {}
pretty-ms@9.2.0:
diff --git a/src/frontend/src/App.vue b/src/frontend/src/App.vue
index 577b037..da39e3c 100644
--- a/src/frontend/src/App.vue
+++ b/src/frontend/src/App.vue
@@ -1,23 +1,21 @@
-
diff --git a/src/frontend/src/components/stats.vue b/src/frontend/src/components/stats.vue
index 02a399c..f195f5f 100644
--- a/src/frontend/src/components/stats.vue
+++ b/src/frontend/src/components/stats.vue
@@ -1,9 +1,9 @@
-
![]()
+
{{ event!.member.name }}
diff --git a/src/frontend/src/main.ts b/src/frontend/src/main.ts
index 0ac3a5f..9d71566 100644
--- a/src/frontend/src/main.ts
+++ b/src/frontend/src/main.ts
@@ -1,6 +1,6 @@
-import './assets/main.css'
+import "./assets/main.css";
-import { createApp } from 'vue'
-import App from './App.vue'
+import { createApp } from "vue";
+import App from "./App.vue";
-createApp(App).mount('#app')
+createApp(App).mount("#app");
diff --git a/src/frontend/src/types/global.ts b/src/frontend/src/types/global.ts
index 852d57d..2937ffa 100644
--- a/src/frontend/src/types/global.ts
+++ b/src/frontend/src/types/global.ts
@@ -1,33 +1,33 @@
/**
-* This file was @generated using pocketbase-typegen
-*/
+ * This file was @generated using pocketbase-typegen
+ */
-import type PocketBase from 'pocketbase'
-import type { RecordService } from 'pocketbase'
+import type PocketBase from "pocketbase";
+import type { RecordService } from "pocketbase";
export enum Collections {
VcStats = "vc_stats",
}
// Alias types for improved usability
-export type IsoDateString = string
-export type RecordIdString = string
-export type HTMLString = string
+export type IsoDateString = string;
+export type RecordIdString = string;
+export type HTMLString = string;
// System fields
export type BaseSystemFields
= {
- id: RecordIdString
- collectionId: string
- collectionName: Collections
- expand?: T
-}
+ id: RecordIdString;
+ collectionId: string;
+ collectionName: Collections;
+ expand?: T;
+};
export type AuthSystemFields = {
- email: string
- emailVisibility: boolean
- username: string
- verified: boolean
-} & BaseSystemFields
+ email: string;
+ emailVisibility: boolean;
+ username: string;
+ verified: boolean;
+} & BaseSystemFields;
// Record types for each collection
@@ -42,49 +42,49 @@ export enum VcStatsEventOptions {
}
export enum guilds {
"kaffeeklatsch" = "756605475960914200",
- "acns" = "1045094089198145500"
+ "acns" = "1045094089198145500",
}
export type channel = {
- id: string
- name: string
-}
+ id: string;
+ name: string;
+};
export type guild = {
- icon: string
- id: string
- name: guilds
-}
+ icon: string;
+ id: string;
+ name: guilds;
+};
export type member = {
- avatar: string
- id: string
- name: string
-}
+ avatar: string;
+ id: string;
+ name: string;
+};
export type VcStatsRecord = {
- channel?: channel
- created?: IsoDateString
- event: VcStatsEventOptions
- guild?: guild
- id: string
- member?: member
- updated?: IsoDateString
-}
+ channel?: channel;
+ created?: IsoDateString;
+ event: VcStatsEventOptions;
+ guild?: guild;
+ id: string;
+ member?: member;
+ updated?: IsoDateString;
+};
// Response types include system fields and match responses from the PocketBase API
-export type VcStatsResponse = Required & BaseSystemFields
+export type VcStatsResponse = Required & BaseSystemFields;
// Types containing all Records and Responses, useful for creating typing helper functions
export type CollectionRecords = {
- vc_stats: VcStatsRecord
-}
+ vc_stats: VcStatsRecord;
+};
export type CollectionResponses = {
- vc_stats: VcStatsResponse
-}
+ vc_stats: VcStatsResponse;
+};
// Type for usage with type asserted PocketBase instance
// https://github.com/pocketbase/js-sdk#specify-typescript-definitions
export type TypedPocketBase = PocketBase & {
- collection(idOrName: 'vc_stats'): RecordService
-}
-export { };
+ collection(idOrName: "vc_stats"): RecordService;
+};
+export {};
diff --git a/src/frontend/tsconfig.app.json b/src/frontend/tsconfig.app.json
index 2509f97..1b3ee38 100644
--- a/src/frontend/tsconfig.app.json
+++ b/src/frontend/tsconfig.app.json
@@ -1,20 +1,11 @@
{
"extends": "@vue/tsconfig/tsconfig.dom.json",
- "include": [
- "env.d.ts",
- "src/**/*",
- "src/**/*.d.ts",
- "src/**/*.vue"
- ],
- "exclude": [
- "src/**/__tests__/*"
- ],
+ "include": ["env.d.ts", "src/**/*", "src/**/*.d.ts", "src/**/*.vue"],
+ "exclude": ["src/**/__tests__/*"],
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"paths": {
- "@/*": [
- "./src/*"
- ]
+ "@/*": ["./src/*"]
}
}
}
diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts
index 6f66130..c2e965a 100644
--- a/src/frontend/vite.config.ts
+++ b/src/frontend/vite.config.ts
@@ -1,20 +1,16 @@
-import { fileURLToPath, URL } from 'node:url'
+import { fileURLToPath, URL } from "node:url";
-import { defineConfig } from 'vite'
-import tailwindcss from '@tailwindcss/vite'
-import vue from '@vitejs/plugin-vue'
-import vueDevTools from 'vite-plugin-vue-devtools'
+import { defineConfig } from "vite";
+import tailwindcss from "@tailwindcss/vite";
+import vue from "@vitejs/plugin-vue";
+import vueDevTools from "vite-plugin-vue-devtools";
// https://vite.dev/config/
export default defineConfig({
- plugins: [
- tailwindcss(),
- vue(),
- vueDevTools(),
- ],
+ plugins: [tailwindcss(), vue(), vueDevTools()],
resolve: {
alias: {
- '@': fileURLToPath(new URL('./src', import.meta.url))
+ "@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
-})
+});