summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-15 23:50:47 -0400
committerGitHub <[email protected]>2026-04-16 03:50:47 +0000
commit8aa0f9fe9515ba0234ab6a0a58c868068913bb05 (patch)
treed079fdd75796492449157256dafe7e309e04da63 /packages/console/app
parentc802695ee9555ccfd8b0a6ae2215f750bccda712 (diff)
downloadopencode-8aa0f9fe9515ba0234ab6a0a58c868068913bb05.tar.gz
opencode-8aa0f9fe9515ba0234ab6a0a58c868068913bb05.zip
feat: enable type-aware no-base-to-string rule, fix 56 violations (#22750)
Diffstat (limited to 'packages/console/app')
-rw-r--r--packages/console/app/src/routes/workspace/[id]/billing/black-section.tsx4
-rw-r--r--packages/console/app/src/routes/workspace/[id]/billing/monthly-limit-section.tsx4
-rw-r--r--packages/console/app/src/routes/workspace/[id]/billing/reload-section.tsx22
-rw-r--r--packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx4
-rw-r--r--packages/console/app/src/routes/workspace/[id]/keys/key-section.tsx8
-rw-r--r--packages/console/app/src/routes/workspace/[id]/members/member-section.tsx22
-rw-r--r--packages/console/app/src/routes/workspace/[id]/model-section.tsx8
-rw-r--r--packages/console/app/src/routes/workspace/[id]/provider-section.tsx17
-rw-r--r--packages/console/app/src/routes/workspace/[id]/settings/settings-section.tsx4
9 files changed, 48 insertions, 45 deletions
diff --git a/packages/console/app/src/routes/workspace/[id]/billing/black-section.tsx b/packages/console/app/src/routes/workspace/[id]/billing/black-section.tsx
index b8f089864..5b4389466 100644
--- a/packages/console/app/src/routes/workspace/[id]/billing/black-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/billing/black-section.tsx
@@ -116,9 +116,9 @@ const createSessionUrl = action(async (workspaceID: string, returnUrl: string) =
const setUseBalance = action(async (form: FormData) => {
"use server"
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const useBalance = form.get("useBalance")?.toString() === "true"
+ const useBalance = (form.get("useBalance") as string | null) === "true"
return json(
await withActor(async () => {
diff --git a/packages/console/app/src/routes/workspace/[id]/billing/monthly-limit-section.tsx b/packages/console/app/src/routes/workspace/[id]/billing/monthly-limit-section.tsx
index ef54b8409..7da1de238 100644
--- a/packages/console/app/src/routes/workspace/[id]/billing/monthly-limit-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/billing/monthly-limit-section.tsx
@@ -10,11 +10,11 @@ import { formError, localizeError } from "~/lib/form-error"
const setMonthlyLimit = action(async (form: FormData) => {
"use server"
- const limit = form.get("limit")?.toString()
+ const limit = form.get("limit") as string | null
if (!limit) return { error: formError.limitRequired }
const numericLimit = parseInt(limit)
if (numericLimit < 0) return { error: formError.monthlyLimitInvalid }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(
await withActor(
diff --git a/packages/console/app/src/routes/workspace/[id]/billing/reload-section.tsx b/packages/console/app/src/routes/workspace/[id]/billing/reload-section.tsx
index a25963ab0..c9a72c087 100644
--- a/packages/console/app/src/routes/workspace/[id]/billing/reload-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/billing/reload-section.tsx
@@ -12,7 +12,7 @@ import { formError, formErrorReloadAmountMin, formErrorReloadTriggerMin, localiz
const reload = action(async (form: FormData) => {
"use server"
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(await withActor(() => Billing.reload(), workspaceID), {
revalidate: queryBillingInfo.key,
@@ -21,11 +21,11 @@ const reload = action(async (form: FormData) => {
const setReload = action(async (form: FormData) => {
"use server"
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const reloadValue = form.get("reload")?.toString() === "true"
- const amountStr = form.get("reloadAmount")?.toString()
- const triggerStr = form.get("reloadTrigger")?.toString()
+ const reloadValue = (form.get("reload") as string | null) === "true"
+ const amountStr = form.get("reloadAmount") as string | null
+ const triggerStr = form.get("reloadTrigger") as string | null
const reloadAmount = amountStr && amountStr.trim() !== "" ? parseInt(amountStr) : null
const reloadTrigger = triggerStr && triggerStr.trim() !== "" ? parseInt(triggerStr) : null
@@ -91,8 +91,8 @@ export function ReloadSection() {
const info = billingInfo()!
setStore("show", true)
setStore("reload", true)
- setStore("reloadAmount", info.reloadAmount.toString())
- setStore("reloadTrigger", info.reloadTrigger.toString())
+ setStore("reloadAmount", String(info.reloadAmount))
+ setStore("reloadTrigger", String(info.reloadTrigger))
}
function hide() {
@@ -152,11 +152,11 @@ export function ReloadSection() {
data-component="input"
name="reloadAmount"
type="number"
- min={billingInfo()?.reloadAmountMin.toString()}
+ min={String(billingInfo()?.reloadAmountMin ?? "")}
step="1"
value={store.reloadAmount}
onInput={(e) => setStore("reloadAmount", e.currentTarget.value)}
- placeholder={billingInfo()?.reloadAmount.toString()}
+ placeholder={String(billingInfo()?.reloadAmount ?? "")}
disabled={!store.reload}
/>
</div>
@@ -166,11 +166,11 @@ export function ReloadSection() {
data-component="input"
name="reloadTrigger"
type="number"
- min={billingInfo()?.reloadTriggerMin.toString()}
+ min={String(billingInfo()?.reloadTriggerMin ?? "")}
step="1"
value={store.reloadTrigger}
onInput={(e) => setStore("reloadTrigger", e.currentTarget.value)}
- placeholder={billingInfo()?.reloadTrigger.toString()}
+ placeholder={String(billingInfo()?.reloadTrigger ?? "")}
disabled={!store.reload}
/>
</div>
diff --git a/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx b/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx
index 95ff7af2b..d0f812182 100644
--- a/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/go/lite-section.tsx
@@ -120,9 +120,9 @@ const createSessionUrl = action(async (workspaceID: string, returnUrl: string) =
const setLiteUseBalance = action(async (form: FormData) => {
"use server"
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const useBalance = form.get("useBalance")?.toString() === "true"
+ const useBalance = (form.get("useBalance") as string | null) === "true"
return json(
await withActor(async () => {
diff --git a/packages/console/app/src/routes/workspace/[id]/keys/key-section.tsx b/packages/console/app/src/routes/workspace/[id]/keys/key-section.tsx
index 837ab743a..cb273a422 100644
--- a/packages/console/app/src/routes/workspace/[id]/keys/key-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/keys/key-section.tsx
@@ -12,18 +12,18 @@ import { formError, localizeError } from "~/lib/form-error"
const removeKey = action(async (form: FormData) => {
"use server"
- const id = form.get("id")?.toString()
+ const id = form.get("id") as string | null
if (!id) return { error: formError.idRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(await withActor(() => Key.remove({ id }), workspaceID), { revalidate: listKeys.key })
}, "key.remove")
const createKey = action(async (form: FormData) => {
"use server"
- const name = form.get("name")?.toString().trim()
+ const name = (form.get("name") as string | null)?.trim()
if (!name) return { error: formError.nameRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(
await withActor(
diff --git a/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx b/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
index 5a440632f..00edb400c 100644
--- a/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/members/member-section.tsx
@@ -24,13 +24,13 @@ const listMembers = query(async (workspaceID: string) => {
const inviteMember = action(async (form: FormData) => {
"use server"
- const email = form.get("email")?.toString().trim()
+ const email = (form.get("email") as string | null)?.trim()
if (!email) return { error: formError.emailRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const role = form.get("role")?.toString() as (typeof UserRole)[number]
+ const role = form.get("role") as (typeof UserRole)[number] | null
if (!role) return { error: formError.roleRequired }
- const limit = form.get("limit")?.toString()
+ const limit = form.get("limit") as string | null
const monthlyLimit = limit && limit.trim() !== "" ? parseInt(limit) : null
if (monthlyLimit !== null && monthlyLimit < 0) return { error: formError.monthlyLimitInvalid }
return json(
@@ -47,9 +47,9 @@ const inviteMember = action(async (form: FormData) => {
const removeMember = action(async (form: FormData) => {
"use server"
- const id = form.get("id")?.toString()
+ const id = form.get("id") as string | null
if (!id) return { error: formError.idRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(
await withActor(
@@ -66,13 +66,13 @@ const removeMember = action(async (form: FormData) => {
const updateMember = action(async (form: FormData) => {
"use server"
- const id = form.get("id")?.toString()
+ const id = form.get("id") as string | null
if (!id) return { error: formError.idRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const role = form.get("role")?.toString() as (typeof UserRole)[number]
+ const role = form.get("role") as (typeof UserRole)[number] | null
if (!role) return { error: formError.roleRequired }
- const limit = form.get("limit")?.toString()
+ const limit = form.get("limit") as string | null
const monthlyLimit = limit && limit.trim() !== "" ? parseInt(limit) : null
if (monthlyLimit !== null && monthlyLimit < 0) return { error: formError.monthlyLimitInvalid }
@@ -118,7 +118,7 @@ function MemberRow(props: {
}
setStore("editing", true)
setStore("selectedRole", props.member.role)
- setStore("limit", props.member.monthlyLimit?.toString() ?? "")
+ setStore("limit", props.member.monthlyLimit != null ? String(props.member.monthlyLimit) : "")
}
function hide() {
diff --git a/packages/console/app/src/routes/workspace/[id]/model-section.tsx b/packages/console/app/src/routes/workspace/[id]/model-section.tsx
index bf19f81cd..b9cdf3bc3 100644
--- a/packages/console/app/src/routes/workspace/[id]/model-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/model-section.tsx
@@ -67,11 +67,11 @@ const getModelsInfo = query(async (workspaceID: string) => {
const updateModel = action(async (form: FormData) => {
"use server"
- const model = form.get("model")?.toString()
+ const model = form.get("model") as string | null
if (!model) return { error: formError.modelRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
- const enabled = form.get("enabled")?.toString() === "true"
+ const enabled = (form.get("enabled") as string | null) === "true"
return json(
withActor(async () => {
if (enabled) {
@@ -163,7 +163,7 @@ export function ModelSection() {
<form action={updateModel} method="post">
<input type="hidden" name="model" value={id} />
<input type="hidden" name="workspaceID" value={params.id} />
- <input type="hidden" name="enabled" value={isEnabled().toString()} />
+ <input type="hidden" name="enabled" value={String(isEnabled())} />
<label data-slot="model-toggle-label">
<input
type="checkbox"
diff --git a/packages/console/app/src/routes/workspace/[id]/provider-section.tsx b/packages/console/app/src/routes/workspace/[id]/provider-section.tsx
index fe04bf7c0..acdd89742 100644
--- a/packages/console/app/src/routes/workspace/[id]/provider-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/provider-section.tsx
@@ -21,9 +21,9 @@ function maskCredentials(credentials: string) {
const removeProvider = action(async (form: FormData) => {
"use server"
- const provider = form.get("provider")?.toString()
+ const provider = form.get("provider") as string | null
if (!provider) return { error: formError.providerRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(await withActor(() => Provider.remove({ provider }), workspaceID), {
revalidate: listProviders.key,
@@ -32,11 +32,11 @@ const removeProvider = action(async (form: FormData) => {
const saveProvider = action(async (form: FormData) => {
"use server"
- const provider = form.get("provider")?.toString()
- const credentials = form.get("credentials")?.toString()
+ const provider = form.get("provider") as string | null
+ const credentials = form.get("credentials") as string | null
if (!provider) return { error: formError.providerRequired }
if (!credentials) return { error: formError.apiKeyRequired }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(
await withActor(
@@ -59,10 +59,13 @@ function ProviderRow(props: { provider: Provider }) {
const params = useParams()
const i18n = useI18n()
const providers = createAsync(() => listProviders(params.id!))
- const saveSubmission = useSubmission(saveProvider, ([fd]) => fd.get("provider")?.toString() === props.provider.key)
+ const saveSubmission = useSubmission(
+ saveProvider,
+ ([fd]) => (fd.get("provider") as string | null) === props.provider.key,
+ )
const removeSubmission = useSubmission(
removeProvider,
- ([fd]) => fd.get("provider")?.toString() === props.provider.key,
+ ([fd]) => (fd.get("provider") as string | null) === props.provider.key,
)
const [store, setStore] = createStore({ editing: false })
diff --git a/packages/console/app/src/routes/workspace/[id]/settings/settings-section.tsx b/packages/console/app/src/routes/workspace/[id]/settings/settings-section.tsx
index 5e8331e26..a9950c41e 100644
--- a/packages/console/app/src/routes/workspace/[id]/settings/settings-section.tsx
+++ b/packages/console/app/src/routes/workspace/[id]/settings/settings-section.tsx
@@ -30,10 +30,10 @@ const getWorkspaceInfo = query(async (workspaceID: string) => {
const updateWorkspace = action(async (form: FormData) => {
"use server"
- const name = form.get("name")?.toString().trim()
+ const name = (form.get("name") as string | null)?.trim()
if (!name) return { error: formError.workspaceNameRequired }
if (name.length > 255) return { error: formError.nameTooLong }
- const workspaceID = form.get("workspaceID")?.toString()
+ const workspaceID = form.get("workspaceID") as string | null
if (!workspaceID) return { error: formError.workspaceRequired }
return json(
await withActor(