MCPcopy Create free account
hub / github.com/Effect-TS/effect / signatureParameterKind

Function signatureParameterKind

packages/tools/jsdocs/src/Jsdocs.ts:2860–2891  ·  view source on GitHub ↗
(
  parameter: ts.Symbol | undefined,
  checker: ts.TypeChecker,
  location: ts.Node
)

Source from the content-addressed store, hash-verified

2858}
2859
2860function signatureParameterKind(
2861 parameter: ts.Symbol | undefined,
2862 checker: ts.TypeChecker,
2863 location: ts.Node
2864): string {
2865 if (parameter === undefined) return "none"
2866 const declaration = signatureParameterDeclaration(parameter)
2867 if (declaration?.dotDotDotToken !== undefined) return "rest"
2868 const name = signatureParameterName(parameter).replace(/_$/, "").toLowerCase()
2869 const type = checker.getTypeOfSymbolAtLocation(parameter, declaration ?? location)
2870 if (name === "self" || name === "that") return "self"
2871 if (name === "body") return `body:${signatureFunctionThisKind(type, checker, location)}`
2872 if (name === "name" || name === "spanname") return "name"
2873 if (name.includes("refinement")) return "refinement"
2874 if (name.includes("predicate")) return "predicate"
2875 if (name === "options" || name === "option" || name === "opts" || name === "config" || name === "args") {
2876 return "options"
2877 }
2878 if (name === "f" || name === "fn" || name === "callback") {
2879 return `function:${signatureFunctionThisKind(type, checker, location)}`
2880 }
2881 if (checker.getSignaturesOfType(type, ts.SignatureKind.Call).length > 0) {
2882 return `function:${signatureFunctionThisKind(type, checker, location)}`
2883 }
2884 if ((type.flags & ts.TypeFlags.StringLike) !== 0) return "primitive:string"
2885 if ((type.flags & ts.TypeFlags.NumberLike) !== 0) return "primitive:number"
2886 if ((type.flags & ts.TypeFlags.BooleanLike) !== 0) return "primitive:boolean"
2887 if ((type.flags & ts.TypeFlags.BigIntLike) !== 0) return "primitive:bigint"
2888 if ((type.flags & ts.TypeFlags.ESSymbolLike) !== 0) return "primitive:symbol"
2889 if ((type.flags & ts.TypeFlags.Object) !== 0 || checker.getPropertiesOfType(type).length > 0) return "object"
2890 return "other"
2891}
2892
2893function signatureTailKind(signature: ts.Signature, checker: ts.TypeChecker, location: ts.Node): string {
2894 if (signature.parameters.length <= 1) return "none"

Callers 2

signatureTailKindFunction · 0.85
signatureShapeKeyFunction · 0.85

Calls 4

signatureParameterNameFunction · 0.85
replaceMethod · 0.45

Tested by

no test coverage detected