Refactor ORM commands and searchExtensionData function for improved readability and consistency

- Reformatted import statements for better organization.
- Cleaned up whitespace and indentation in searchExtensionData function.
- Enhanced readability of SQL conditions and query building logic.
- Disabled eslint for explicit any usage in the troubleshooters page.
This commit is contained in:
Huakun Shen 2025-03-26 12:10:35 -04:00
parent 288c9b554a
commit 5d5cbcdeb7
No known key found for this signature in database
4 changed files with 36 additions and 24 deletions

View File

@ -1,6 +1,15 @@
import * as relations from "@kksh/drizzle/relations"
import * as schema from "@kksh/drizzle/schema"
import { CmdType, Ext, ExtCmd, ExtData, SearchMode, SearchModeEnum, SQLSortOrder, SQLSortOrderEnum } from "@kunkunapi/src/models"
import {
CmdType,
Ext,
ExtCmd,
ExtData,
SearchMode,
SearchModeEnum,
SQLSortOrder,
SQLSortOrderEnum
} from "@kunkunapi/src/models"
import * as orm from "drizzle-orm"
import type { SelectedFields } from "drizzle-orm/sqlite-core"
import * as v from "valibot"
@ -243,7 +252,7 @@ export async function searchExtensionData(searchParams: {
}): Promise<ExtData[]> {
const fields = v.parse(v.optional(v.array(ExtDataField), []), searchParams.fields)
const _fields = fields ?? []
// Build the select query based on fields
const selectQuery: SelectedFields = {
dataId: schema.extensionData.dataId,
@ -292,7 +301,9 @@ export async function searchExtensionData(searchParams: {
conditions.push(orm.like(schema.extensionData.searchText, `%${searchParams.searchText}%`))
break
case SearchModeEnum.FTS:
conditions.push(orm.sql`${schema.extensionDataFts.searchText} MATCH ${searchParams.searchText}`)
conditions.push(
orm.sql`${schema.extensionDataFts.searchText} MATCH ${searchParams.searchText}`
)
break
}
}
@ -314,20 +325,22 @@ export async function searchExtensionData(searchParams: {
? orm.asc(schema.extensionData.createdAt)
: orm.desc(schema.extensionData.createdAt)
: searchParams.orderByUpdatedAt
? searchParams.orderByUpdatedAt === SQLSortOrderEnum.Asc
? orm.asc(schema.extensionData.updatedAt)
: orm.desc(schema.extensionData.updatedAt)
: orm.asc(schema.extensionData.createdAt) // Default ordering
? searchParams.orderByUpdatedAt === SQLSortOrderEnum.Asc
? orm.asc(schema.extensionData.updatedAt)
: orm.desc(schema.extensionData.updatedAt)
: orm.asc(schema.extensionData.createdAt) // Default ordering
)
.limit(searchParams.limit ?? 100) // Default limit
.offset(searchParams.offset ?? 0) // Default offset
// Execute query and convert results
const results = await query.all()
return results.map((rawData) => {
// @ts-expect-error - rawData is unknown, but will be safe parsed with valibot
return convertRawExtDataToExtData(rawData)
}).filter((item): item is ExtData => item !== undefined)
return results
.map((rawData) => {
// @ts-expect-error - rawData is unknown, but will be safe parsed with valibot
return convertRawExtDataToExtData(rawData)
})
.filter((item): item is ExtData => item !== undefined)
}
// export async function getNCommands(n: number):

View File

@ -19,6 +19,7 @@
import * as v from "valibot"
let searchText = $state("")
/* eslint-disable */
let data: any = $state(null)
let inspectTitle = $state("")
</script>

View File

@ -1,21 +1,21 @@
import { relations } from "drizzle-orm/relations";
import { extensions, commands, extensionData } from "./schema";
import { relations } from "drizzle-orm/relations"
import { commands, extensionData, extensions } from "./schema"
export const commandsRelations = relations(commands, ({one}) => ({
export const commandsRelations = relations(commands, ({ one }) => ({
extension: one(extensions, {
fields: [commands.extId],
references: [extensions.extId]
}),
}));
})
}))
export const extensionsRelations = relations(extensions, ({many}) => ({
export const extensionsRelations = relations(extensions, ({ many }) => ({
commands: many(commands),
extensionData: many(extensionData),
}));
extensionData: many(extensionData)
}))
export const extensionDataRelations = relations(extensionData, ({one}) => ({
export const extensionDataRelations = relations(extensionData, ({ one }) => ({
extension: one(extensions, {
fields: [extensionData.extId],
references: [extensions.extId]
}),
}));
})
}))

View File

@ -1,4 +1,3 @@
## Permission Table
<table>
@ -7,7 +6,6 @@
<th>Description</th>
</tr>
<tr>
<td>