Chore: Replaced explicit with implicit types
This commit is contained in:
parent
b28d381948
commit
d022d9fcf6
3 changed files with 22 additions and 48 deletions
|
@ -1,20 +1,12 @@
|
|||
import stringify from "json-stable-stringify";
|
||||
import objectHash from "object-hash";
|
||||
import { guilds, matches, tpMessages } from "~/drizzle/schema";
|
||||
import { ExtractDataTypes, GetColumns } from "~/types/db";
|
||||
|
||||
export const buildMatches = (
|
||||
matches: {
|
||||
id: number;
|
||||
messageId: number;
|
||||
guildId: number;
|
||||
channelId: number;
|
||||
createrId: number;
|
||||
roleId: number;
|
||||
matchType: string;
|
||||
opponentName: string;
|
||||
utc_ts: Date;
|
||||
}[],
|
||||
queryMatches: ExtractDataTypes<GetColumns<typeof matches>>[],
|
||||
) =>
|
||||
matches.map(
|
||||
queryMatches.map(
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
({ id, guildId, utc_ts, ...match }) => ({
|
||||
...match,
|
||||
|
@ -22,32 +14,12 @@ export const buildMatches = (
|
|||
}),
|
||||
);
|
||||
|
||||
export function buildConfig(guildQuery: {
|
||||
id: number;
|
||||
timezone: string;
|
||||
tpEnabled: boolean;
|
||||
tpChannelId: number | null;
|
||||
tpInterval: number;
|
||||
tpRoles: boolean;
|
||||
isAvailableRoleId: number | null;
|
||||
wantsToBeNotifieRoledId: number | null;
|
||||
tpMessages: {
|
||||
messageId: number | null;
|
||||
day: number;
|
||||
guildId: number;
|
||||
}[];
|
||||
matches: {
|
||||
id: number;
|
||||
messageId: number;
|
||||
guildId: number;
|
||||
channelId: number;
|
||||
createrId: number;
|
||||
roleId: number;
|
||||
matchType: string;
|
||||
opponentName: string;
|
||||
utc_ts: Date;
|
||||
}[];
|
||||
}) {
|
||||
export function buildConfig(
|
||||
guildQuery: ExtractDataTypes<GetColumns<typeof guilds>> & {
|
||||
tpMessages: ExtractDataTypes<GetColumns<typeof tpMessages>>[];
|
||||
matches: ExtractDataTypes<GetColumns<typeof matches>>[];
|
||||
},
|
||||
) {
|
||||
const {
|
||||
id,
|
||||
timezone,
|
||||
|
|
11
src/types/db.d.ts
vendored
Normal file
11
src/types/db.d.ts
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { PgColumn, PgTableWithColumns } from "drizzle-orm/pg-core";
|
||||
|
||||
export type GetColumns<T> =
|
||||
T extends PgTableWithColumns<infer Table> ? Table["columns"] : never;
|
||||
|
||||
export type ExtractDataTypes<T> = {
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
[K in keyof T]: T[K] extends PgColumn<infer ColumnConfig, any, any>
|
||||
? ColumnConfig["data"]
|
||||
: unknown;
|
||||
};
|
11
src/types/lucia-auth.d.ts
vendored
11
src/types/lucia-auth.d.ts
vendored
|
@ -1,6 +1,6 @@
|
|||
import { PgColumn, PgTableWithColumns } from "drizzle-orm/pg-core";
|
||||
import { users } from "~/drizzle/schema";
|
||||
import { lucia } from "~/lib/auth";
|
||||
import { ExtractDataTypes, GetColumns } from "./db";
|
||||
|
||||
declare module "lucia" {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
|
@ -10,15 +10,6 @@ declare module "lucia" {
|
|||
}
|
||||
}
|
||||
|
||||
type GetColumns<T> =
|
||||
T extends PgTableWithColumns<infer First> ? First["columns"] : never;
|
||||
|
||||
type ExtractDataTypes<T> = {
|
||||
[K in keyof T]: T[K] extends PgColumn<infer DataType, never, never>
|
||||
? DataType["data"]
|
||||
: never;
|
||||
};
|
||||
|
||||
interface DatabaseUserAttributes
|
||||
extends ExtractDataTypes<GetColumns<typeof users>> {
|
||||
warst: string;
|
||||
|
|
Loading…
Reference in a new issue