@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.
Files changed (2) hide show
  1. package/dist/index.js +21 -6
  2. 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 = typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
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 = typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
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 = typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
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 = typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
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 = typeChecker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
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 paramType = paramDecl ? paramDecl.type != null ? checker.getTypeFromTypeNode(paramDecl.type) : checker.getTypeAtLocation(paramDecl) : checker.getTypeOfSymbolAtLocation(param, symbol?.declarations?.[0] ?? signature.declaration ?? param.declarations?.[0] ?? param.valueDeclaration);
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doccov/sdk",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "DocCov SDK - Documentation coverage and drift detection for TypeScript",
5
5
  "keywords": [
6
6
  "typescript",