mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
Fix third batch of linting issues (35 fixed, 52 remaining)
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
@@ -26,7 +26,7 @@ export function ItemsPerPageSelector({
|
||||
label = 'Items per page',
|
||||
}: ItemsPerPageSelectorProps) {
|
||||
const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||
|
||||
onChange(Number(event.target.value))
|
||||
}
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ export function formatValidationErrors(error: z.ZodError): Record<string, string
|
||||
if (formatted[path] === null || formatted[path] === undefined) {
|
||||
formatted[path] = []
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
|
||||
formatted[path].push(issue.message)
|
||||
}
|
||||
|
||||
|
||||
@@ -36,9 +36,9 @@ const createMockPrisma = (): PrismaClient => {
|
||||
|
||||
const createIntegrationPrisma = (): PrismaClient => {
|
||||
// For integration tests, use in-memory database via adapter factory
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
||||
|
||||
const adapter = new PrismaBetterSqlite3({ url: ':memory:' })
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
||||
return new PrismaClient({ adapter })
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ const createProductionPrisma = (): PrismaClient => {
|
||||
|
||||
try {
|
||||
// For Prisma 7, PrismaBetterSqlite3 is a FACTORY that takes config with url, not a client instance
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
|
||||
|
||||
const adapter = new PrismaBetterSqlite3({ url: databaseUrl })
|
||||
console.warn('[Prisma] Adapter factory created successfully')
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import { prisma } from '../../config/prisma'
|
||||
export async function initializeDatabase(): Promise<void> {
|
||||
try {
|
||||
// Prisma client typing is generated; suppress lint in environments without generated types.
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
|
||||
await prisma.$connect()
|
||||
// Database initialized successfully
|
||||
} catch (error) {
|
||||
|
||||
@@ -89,7 +89,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: mockStatus,
|
||||
json: async () => mockResponse,
|
||||
json: () => mockResponse,
|
||||
} as Response)
|
||||
|
||||
const result = await fetchEntityList(tenant, pkg, entity, params as ListQueryParams)
|
||||
@@ -128,7 +128,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: false,
|
||||
status: mockStatus,
|
||||
json: async () => ({ error: mockError }),
|
||||
json: () => ({ error: mockError }),
|
||||
} as Response)
|
||||
|
||||
const result = await fetchEntityList('acme', 'forum', 'posts')
|
||||
@@ -164,7 +164,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: mockStatus,
|
||||
json: async () => mockResponse,
|
||||
json: () => mockResponse,
|
||||
} as Response)
|
||||
|
||||
const result = await fetchEntity(tenant, pkg, entity, id)
|
||||
@@ -189,7 +189,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: false,
|
||||
status: mockStatus,
|
||||
json: async () => ({ error: mockError }),
|
||||
json: () => ({ error: mockError }),
|
||||
} as Response)
|
||||
|
||||
const result = await fetchEntity('acme', 'forum', 'posts', '123')
|
||||
@@ -215,7 +215,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: mockStatus,
|
||||
json: async () => mockResponse,
|
||||
json: () => mockResponse,
|
||||
} as Response)
|
||||
|
||||
const result = await createEntity(tenant, pkg, entity, data)
|
||||
@@ -245,7 +245,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: false,
|
||||
status: mockStatus,
|
||||
json: async () => ({ error: mockError }),
|
||||
json: () => ({ error: mockError }),
|
||||
} as Response)
|
||||
|
||||
const result = await createEntity('acme', 'forum', 'posts', { title: '' })
|
||||
@@ -281,7 +281,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: mockStatus,
|
||||
json: async () => mockResponse,
|
||||
json: () => mockResponse,
|
||||
} as Response)
|
||||
|
||||
const result = await updateEntity(tenant, pkg, entity, id, data)
|
||||
@@ -306,7 +306,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: false,
|
||||
status: mockStatus,
|
||||
json: async () => ({ error: mockError }),
|
||||
json: () => ({ error: mockError }),
|
||||
} as Response)
|
||||
|
||||
const result = await updateEntity('acme', 'forum', 'posts', '123', {})
|
||||
@@ -321,7 +321,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: async () => ({}),
|
||||
json: () => ({}),
|
||||
} as Response)
|
||||
|
||||
const result = await deleteEntity('acme', 'forum', 'posts', '123')
|
||||
@@ -350,7 +350,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: false,
|
||||
status: mockStatus,
|
||||
json: async () => ({ error: mockError }),
|
||||
json: () => ({ error: mockError }),
|
||||
} as Response)
|
||||
|
||||
const result = await deleteEntity('acme', 'forum', 'posts', '123')
|
||||
@@ -365,7 +365,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: async () => ({ data: [] }),
|
||||
json: () => ({ data: [] }),
|
||||
} as Response)
|
||||
|
||||
await fetchEntityList('acme', 'forum', 'posts', { page: 2, limit: 20 })
|
||||
@@ -380,7 +380,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: async () => ({ data: [] }),
|
||||
json: () => ({ data: [] }),
|
||||
} as Response)
|
||||
|
||||
await fetchEntityList('acme', 'forum', 'posts', {
|
||||
@@ -396,7 +396,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: async () => ({ data: [] }),
|
||||
json: () => ({ data: [] }),
|
||||
} as Response)
|
||||
|
||||
await fetchEntityList('acme', 'forum', 'posts', { sort: '-createdAt' })
|
||||
@@ -411,7 +411,7 @@ describe('API Client', () => {
|
||||
vi.mocked(fetch).mockResolvedValueOnce({
|
||||
ok: true,
|
||||
status: 200,
|
||||
json: async () => ({ data: [] }),
|
||||
json: () => ({ data: [] }),
|
||||
} as Response)
|
||||
|
||||
await fetchEntityList('acme', 'forum', 'posts', {})
|
||||
|
||||
@@ -70,15 +70,18 @@ export async function fetchEntityList(
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' }))
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' })) as { error?: string }
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
||||
error: errorData.error ?? `HTTP ${response.status}`,
|
||||
status: response.status,
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const data = await response.json()
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
data: Array.isArray(data) ? data : (data.data ?? []),
|
||||
status: response.status,
|
||||
}
|
||||
@@ -118,15 +121,18 @@ export async function fetchEntity(
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' }))
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' })) as { error?: string }
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
||||
error: errorData.error ?? `HTTP ${response.status}`,
|
||||
status: response.status,
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const data = await response.json()
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
data,
|
||||
status: response.status,
|
||||
}
|
||||
@@ -218,15 +224,18 @@ export async function updateEntity(
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' }))
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' })) as { error?: string }
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
||||
error: errorData.error ?? `HTTP ${response.status}`,
|
||||
status: response.status,
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
const responseData = await response.json()
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
data: responseData,
|
||||
status: response.status,
|
||||
}
|
||||
@@ -266,8 +275,9 @@ export async function deleteEntity(
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' }))
|
||||
const errorData = await response.json().catch(() => ({ error: 'Unknown error' })) as { error?: string }
|
||||
return {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
||||
error: errorData.error ?? `HTTP ${response.status}`,
|
||||
status: response.status,
|
||||
}
|
||||
|
||||
@@ -112,6 +112,7 @@ export async function authenticate(
|
||||
}
|
||||
|
||||
// Run custom permission check if provided
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
if (customCheck !== null && customCheck !== undefined && !customCheck(user)) {
|
||||
return {
|
||||
success: false,
|
||||
@@ -163,6 +164,7 @@ export async function requireAuth(
|
||||
): Promise<CurrentUser> {
|
||||
const { success, user, error } = await authenticate(request, options)
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
if (!success || user === null || user === undefined) {
|
||||
throw new Error(error !== undefined ? 'Authentication failed' : 'Unknown authentication error')
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { prisma } from '@/lib/config/prisma'
|
||||
|
||||
export async function loadPageFromDb(path: string, tenantId?: string): Promise<PageConfig | null> {
|
||||
// Prisma client typing is generated; suppress lint in environments without generated types.
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
|
||||
const page = await prisma.pageConfig.findFirst({
|
||||
where: {
|
||||
path,
|
||||
|
||||
Reference in New Issue
Block a user