diff options
Diffstat (limited to 'packages/react-docs/src')
-rw-r--r-- | packages/react-docs/src/ts/components/type.tsx | 32 | ||||
-rw-r--r-- | packages/react-docs/src/ts/docs_info.ts | 7 | ||||
-rw-r--r-- | packages/react-docs/src/ts/types.ts | 10 | ||||
-rw-r--r-- | packages/react-docs/src/ts/utils/constants.ts | 6 |
4 files changed, 27 insertions, 28 deletions
diff --git a/packages/react-docs/src/ts/components/type.tsx b/packages/react-docs/src/ts/components/type.tsx index f3efbc8dd..56425a5df 100644 --- a/packages/react-docs/src/ts/components/type.tsx +++ b/packages/react-docs/src/ts/components/type.tsx @@ -11,21 +11,6 @@ import { utils } from '../utils/utils'; import { TypeDefinition } from './type_definition'; -// Some types reference other libraries. For these types, we want to link the user to the relevant documentation. -const typeToUrl: { [typeName: string]: string } = { - Web3: constants.URL_WEB3_DOCS, - Provider: constants.URL_WEB3_PROVIDER_DOCS, - BigNumber: constants.URL_BIGNUMBERJS_GITHUB, - DecodedLogEntryEvent: constants.URL_WEB3_DECODED_LOG_ENTRY_EVENT, - LogEntryEvent: constants.URL_WEB3_LOG_ENTRY_EVENT, -}; - -const typePrefix: { [typeName: string]: string } = { - Provider: 'Web3', - DecodedLogEntryEvent: 'Web3', - LogEntryEvent: 'Web3', -}; - const typeToSection: { [typeName: string]: string } = { ExchangeWrapper: 'exchange', TokenWrapper: 'token', @@ -149,9 +134,20 @@ export function Type(props: TypeProps): any { return [prev, ', ', curr]; }); - const typeNameUrlIfExists = typeToUrl[typeName as string]; - const typePrefixIfExists = typePrefix[typeName as string]; - const sectionNameIfExists = typeToSection[typeName as string]; + let typeNameUrlIfExists; + let typePrefixIfExists; + let sectionNameIfExists; + 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; + sectionNameIfExists = !_.isUndefined(props.docsInfo.typeConfigs.typeNameToDocSection) + ? props.docsInfo.typeConfigs.typeNameToDocSection[typeName as string] + : undefined; + } if (!_.isUndefined(typeNameUrlIfExists)) { typeName = ( <a diff --git a/packages/react-docs/src/ts/docs_info.ts b/packages/react-docs/src/ts/docs_info.ts index 84d41f58d..68bddef06 100644 --- a/packages/react-docs/src/ts/docs_info.ts +++ b/packages/react-docs/src/ts/docs_info.ts @@ -6,6 +6,7 @@ import { ContractsByVersionByNetworkId, DocAgnosticFormat, DocsInfoConfig, + DocsInfoTypeConfigs, DocsMenu, DoxityDocObj, SectionsMap, @@ -24,6 +25,7 @@ export class DocsInfo { public sections: SectionsMap; public sectionNameToMarkdown: { [sectionName: string]: string }; public contractsByVersionByNetworkId?: ContractsByVersionByNetworkId; + public typeConfigs: DocsInfoTypeConfigs; private _docsInfo: DocsInfoConfig; constructor(config: DocsInfoConfig) { this.id = config.id; @@ -33,13 +35,14 @@ export class DocsInfo { this.sections = config.sections; this.sectionNameToMarkdown = config.sectionNameToMarkdown; this.contractsByVersionByNetworkId = config.contractsByVersionByNetworkId; + this.typeConfigs = config.typeConfigs; this._docsInfo = config; } public isPublicType(typeName: string): boolean { - if (_.isUndefined(this._docsInfo.publicTypes)) { + if (_.isUndefined(this._docsInfo.typeConfigs.publicTypes)) { return false; } - const isPublic = _.includes(this._docsInfo.publicTypes, typeName); + const isPublic = _.includes(this._docsInfo.typeConfigs.publicTypes, typeName); return isPublic; } public getModulePathsIfExists(sectionName: string): string[] { diff --git a/packages/react-docs/src/ts/types.ts b/packages/react-docs/src/ts/types.ts index cb211e887..d192af313 100644 --- a/packages/react-docs/src/ts/types.ts +++ b/packages/react-docs/src/ts/types.ts @@ -7,11 +7,17 @@ export interface DocsInfoConfig { sections: SectionsMap; sectionNameToMarkdown: { [sectionName: string]: string }; visibleConstructors: string[]; - subPackageName?: string; - publicTypes?: string[]; sectionNameToModulePath?: { [sectionName: string]: string[] }; menuSubsectionToVersionWhenIntroduced?: { [sectionName: string]: string }; contractsByVersionByNetworkId?: ContractsByVersionByNetworkId; + typeConfigs?: DocsInfoTypeConfigs; +} + +export interface DocsInfoTypeConfigs { + typeNameToExternalLink?: { [typeName: string]: string }; + publicTypes?: string[]; + typeNameToPrefix?: { [typeName: string]: string }; + typeNameToDocSection?: { [typeName: string]: string }; } export interface DocsMenu { diff --git a/packages/react-docs/src/ts/utils/constants.ts b/packages/react-docs/src/ts/utils/constants.ts index 6692ce7e4..28079e6c3 100644 --- a/packages/react-docs/src/ts/utils/constants.ts +++ b/packages/react-docs/src/ts/utils/constants.ts @@ -1,9 +1,3 @@ export const constants = { TYPES_SECTION_NAME: 'types', - URL_WEB3_DOCS: 'https://github.com/ethereum/wiki/wiki/JavaScript-API', - URL_WEB3_DECODED_LOG_ENTRY_EVENT: - 'https://github.com/0xProject/web3-typescript-typings/blob/f5bcb96/index.d.ts#L123', - URL_WEB3_LOG_ENTRY_EVENT: 'https://github.com/0xProject/web3-typescript-typings/blob/f5bcb96/index.d.ts#L127', - URL_WEB3_PROVIDER_DOCS: 'https://github.com/0xProject/web3-typescript-typings/blob/f5bcb96/index.d.ts#L150', - URL_BIGNUMBERJS_GITHUB: 'http://mikemcl.github.io/bignumber.js', }; |