MCPcopy Create free account
hub / github.com/effect-app/libs / declarationSignature

Function declarationSignature

repos/effect/packages/tools/jsdocs/src/Jsdocs.ts:2889–2911  ·  view source on GitHub ↗
(
  name: string,
  bucket: ExportBucket,
  node: ts.Node,
  checker: ts.TypeChecker,
  cwd: string
)

Source from the content-addressed store, hash-verified

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"
2895 const firstKind = signatureParameterKind(signature.parameters[0], checker, location)
2896 const tailKinds = signature.parameters.slice(1).map((parameter) =>
2897 signatureParameterKind(parameter, checker, location)
2898 )
2899 if (firstKind === "options") {
2900 const hasTransformTail = tailKinds.length > 1 && tailKinds.slice(1).every(isSignatureFunctionKind)
2901 return `${tailKinds[0]}:${hasTransformTail ? "transform" : "none"}`
2902 }
2903 if (tailKinds.every(isSignatureFunctionKind)) {
2904 return firstKind.startsWith("body:")
2905 ? "transform"
2906 : `transform:${signatureTransformCountKind(tailKinds.length)}`
2907 }
2908 return tailKinds[0]
2909}
2910
2911function signatureShapeKey(signature: ts.Signature, checker: ts.TypeChecker, location: ts.Node): string {
2912 const hasRest = signature.parameters.some((parameter) =>
2913 signatureParameterDeclaration(parameter)?.dotDotDotToken !== undefined
2914 )

Callers 1

parseSourceFileDocsFunction · 0.85

Calls 1

symbolSignatureFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…