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:
@@ -31,8 +31,9 @@ export interface ProcedureDef<Input = unknown, Output = unknown> {
|
||||
* A procedure map with its element types erased. The `any` is deliberate and
|
||||
* confined to this alias: the phantom `__input`/`__output` markers make
|
||||
* 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 interface ServiceContract<Procedures extends AnyProcedures = AnyProcedures> {
|
||||
|
||||
@@ -4,9 +4,11 @@ import type { InferInput, ProcedureDef, ServiceContract } from "../src/types.ts"
|
||||
|
||||
describe("rpc types", () => {
|
||||
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.
|
||||
const value: InferInput<typeof schema> = { userId: "u1", amountCents: 10 };
|
||||
const value: InferInput<typeof _schema> = { userId: "u1", amountCents: 10 };
|
||||
expect(value.userId).toBe("u1");
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user