( name: string, bucket: ExportBucket, node: ts.Node, checker: ts.TypeChecker, cwd: string )
| 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 | |
| 2893 | function 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 | |
| 2911 | function signatureShapeKey(signature: ts.Signature, checker: ts.TypeChecker, location: ts.Node): string { |
| 2912 | const hasRest = signature.parameters.some((parameter) => |
| 2913 | signatureParameterDeclaration(parameter)?.dotDotDotToken !== undefined |
| 2914 | ) |
no test coverage detected
searching dependent graphs…