Move external types to link mapping to doc generation util and refactor typedocUtils to be a class to avoid excessive param passing

This commit is contained in:
Fabio Berger 2018-08-15 11:36:45 -07:00
parent 3b8a343711
commit a8d44ccc48
17 changed files with 138 additions and 322 deletions

View File

@ -27,6 +27,7 @@ const EXTERNAL_TYPE_TO_LINK: { [externalType: string]: string } = {
'solc.StandardContractOutput':
'https://solidity.readthedocs.io/en/v0.4.24/using-the-compiler.html#output-description',
'solc.CompilerSettings': 'https://solidity.readthedocs.io/en/v0.4.24/using-the-compiler.html#input-description',
Schema: 'https://github.com/tdegrunt/jsonschema/blob/5c2edd4baba149964aec0f23c87ad12c25a50dfb/lib/index.d.ts#L49',
};
const CLASSES_WITH_HIDDEN_CONSTRUCTORS: string[] = [

View File

@ -5,7 +5,6 @@ import * as React from 'react';
import { DocsInfo } from '../docs_info';
import { Parameter, SolidityMethod, TypeDefinitionByName, TypescriptFunction, TypescriptMethod } from '../types';
import { constants } from '../utils/constants';
import { typeDocUtils } from '../utils/typedoc_utils';
import { Comment } from './comment';
import { Signature } from './signature';

View File

@ -179,17 +179,8 @@ export const Type: React.SFC<TypeProps> = (props: TypeProps): any => {
return [prev, ', ', curr];
});
let typeNameUrlIfExists;
let typePrefixIfExists;
if (!_.isUndefined(props.docsInfo.typeConfigs)) {
typeNameUrlIfExists = !_.isUndefined(props.docsInfo.typeConfigs.typeNameToExternalLink)
? props.docsInfo.typeConfigs.typeNameToExternalLink[typeName as string]
: undefined;
typePrefixIfExists = !_.isUndefined(props.docsInfo.typeConfigs.typeNameToPrefix)
? props.docsInfo.typeConfigs.typeNameToPrefix[typeName as string]
: undefined;
}
const isExportedClassReference = !!props.type.isExportedClassReference;
const typeNameUrlIfExists = !_.isUndefined(props.type.externalLink) ? props.type.externalLink : undefined;
if (!_.isUndefined(typeNameUrlIfExists)) {
typeName = (
<a
@ -198,7 +189,6 @@ export const Type: React.SFC<TypeProps> = (props: TypeProps): any => {
className="text-decoration-none"
style={{ color: colors.lightBlueA700 }}
>
{!_.isUndefined(typePrefixIfExists) ? `${typePrefixIfExists}.` : ''}
{typeName}
</a>
);

View File

@ -6,17 +6,16 @@ import {
ContractsByVersionByNetworkId,
DocAgnosticFormat,
DocsInfoConfig,
DocsInfoTypeConfigs,
DocsMenu,
DoxityDocObj,
GeneratedDocJson,
SectionNameToMarkdownByVersion,
SectionsMap,
SupportedDocJson,
TypeDefinitionByName,
GeneratedDocJson,
} from './types';
import { doxityUtils } from './utils/doxity_utils';
import { typeDocUtils } from './utils/typedoc_utils';
import { TypeDocUtils } from './utils/typedoc_utils';
export class DocsInfo {
public id: string;
@ -27,7 +26,6 @@ export class DocsInfo {
public sections: SectionsMap;
public sectionNameToMarkdownByVersion: SectionNameToMarkdownByVersion;
public contractsByVersionByNetworkId?: ContractsByVersionByNetworkId;
public typeConfigs: DocsInfoTypeConfigs;
constructor(config: DocsInfoConfig) {
this.id = config.id;
this.type = config.type;
@ -37,7 +35,6 @@ export class DocsInfo {
this.sections = config.markdownSections;
this.sectionNameToMarkdownByVersion = config.sectionNameToMarkdownByVersion;
this.contractsByVersionByNetworkId = config.contractsByVersionByNetworkId;
this.typeConfigs = config.typeConfigs;
}
public getMenuSubsectionsBySection(docAgnosticFormat?: DocAgnosticFormat): MenuSubsectionsBySection {
const menuSubsectionsBySection = {} as MenuSubsectionsBySection;
@ -101,7 +98,8 @@ export class DocsInfo {
if (this.type === SupportedDocJson.Doxity) {
return doxityUtils.convertToDocAgnosticFormat(docObj as DoxityDocObj);
} else {
return typeDocUtils.convertToDocAgnosticFormat(docObj as GeneratedDocJson, this);
const typeDocUtils = new TypeDocUtils(docObj as GeneratedDocJson, this);
return typeDocUtils.convertToDocAgnosticFormat();
}
}
}

View File

@ -11,12 +11,6 @@ export interface DocsInfoConfig {
markdownSections: SectionsMap;
sectionNameToMarkdownByVersion: SectionNameToMarkdownByVersion;
contractsByVersionByNetworkId?: ContractsByVersionByNetworkId;
typeConfigs?: DocsInfoTypeConfigs;
}
export interface DocsInfoTypeConfigs {
typeNameToExternalLink?: { [typeName: string]: string };
typeNameToPrefix?: { [typeName: string]: string };
}
export interface DocsMenu {
@ -160,6 +154,7 @@ export interface Type {
types?: Type[];
method?: TypescriptMethod;
indexSignature?: IndexSignature;
externalLink?: string;
}
export interface ElementType {
@ -297,9 +292,14 @@ export interface ExportNameToTypedocNames {
[exportName: string]: string[];
}
export interface ExternalTypeToLink {
[externalTypeName: string]: string;
}
export interface Metadata {
exportPathToTypedocNames: ExportNameToTypedocNames;
exportPathOrder: string[];
externalTypeToLink: ExternalTypeToLink;
}
export interface GeneratedDocJson {

View File

@ -7,6 +7,7 @@ import {
CustomTypeChild,
DocAgnosticFormat,
DocSection,
ExternalTypeToLink,
GeneratedDocJson,
IndexSignature,
KindString,
@ -24,8 +25,39 @@ import {
import { constants } from './constants';
export const typeDocUtils = {
isType(entity: TypeDocNode): boolean {
export class TypeDocUtils {
private _typeDocNameOrder: string[];
private _externalTypeToLink: ExternalTypeToLink;
private _docsInfo: DocsInfo;
private _typeDocJson: TypeDocNode;
private _classNames: string[];
constructor(generatedDocJson: GeneratedDocJson, docsInfo: DocsInfo) {
this._docsInfo = docsInfo;
console.log('generatedDocJson.metadata', generatedDocJson.metadata);
const exportPathOrder = generatedDocJson.metadata.exportPathOrder;
const exportPathToTypedocNames = generatedDocJson.metadata.exportPathToTypedocNames;
this._externalTypeToLink = generatedDocJson.metadata.externalTypeToLink;
this._typeDocJson = generatedDocJson.typedocJson;
// TODO: Extract the non typeDoc exports, and render them somehow
this._typeDocNameOrder = _.compact(
_.flatten(
_.map(exportPathOrder, exportPath => {
return exportPathToTypedocNames[exportPath];
}),
),
);
this._classNames = [];
_.each(this._typeDocJson.children, file => {
_.each(file.children, child => {
if (child.kindString === KindString.Class) {
this._classNames.push(child.name);
}
});
});
}
public isType(entity: TypeDocNode): boolean {
return (
entity.kindString === KindString.Interface ||
entity.kindString === KindString.Function ||
@ -33,17 +65,17 @@ export const typeDocUtils = {
entity.kindString === KindString.Variable ||
entity.kindString === KindString.Enumeration
);
},
isMethod(entity: TypeDocNode): boolean {
}
public isMethod(entity: TypeDocNode): boolean {
return entity.kindString === KindString.Method;
},
isConstructor(entity: TypeDocNode): boolean {
}
public isConstructor(entity: TypeDocNode): boolean {
return entity.kindString === KindString.Constructor;
},
isProperty(entity: TypeDocNode): boolean {
}
public isProperty(entity: TypeDocNode): boolean {
return entity.kindString === KindString.Property;
},
getModuleDefinitionsBySectionName(versionDocObj: TypeDocNode, configModulePaths: string[]): TypeDocNode[] {
}
public getModuleDefinitionsBySectionName(versionDocObj: TypeDocNode, configModulePaths: string[]): TypeDocNode[] {
const moduleDefinitions: TypeDocNode[] = [];
const jsonModules = versionDocObj.children;
_.each(jsonModules, jsonMod => {
@ -54,52 +86,28 @@ export const typeDocUtils = {
});
});
return moduleDefinitions;
},
convertToDocAgnosticFormat(generatedDocJson: GeneratedDocJson, docsInfo: DocsInfo): DocAgnosticFormat {
const exportPathOrder = generatedDocJson.metadata.exportPathOrder;
const exportPathToTypedocNames = generatedDocJson.metadata.exportPathToTypedocNames;
const typeDocJson = generatedDocJson.typedocJson;
// TODO: Extract the non typeDoc exports, and render them somehow
const typeDocNameOrder = _.compact(
_.flatten(
_.map(exportPathOrder, exportPath => {
return exportPathToTypedocNames[exportPath];
}),
),
);
const classNames: string[] = [];
_.each(typeDocJson.children, file => {
_.each(file.children, child => {
if (child.kindString === KindString.Class) {
classNames.push(child.name);
}
});
});
public convertToDocAgnosticFormat(): DocAgnosticFormat {
const docAgnosticFormat: DocAgnosticFormat = {};
const typeEntities: TypeDocNode[] = [];
_.each(typeDocNameOrder, typeDocName => {
const fileChildIndex = _.findIndex(typeDocJson.children, child => child.name === typeDocName);
const fileChild = typeDocJson.children[fileChildIndex];
_.each(this._typeDocNameOrder, typeDocName => {
const fileChildIndex = _.findIndex(this._typeDocJson.children, child => child.name === typeDocName);
const fileChild = this._typeDocJson.children[fileChildIndex];
let sectionName: string;
_.each(fileChild.children, child => {
switch (child.kindString) {
case KindString.Class:
case KindString.ObjectLiteral: {
sectionName = child.name;
docsInfo.sections[sectionName] = sectionName;
docsInfo.menu[sectionName] = [sectionName];
this._docsInfo.sections[sectionName] = sectionName;
this._docsInfo.menu[sectionName] = [sectionName];
const entities = child.children;
const commentObj = child.comment;
const sectionComment = !_.isUndefined(commentObj) ? commentObj.shortText : '';
const isClassOrObjectLiteral = true;
const docSection = typeDocUtils._convertEntitiesToDocSection(
const docSection = this._convertEntitiesToDocSection(
entities,
docsInfo,
sectionName,
classNames,
isClassOrObjectLiteral,
);
docSection.comment = sectionComment;
@ -108,17 +116,12 @@ export const typeDocUtils = {
}
case KindString.Function: {
sectionName = child.name;
docsInfo.sections[sectionName] = sectionName;
docsInfo.menu[sectionName] = [sectionName];
this._docsInfo.sections[sectionName] = sectionName;
this._docsInfo.menu[sectionName] = [sectionName];
const entities = [child];
const commentObj = child.comment;
const SectionComment = !_.isUndefined(commentObj) ? commentObj.shortText : '';
const docSection = typeDocUtils._convertEntitiesToDocSection(
entities,
docsInfo,
sectionName,
classNames,
);
const docSection = this._convertEntitiesToDocSection(entities, sectionName);
docSection.comment = SectionComment;
docAgnosticFormat[sectionName] = docSection;
break;
@ -135,24 +138,17 @@ export const typeDocUtils = {
});
});
if (!_.isEmpty(typeEntities)) {
docsInfo.sections[constants.TYPES_SECTION_NAME] = constants.TYPES_SECTION_NAME;
docsInfo.menu[constants.TYPES_SECTION_NAME] = [constants.TYPES_SECTION_NAME];
const docSection = typeDocUtils._convertEntitiesToDocSection(
typeEntities,
docsInfo,
constants.TYPES_SECTION_NAME,
classNames,
);
this._docsInfo.sections[constants.TYPES_SECTION_NAME] = constants.TYPES_SECTION_NAME;
this._docsInfo.menu[constants.TYPES_SECTION_NAME] = [constants.TYPES_SECTION_NAME];
const docSection = this._convertEntitiesToDocSection(typeEntities, constants.TYPES_SECTION_NAME);
docAgnosticFormat[constants.TYPES_SECTION_NAME] = docSection;
}
return docAgnosticFormat;
},
_convertEntitiesToDocSection(
}
private _convertEntitiesToDocSection(
entities: TypeDocNode[],
docsInfo: DocsInfo,
sectionName: string,
classNames: string[],
isClassOrObjectLiteral: boolean = false,
): DocSection {
const docSection: DocSection = {
@ -169,14 +165,7 @@ export const typeDocUtils = {
switch (entity.kindString) {
case KindString.Constructor:
isConstructor = true;
const constructor = typeDocUtils._convertMethod(
entity,
isConstructor,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
const constructor = this._convertMethod(entity, isConstructor, sectionName);
docSection.constructors.push(constructor);
break;
@ -185,14 +174,7 @@ export const typeDocUtils = {
const funcName = (entity as TypeDocNode).signatures[0].name;
const isPublicFunc = !_.startsWith(funcName, '_');
if (isPublicFunc) {
const func = typeDocUtils._convertFunction(
entity,
docsInfo.sections,
sectionName,
docsInfo.id,
isClassOrObjectLiteral,
classNames,
);
const func = this._convertFunction(entity, sectionName, isClassOrObjectLiteral);
docSection.functions.push(func);
}
}
@ -201,49 +183,25 @@ export const typeDocUtils = {
case KindString.Method:
if (entity.flags.isPublic) {
isConstructor = false;
const method = typeDocUtils._convertMethod(
entity,
isConstructor,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
const method = this._convertMethod(entity, isConstructor, sectionName);
docSection.methods.push(method);
}
break;
case KindString.Property:
const property = typeDocUtils._convertProperty(
entity,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
case KindString.Property: {
const property = this._convertProperty(entity, sectionName);
docSection.properties.push(property);
break;
}
case KindString.Variable:
if (isClassOrObjectLiteral) {
// Render as a property
const property = typeDocUtils._convertProperty(
entity,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
const property = this._convertProperty(entity, sectionName);
docSection.properties.push(property);
} else {
// Otherwise, render as a type
const customType = typeDocUtils._convertCustomType(
entity,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
const customType = this._convertCustomType(entity, sectionName);
const seenTypeNames = _.map(docSection.types, t => t.name);
const isUnseen = !_.includes(seenTypeNames, customType.name);
if (isUnseen) {
@ -255,13 +213,7 @@ export const typeDocUtils = {
case KindString.Interface:
case KindString.Enumeration:
case KindString.TypeAlias: {
const customType = typeDocUtils._convertCustomType(
entity,
docsInfo.sections,
sectionName,
docsInfo.id,
classNames,
);
const customType = this._convertCustomType(entity, sectionName);
const seenTypeNames = _.map(docSection.types, t => t.name);
const isUnseen = !_.includes(seenTypeNames, customType.name);
if (isUnseen) {
@ -281,25 +233,17 @@ export const typeDocUtils = {
}
});
return docSection;
},
_convertCustomType(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): CustomType {
const typeIfExists = !_.isUndefined(entity.type)
? typeDocUtils._convertType(entity.type, sections, sectionName, docId, classNames)
: undefined;
}
private _convertCustomType(entity: TypeDocNode, sectionName: string): CustomType {
const typeIfExists = !_.isUndefined(entity.type) ? this._convertType(entity.type, sectionName) : undefined;
const isConstructor = false;
const methodIfExists = !_.isUndefined(entity.declaration)
? typeDocUtils._convertMethod(entity.declaration, isConstructor, sections, sectionName, docId, classNames)
? this._convertMethod(entity.declaration, isConstructor, sectionName)
: undefined;
const doesIndexSignatureExist = !_.isUndefined(entity.indexSignature);
const indexSignature = entity.indexSignature as TypeDocNode;
const indexSignatureIfExists = doesIndexSignatureExist
? typeDocUtils._convertIndexSignature(indexSignature, sections, sectionName, docId, classNames)
? this._convertIndexSignature(indexSignature, sectionName)
: undefined;
const commentIfExists =
!_.isUndefined(entity.comment) && !_.isUndefined(entity.comment.shortText)
@ -309,20 +253,13 @@ export const typeDocUtils = {
const childrenIfExist = !_.isUndefined(entity.children)
? _.map(entity.children, (child: TypeDocNode) => {
let childTypeIfExists = !_.isUndefined(child.type)
? typeDocUtils._convertType(child.type, sections, sectionName, docId, classNames)
? this._convertType(child.type, sectionName)
: undefined;
if (child.kindString === KindString.Method) {
childTypeIfExists = {
name: child.name,
typeDocType: TypeDocTypes.Reflection,
method: typeDocUtils._convertMethod(
child,
isConstructor,
sections,
sectionName,
docId,
classNames,
),
method: this._convertMethod(child, isConstructor, sectionName),
};
}
const c: CustomTypeChild = {
@ -345,37 +282,25 @@ export const typeDocUtils = {
children: childrenIfExist,
};
return customType;
},
_convertIndexSignature(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): IndexSignature {
}
private _convertIndexSignature(entity: TypeDocNode, sectionName: string): IndexSignature {
const key = entity.parameters[0];
const indexSignature = {
keyName: key.name,
keyType: typeDocUtils._convertType(key.type, sections, sectionName, docId, classNames),
keyType: this._convertType(key.type, sectionName),
valueName: entity.type.name,
};
return indexSignature;
},
_convertProperty(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): Property {
}
private _convertProperty(entity: TypeDocNode, sectionName: string): Property {
const source = entity.sources[0];
const commentIfExists = !_.isUndefined(entity.comment) ? entity.comment.shortText : undefined;
const isConstructor = false;
const isStatic = _.isUndefined(entity.flags.isStatic) ? false : entity.flags.isStatic;
const callPath = typeDocUtils._getCallPath(sectionName, isStatic, isConstructor, entity.name);
const callPath = this._getCallPath(sectionName, isStatic, isConstructor, entity.name);
const property = {
name: entity.name,
type: typeDocUtils._convertType(entity.type, sections, sectionName, docId, classNames),
type: this._convertType(entity.type, sectionName),
source: {
fileName: source.fileName,
line: source.line,
@ -384,29 +309,22 @@ export const typeDocUtils = {
callPath,
};
return property;
},
_convertMethod(
entity: TypeDocNode,
isConstructor: boolean,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): TypescriptMethod {
}
private _convertMethod(entity: TypeDocNode, isConstructor: boolean, sectionName: string): TypescriptMethod {
const signature = entity.signatures[0];
const source = entity.sources[0];
const hasComment = !_.isUndefined(signature.comment);
const isStatic = _.isUndefined(entity.flags.isStatic) ? false : entity.flags.isStatic;
const parameters = _.map(signature.parameters, param => {
return typeDocUtils._convertParameter(param, sections, sectionName, docId, classNames);
return this._convertParameter(param, sectionName);
});
const returnType = typeDocUtils._convertType(signature.type, sections, sectionName, docId, classNames);
const returnType = this._convertType(signature.type, sectionName);
const typeParameter = _.isUndefined(signature.typeParameter)
? undefined
: typeDocUtils._convertTypeParameter(signature.typeParameter[0], sections, sectionName, docId, classNames);
: this._convertTypeParameter(signature.typeParameter[0], sectionName);
const callPath = typeDocUtils._getCallPath(sectionName, isStatic, isConstructor, entity.name);
const callPath = this._getCallPath(sectionName, isStatic, isConstructor, entity.name);
const method = {
isConstructor,
isStatic,
@ -416,6 +334,10 @@ export const typeDocUtils = {
source: {
fileName: source.fileName,
line: source.line,
callPath,
parameters,
returnType,
typeParameter,
},
callPath,
parameters,
@ -423,8 +345,8 @@ export const typeDocUtils = {
typeParameter,
};
return method;
},
_getCallPath(sectionName: string, isStatic: boolean, isConstructor: boolean, entityName: string): string {
}
private _getCallPath(sectionName: string, isStatic: boolean, isConstructor: boolean, entityName: string): string {
// HACK: we use the fact that the sectionName is the same as the property name at the top-level
// of the public interface. In the future, we shouldn't use this hack but rather get it from the JSON.
let callPath;
@ -435,32 +357,25 @@ export const typeDocUtils = {
callPath = `${prefix}.`;
}
return callPath;
},
_convertFunction(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
isObjectLiteral: boolean,
classNames: string[],
): TypescriptFunction {
}
private _convertFunction(entity: TypeDocNode, sectionName: string, isObjectLiteral: boolean): TypescriptFunction {
const signature = entity.signatures[0];
const source = entity.sources[0];
const hasComment = !_.isUndefined(signature.comment);
const parameters = _.map(signature.parameters, param => {
return typeDocUtils._convertParameter(param, sections, sectionName, docId, classNames);
return this._convertParameter(param, sectionName);
});
const returnType = typeDocUtils._convertType(signature.type, sections, sectionName, docId, classNames);
const returnType = this._convertType(signature.type, sectionName);
const typeParameter = _.isUndefined(signature.typeParameter)
? undefined
: typeDocUtils._convertTypeParameter(signature.typeParameter[0], sections, sectionName, docId, classNames);
: this._convertTypeParameter(signature.typeParameter[0], sectionName);
let callPath = '';
if (isObjectLiteral) {
const isConstructor = false;
const isStatic = false;
callPath = typeDocUtils._getCallPath(sectionName, isStatic, isConstructor, entity.name);
callPath = this._getCallPath(sectionName, isStatic, isConstructor, entity.name);
}
const func = {
name: signature.name,
@ -476,28 +391,16 @@ export const typeDocUtils = {
typeParameter,
};
return func;
},
_convertTypeParameter(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): TypeParameter {
const type = typeDocUtils._convertType(entity.type, sections, sectionName, docId, classNames);
}
private _convertTypeParameter(entity: TypeDocNode, sectionName: string): TypeParameter {
const type = this._convertType(entity.type, sectionName);
const parameter = {
name: entity.name,
type,
};
return parameter;
},
_convertParameter(
entity: TypeDocNode,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): Parameter {
}
private _convertParameter(entity: TypeDocNode, sectionName: string): Parameter {
let comment = '<No comment>';
if (entity.comment && entity.comment.shortText) {
comment = entity.comment.shortText;
@ -507,7 +410,7 @@ export const typeDocUtils = {
const isOptional = !_.isUndefined(entity.flags.isOptional) ? entity.flags.isOptional : false;
const type = typeDocUtils._convertType(entity.type, sections, sectionName, docId, classNames);
const type = this._convertType(entity.type, sectionName);
const parameter = {
name: entity.name,
@ -517,19 +420,13 @@ export const typeDocUtils = {
type,
};
return parameter;
},
_convertType(
entity: TypeDocType,
sections: SectionsMap,
sectionName: string,
docId: string,
classNames: string[],
): Type {
}
private _convertType(entity: TypeDocType, sectionName: string): Type {
const typeArguments = _.map(entity.typeArguments, typeArgument => {
return typeDocUtils._convertType(typeArgument, sections, sectionName, docId, classNames);
return this._convertType(typeArgument, sectionName);
});
const types = _.map(entity.types, t => {
return typeDocUtils._convertType(t, sections, sectionName, docId, classNames);
return this._convertType(t, sectionName);
});
let indexSignatureIfExists;
@ -538,23 +435,10 @@ export const typeDocUtils = {
!_.isUndefined(entity.declaration) && !_.isUndefined(entity.declaration.indexSignature);
if (doesIndexSignatureExist) {
const indexSignature = entity.declaration.indexSignature as TypeDocNode;
indexSignatureIfExists = typeDocUtils._convertIndexSignature(
indexSignature,
sections,
sectionName,
docId,
classNames,
);
indexSignatureIfExists = this._convertIndexSignature(indexSignature, sectionName);
} else if (!_.isUndefined(entity.declaration)) {
const isConstructor = false;
methodIfExists = typeDocUtils._convertMethod(
entity.declaration,
isConstructor,
sections,
sectionName,
docId,
classNames,
);
methodIfExists = this._convertMethod(entity.declaration, isConstructor, sectionName);
}
const elementTypeIfExists = !_.isUndefined(entity.elementType)
@ -564,10 +448,10 @@ export const typeDocUtils = {
}
: undefined;
const type = {
const type: Type = {
name: entity.name,
value: entity.value,
isExportedClassReference: _.includes(classNames, entity.name),
isExportedClassReference: _.includes(this._classNames, entity.name),
typeDocType: entity.type,
typeArguments,
elementType: elementTypeIfExists,
@ -575,6 +459,11 @@ export const typeDocUtils = {
method: methodIfExists,
indexSignature: indexSignatureIfExists,
};
console.log('this._externalTypeToLink', this._externalTypeToLink);
const externalLinkIfExists = this._externalTypeToLink[entity.name];
if (!_.isUndefined(externalLinkIfExists)) {
type.externalLink = externalLinkIfExists;
}
return type;
},
};
}
}

View File

@ -34,13 +34,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.installation]: InstallationMarkdownV1,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToExternalLink: {
Provider: constants.URL_WEB3_PROVIDER_DOCS,
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -35,12 +35,6 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
markdownSections,
typeConfigs: {
typeNameToPrefix: {},
typeNameToExternalLink: {
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -36,12 +36,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.installation]: InstallationMarkdown,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToExternalLink: {
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -43,13 +43,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.usage]: UsageMarkdownV1,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToExternalLink: {
Schema:
'https://github.com/tdegrunt/jsonschema/blob/5c2edd4baba149964aec0f23c87ad12c25a50dfb/lib/index.d.ts#L49',
},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -35,11 +35,6 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
markdownSections,
typeConfigs: {
typeNameToExternalLink: {
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -35,11 +35,6 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
markdownSections,
typeConfigs: {
typeNameToExternalLink: {
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -37,11 +37,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.usage]: UsageMarkdown,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToExternalLink: {},
typeNameToPrefix: {},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -37,11 +37,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.usage]: UsageMarkdown,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToExternalLink: {},
typeNameToPrefix: {},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -39,13 +39,6 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
markdownSections: docSections,
typeConfigs: {
typeNameToExternalLink: {
Web3: constants.URL_WEB3_DOCS,
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
typeNameToPrefix: {},
},
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -35,13 +35,6 @@ const docsInfoConfig: DocsInfoConfig = {
},
},
markdownSections: docSections,
typeConfigs: {
typeNameToExternalLink: {
Web3: constants.URL_WEB3_DOCS,
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
typeNameToPrefix: {},
},
};
const docsInfo = new DocsInfo(docsInfoConfig);

View File

@ -56,13 +56,7 @@ const docsInfoConfig: DocsInfoConfig = {
[markdownSections.errors]: ErrorsMarkdownV1,
},
},
markdownSections: markdownSections,
typeConfigs: {
typeNameToPrefix: {},
typeNameToExternalLink: {
BigNumber: constants.URL_BIGNUMBERJS_GITHUB,
},
},
markdownSections,
};
const docsInfo = new DocsInfo(docsInfoConfig);