From 416ae34317b52b9e0335b1b342e5182a8372be8a Mon Sep 17 00:00:00 2001 From: qwerinope Date: Fri, 4 Apr 2025 20:18:39 +0200 Subject: [PATCH] no more any types, forgot to actually call env in migration --- pb/migrations/initialize.js | 4 ++-- src/lib/lootboxes.ts | 4 ++-- src/lib/pocketbase.ts | 36 ++++++++++++++++++++++++++++++++++-- src/lib/userHelper.ts | 4 ++-- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/pb/migrations/initialize.js b/pb/migrations/initialize.js index 295c107..a0a4b39 100644 --- a/pb/migrations/initialize.js +++ b/pb/migrations/initialize.js @@ -9,8 +9,8 @@ migrate(app => { const password = process.env.PASSWORD ?? '1234567890' // This should be communicated to the user, or be set by the user. - record.set("email", "test@example.com") - record.set("password", "1234567890") + record.set("email", email) + record.set("password", password) app.save(record) const data = [ diff --git a/src/lib/lootboxes.ts b/src/lib/lootboxes.ts index a480da3..248b64e 100644 --- a/src/lib/lootboxes.ts +++ b/src/lib/lootboxes.ts @@ -1,5 +1,5 @@ import { HelixUser } from "@twurple/api" -import pb from "./pocketbase" +import pb, { User } from "./pocketbase" // const COOLDOWN = 1000 * 60 * 60 * 24 * 30 // 1000 milliseconds * 60 seconds * 60 minutes * 24 hours * 30 days export const COOLDOWN = 1000 * 60 * 15 @@ -7,7 +7,7 @@ export const COOLDOWN = 1000 * 60 * 15 interface lootboxReadyResult { result: boolean, lastlootbox: number, - DBuser: any // TODO: proper types for db user (again). check RecordModel + DBuser: User } export async function lootboxReady(user: HelixUser | null): Promise { diff --git a/src/lib/pocketbase.ts b/src/lib/pocketbase.ts index 3ceec0e..334190b 100644 --- a/src/lib/pocketbase.ts +++ b/src/lib/pocketbase.ts @@ -1,4 +1,36 @@ -import PocketBase from 'pocketbase' +import PocketBase, { BaseModel, RecordService } from 'pocketbase' +import { inventory } from "./userHelper" + +export interface User extends BaseModel { + twitchid: string, + firstname: string, + inventory: inventory, + itemuses: inventory, + balance: number, + lastlootbox: string +} + +export interface TTVAuth extends BaseModel { + auth: JSON, + main: boolean +} + +export interface Timeout extends BaseModel { + source: 'silverbullet' | 'grenade' | 'blaster' | 'tnt', + attacker: string, + target: string, + attackername: string, + targetname: string +} + +interface TypedPocketBase extends PocketBase { + collection(idOrName: string): RecordService, + collection(idOrName: 'users'): RecordService, + collection(idOrName: 'ttvauth'): RecordService + collection(idOrName: 'timeouts'): RecordService +} + + const PBURL = process.env.PBURL ?? 'http://pocketbase:8090' -const pb = new PocketBase(PBURL) +const pb = new PocketBase(PBURL) as TypedPocketBase export default pb diff --git a/src/lib/userHelper.ts b/src/lib/userHelper.ts index efd8039..c952f44 100644 --- a/src/lib/userHelper.ts +++ b/src/lib/userHelper.ts @@ -1,4 +1,4 @@ -import pb from './pocketbase' +import pb, { User } from './pocketbase' import { HelixUser } from '@twurple/api' export const EMPTYINV: inventory = { @@ -26,7 +26,7 @@ export async function getDBID(user: HelixUser) { type balanceGetResult = { balance: number, - data: any // TODO: propet type for data returned from database + data: User } export async function getBalance(user: HelixUser): Promise {