fix(rpc): resolve lint warnings from review follow-up

- Drop the redundant eslint-disable on AnyProcedures; no-explicit-any
  is off repo-wide so the directive itself was the warning. Doc
  comment now explains why none is needed.
- Rename test's schema binding to _schema per the lint config's
  underscore-prefix rule for read-only-as-type bindings.
This commit is contained in:
2026-08-05 09:59:23 +05:30
parent a4c7d7b298
commit 3e1d7db537
2 changed files with 6 additions and 3 deletions
+2 -1
View File
@@ -31,8 +31,9 @@ export interface ProcedureDef<Input = unknown, Output = unknown> {
* A procedure map with its element types erased. The `any` is deliberate and * A procedure map with its element types erased. The `any` is deliberate and
* confined to this alias: the phantom `__input`/`__output` markers make * confined to this alias: the phantom `__input`/`__output` markers make
* ProcedureDef invariant, so no narrower erasure accepts a real contract. * ProcedureDef invariant, so no narrower erasure accepts a real contract.
* (No eslint-disable needed — `no-explicit-any` is off repo-wide, and a
* redundant directive is itself a lint warning.)
*/ */
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type AnyProcedures = Record<string, ProcedureDef<any, any>>; export type AnyProcedures = Record<string, ProcedureDef<any, any>>;
export interface ServiceContract<Procedures extends AnyProcedures = AnyProcedures> { export interface ServiceContract<Procedures extends AnyProcedures = AnyProcedures> {
+4 -2
View File
@@ -4,9 +4,11 @@ import type { InferInput, ProcedureDef, ServiceContract } from "../src/types.ts"
describe("rpc types", () => { describe("rpc types", () => {
test("InferInput extracts the validated shape from a schema", () => { test("InferInput extracts the validated shape from a schema", () => {
const schema = v.object({ userId: v.string(), amountCents: v.number() }); // Prefixed with _ : used only via `typeof`, and the lint config requires
// that prefix for a binding that is never read at runtime.
const _schema = v.object({ userId: v.string(), amountCents: v.number() });
// Compile-time assertion: assigning a correctly-shaped value must typecheck. // Compile-time assertion: assigning a correctly-shaped value must typecheck.
const value: InferInput<typeof schema> = { userId: "u1", amountCents: 10 }; const value: InferInput<typeof _schema> = { userId: "u1", amountCents: 10 };
expect(value.userId).toBe("u1"); expect(value.userId).toBe("u1");
}); });