@doccov/sdk 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +21 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1618,6 +1618,20 @@ function withDescription(schema, description) {
|
|
|
1618
1618
|
description
|
|
1619
1619
|
};
|
|
1620
1620
|
}
|
|
1621
|
+
function getPropertyType(prop, parentType, typeChecker) {
|
|
1622
|
+
if (prop.valueDeclaration) {
|
|
1623
|
+
return typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
|
|
1624
|
+
}
|
|
1625
|
+
const propType = typeChecker.getTypeOfPropertyOfType(parentType, prop.getName());
|
|
1626
|
+
if (propType) {
|
|
1627
|
+
return propType;
|
|
1628
|
+
}
|
|
1629
|
+
const decl = prop.declarations?.[0];
|
|
1630
|
+
if (decl) {
|
|
1631
|
+
return typeChecker.getTypeOfSymbolAtLocation(prop, decl);
|
|
1632
|
+
}
|
|
1633
|
+
return typeChecker.getAnyType();
|
|
1634
|
+
}
|
|
1621
1635
|
function propertiesToSchema(properties, description) {
|
|
1622
1636
|
const schema = {
|
|
1623
1637
|
type: "object",
|
|
@@ -1958,7 +1972,7 @@ function formatTypeReference(type, typeChecker, typeRefs, referencedTypes, visit
|
|
|
1958
1972
|
};
|
|
1959
1973
|
const required = [];
|
|
1960
1974
|
for (const prop of properties) {
|
|
1961
|
-
const propType =
|
|
1975
|
+
const propType = getPropertyType(prop, type, typeChecker);
|
|
1962
1976
|
const propName = prop.getName();
|
|
1963
1977
|
objSchema.properties[propName] = formatTypeReference(propType, typeChecker, typeRefs, referencedTypes, visited);
|
|
1964
1978
|
if (!(prop.flags & ts2.SymbolFlags.Optional)) {
|
|
@@ -2043,7 +2057,7 @@ function structureParameter(param, paramDecl, paramType, typeChecker, typeRefs,
|
|
|
2043
2057
|
const isAnonymousObject = isObjectLiteralType(subType) || symbol2?.getName().startsWith("__");
|
|
2044
2058
|
if (isAnonymousObject) {
|
|
2045
2059
|
for (const prop of subType.getProperties()) {
|
|
2046
|
-
const propType =
|
|
2060
|
+
const propType = getPropertyType(prop, subType, typeChecker);
|
|
2047
2061
|
let description = "";
|
|
2048
2062
|
if (functionDoc) {
|
|
2049
2063
|
const propName = prop.getName();
|
|
@@ -2063,7 +2077,7 @@ function structureParameter(param, paramDecl, paramType, typeChecker, typeRefs,
|
|
|
2063
2077
|
const _symbolName = symbol2.getName();
|
|
2064
2078
|
if (!isBuiltInType(_symbolName)) {
|
|
2065
2079
|
for (const prop of subType.getProperties()) {
|
|
2066
|
-
const propType =
|
|
2080
|
+
const propType = getPropertyType(prop, subType, typeChecker);
|
|
2067
2081
|
properties.push({
|
|
2068
2082
|
name: prop.getName(),
|
|
2069
2083
|
type: formatTypeReference(propType, typeChecker, typeRefs, referencedTypes),
|
|
@@ -2094,7 +2108,7 @@ function structureParameter(param, paramDecl, paramType, typeChecker, typeRefs,
|
|
|
2094
2108
|
if (isObjectLiteralType(subType) || symbol2?.getName().startsWith("__")) {
|
|
2095
2109
|
const properties = [];
|
|
2096
2110
|
for (const prop of subType.getProperties()) {
|
|
2097
|
-
const propType =
|
|
2111
|
+
const propType = getPropertyType(prop, subType, typeChecker);
|
|
2098
2112
|
properties.push({
|
|
2099
2113
|
name: prop.getName(),
|
|
2100
2114
|
type: formatTypeReference(propType, typeChecker, typeRefs, referencedTypes),
|
|
@@ -2128,7 +2142,7 @@ function structureParameter(param, paramDecl, paramType, typeChecker, typeRefs,
|
|
|
2128
2142
|
if ((symbol?.getName().startsWith("__") || isObjectLiteralType(paramType)) && paramType.getProperties().length > 0) {
|
|
2129
2143
|
const properties = [];
|
|
2130
2144
|
for (const prop of paramType.getProperties()) {
|
|
2131
|
-
const propType =
|
|
2145
|
+
const propType = getPropertyType(prop, paramType, typeChecker);
|
|
2132
2146
|
properties.push({
|
|
2133
2147
|
name: prop.getName(),
|
|
2134
2148
|
type: formatTypeReference(propType, typeChecker, typeRefs, referencedTypes),
|
|
@@ -2825,7 +2839,8 @@ function serializeCallSignatures(signatures, symbol, context, parsedDoc) {
|
|
|
2825
2839
|
return signatures.map((signature) => {
|
|
2826
2840
|
const parameters = signature.getParameters().map((param) => {
|
|
2827
2841
|
const paramDecl = param.declarations?.find(ts2.isParameter);
|
|
2828
|
-
const
|
|
2842
|
+
const location = symbol?.declarations?.[0] ?? signature.declaration ?? param.declarations?.[0] ?? param.valueDeclaration;
|
|
2843
|
+
const paramType = paramDecl ? paramDecl.type != null ? checker.getTypeFromTypeNode(paramDecl.type) : checker.getTypeAtLocation(paramDecl) : location ? checker.getTypeOfSymbolAtLocation(param, location) : checker.getAnyType();
|
|
2829
2844
|
collectReferencedTypes(paramType, checker, referencedTypes);
|
|
2830
2845
|
if (paramDecl?.type) {
|
|
2831
2846
|
collectReferencedTypesFromNode(paramDecl.type, checker, referencedTypes);
|