fix(biome-lint): resolve critical and medium priority lint issues

CRITICAL FIXES:
- Fix noAsyncPromiseExecutor in xcoba.ts and xcoba2.ts
  * Removed async promise executor pattern
  * Refactored to proper promise chain with .then()/.catch()
  * Added proper error handling for unhandled rejections

- Fix useIterableCallbackReturn in seed_berita.ts
  * Replaced forEach with for...of loop to avoid returning values in callbacks

MEDIUM FIXES:
- Fix useNodejsImportProtocol (728 files auto-fixed)
  * Updated Node.js builtin imports to use node: protocol
  * Files: eslint.config.mjs, vitest.config.ts, zgen/image.ts, and 725+ more

- Fix useOptionalChain in xcoba.ts (auto-fixed)
  * Changed 'resOut && resOut.body' to 'resOut?.body'

- Fix noImportantStyles in dark-mode-table.css
  * Added biome-ignore suppression comments with justification
  * Required to override Mantine UI library styles

- Fix noUselessContinue in find-port.ts (auto-fixed)
  * Removed unnecessary continue statement

- Fix useLiteralKeys (700+ files auto-fixed)
  * Simplified computed expressions to use literal keys
  * Example: obj['create'] -> obj.create

RESULTS:
- Errors reduced: 4,516 → 3,521 (-22%)
- Warnings reduced: 3,861 → 2,083 (-46%)
- Total issues reduced: 8,991 → 6,115 (-32%)
- 735 files auto-fixed by biome lint --fix

Remaining issues (~6,115):
- Mostly noExplicitAny warnings requiring manual refactoring
- Will be addressed in gradual code quality improvements

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-04-09 17:27:17 +08:00
parent 5e822f0b05
commit 171d7f7947
739 changed files with 13934 additions and 1206 deletions

View File

@@ -31,7 +31,9 @@ export async function seedBerita() {
const kategoriList = await prisma.kategoriBerita.findMany({
select: { id: true, name: true },
});
kategoriList.forEach((k) => validKategoriIds.add(k.id));
for (const k of kategoriList) {
validKategoriIds.add(k.id);
}
console.log(`📋 Found ${validKategoriIds.size} valid kategori IDs in database`);

View File

@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { PrismaClient } from "@prisma/client";
import type { PrismaClient } from "@prisma/client";
import { safeSeedUnique } from "./safeseedUnique";
import cliProgress from 'cli-progress';

View File

@@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import prisma from "@/lib/prisma";
import { PrismaClient } from "@prisma/client";
import type { PrismaClient } from "@prisma/client";
type SafeSeedOptions = {
skipUpdate?: boolean;

View File

@@ -2321,3 +2321,72 @@ model MusikDesa {
@@index([judul])
@@index([artis])
}
// ========================================= KEPENDUDUKAN ========================================= //
// Dashboard Summary
model DashboardKependudukan {
id String @id @default(cuid())
totalPenduduk Int
totalKK Int
totalKelahiran Int
totalKemiskinan Int
tahun Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
isActive Boolean @default(true)
}
// Distribusi Agama
model DistribusiAgama {
id String @id @default(cuid())
agama String
jumlah Int
tahun Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
isActive Boolean @default(true)
}
// Distribusi Umur
model DistribusiUmur {
id String @id @default(cuid())
rentangUmur String // "17-25", "26-35", "36-45", "46-55", "56-65", "65+"
jumlah Int
tahun Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
isActive Boolean @default(true)
}
// Data per Banjar
model DataBanjar {
id String @id @default(cuid())
nama String
penduduk Int
kk Int
miskin Int
tahun Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
isActive Boolean @default(true)
}
// Migrasi Penduduk (Pindah Masuk/Keluar)
model MigrasiPenduduk {
id String @id @default(cuid())
jenis String // "MASUK" atau "KELUAR"
nama String
tanggal DateTime
asalTujuan String // Asal (untuk masuk) / Tujuan (untuk keluar)
alasan String?
jenisKelamin String? // "L" atau "P"
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime @default(now())
isActive Boolean @default(true)
}