aboutsummaryrefslogtreecommitdiffstats
path: root/packages/react-docs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/react-docs')
-rw-r--r--packages/react-docs/CHANGELOG.json27
-rw-r--r--packages/react-docs/CHANGELOG.md18
-rw-r--r--packages/react-docs/README.md18
-rw-r--r--packages/react-docs/package.json21
-rw-r--r--packages/react-docs/src/components/badge.tsx4
-rw-r--r--packages/react-docs/src/components/custom_enum.tsx4
-rw-r--r--packages/react-docs/src/components/documentation.tsx20
-rw-r--r--packages/react-docs/src/components/enum.tsx4
-rw-r--r--packages/react-docs/src/components/event_definition.tsx6
-rw-r--r--packages/react-docs/src/components/interface.tsx4
-rw-r--r--packages/react-docs/src/components/signature.tsx4
-rw-r--r--packages/react-docs/src/components/signature_block.tsx8
-rw-r--r--packages/react-docs/src/components/source_link.tsx4
-rw-r--r--packages/react-docs/src/components/type_definition.tsx8
-rw-r--r--packages/react-docs/src/docs_info.ts5
-rw-r--r--packages/react-docs/src/types.ts1
-rw-r--r--packages/react-docs/src/utils/doxity_utils.ts4
-rw-r--r--packages/react-docs/src/utils/typedoc_utils.ts8
-rw-r--r--packages/react-docs/src/utils/utils.ts2
19 files changed, 104 insertions, 66 deletions
diff --git a/packages/react-docs/CHANGELOG.json b/packages/react-docs/CHANGELOG.json
index b7a4cb058..0cb767dfc 100644
--- a/packages/react-docs/CHANGELOG.json
+++ b/packages/react-docs/CHANGELOG.json
@@ -1,5 +1,32 @@
[
{
+ "timestamp": 1525477860,
+ "version": "0.0.11",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1525466747,
+ "version": "0.0.10",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1525428773,
+ "version": "0.0.9",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
"version": "0.0.8",
"changes": [
{
diff --git a/packages/react-docs/CHANGELOG.md b/packages/react-docs/CHANGELOG.md
index c79b6888d..8a0afbeed 100644
--- a/packages/react-docs/CHANGELOG.md
+++ b/packages/react-docs/CHANGELOG.md
@@ -5,13 +5,25 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v0.0.11 - _May 5, 2018_
+
+ * Dependencies updated
+
+## v0.0.10 - _May 4, 2018_
+
+ * Dependencies updated
+
+## v0.0.9 - _May 4, 2018_
+
+ * Dependencies updated
+
## v0.0.8 - _April 18, 2018_
* Added support for rendering default param values (#519)
* Added support for rendering nested function types within interface types (#519)
* Improve type comment rendering (#535)
-## v0.0.7 - _April 12, 2018_
+## v0.0.7 - _April 11, 2018_
* Dependencies updated
@@ -26,11 +38,11 @@ CHANGELOG
* Rename `MethodBlock` to `SignatureBlock` since it is not used to render method and function signature blocks. (#465)
* Add support for documenting exported functions. (#465)
-## v0.0.3 - _March 18, 2018_
+## v0.0.3 - _March 17, 2018_
* Move TS typings from devDependencies to dependencies since they are needed by the package user.
-## v0.0.2 - _March 18, 2018_
+## v0.0.2 - _March 17, 2018_
* Move example out into a separate sub-package
* Consolidate all `console.log` calls into `logUtils` in the `@0xproject/utils` package (#452)
diff --git a/packages/react-docs/README.md b/packages/react-docs/README.md
index 5a46b84f0..c0efc4a0b 100644
--- a/packages/react-docs/README.md
+++ b/packages/react-docs/README.md
@@ -71,28 +71,16 @@ yarn install
### Build
-If this is your **first** time building this package, you must first build **all** packages within the monorepo. This is because packages that depend on other packages located inside this monorepo are symlinked when run from **within** the monorepo. This allows you to make changes across multiple packages without first publishing dependent packages to NPM. To build all packages, run the following from the monorepo root directory:
+To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
```bash
-yarn lerna:rebuild
+PKG=@0xproject/react-docs yarn build
```
Or continuously rebuild on change:
```bash
-yarn dev
-```
-
-You can also build this specific package by running the following from within its directory:
-
-```bash
-yarn build
-```
-
-or continuously rebuild on change:
-
-```bash
-yarn build:watch
+PKG=@0xproject/react-docs yarn watch
```
### Clean
diff --git a/packages/react-docs/package.json b/packages/react-docs/package.json
index 6ea6535ac..cf3575fea 100644
--- a/packages/react-docs/package.json
+++ b/packages/react-docs/package.json
@@ -1,13 +1,16 @@
{
"name": "@0xproject/react-docs",
- "version": "0.0.8",
+ "version": "0.0.11",
+ "engines": {
+ "node" : ">=6.12"
+ },
"description": "React documentation component for rendering TypeDoc & Doxity generated JSON",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"scripts": {
- "lint": "tslint --project . 'src/**/*.ts' 'src/**/*.tsx'",
+ "lint": "tslint --project .",
"build": "tsc && copyfiles -u 2 './lib/monorepo_scripts/**/*' ./scripts",
- "build:watch": "tsc -w",
+ "watch": "tsc -w",
"clean": "shx rm -rf lib scripts",
"manual:postpublish": "yarn build; node ./scripts/postpublish.js"
},
@@ -22,21 +25,21 @@
"url": "https://github.com/0xProject/0x-monorepo.git"
},
"devDependencies": {
- "@0xproject/dev-utils": "^0.3.6",
- "@0xproject/monorepo-scripts": "^0.1.18",
- "@0xproject/tslint-config": "^0.4.16",
+ "@0xproject/dev-utils": "^0.4.1",
+ "@0xproject/monorepo-scripts": "^0.1.19",
+ "@0xproject/tslint-config": "^0.4.17",
"copyfiles": "^1.2.0",
"shx": "^0.2.2",
"tslint": "^5.9.1",
"typescript": "2.7.1"
},
"dependencies": {
- "@0xproject/react-shared": "^0.1.3",
- "@0xproject/utils": "^0.5.2",
+ "@0xproject/react-shared": "^0.1.6",
+ "@0xproject/utils": "^0.6.1",
"@types/lodash": "4.14.104",
"@types/material-ui": "0.18.0",
"@types/node": "^8.0.53",
- "@types/react": "16.0.41",
+ "@types/react": "16.3.13",
"@types/react-dom": "^16.0.3",
"@types/react-scroll": "0.0.31",
"basscss": "^8.0.3",
diff --git a/packages/react-docs/src/components/badge.tsx b/packages/react-docs/src/components/badge.tsx
index b342f2dca..0137b153b 100644
--- a/packages/react-docs/src/components/badge.tsx
+++ b/packages/react-docs/src/components/badge.tsx
@@ -31,7 +31,7 @@ export class Badge extends React.Component<BadgeProps, BadgeState> {
isHovering: false,
};
}
- public render() {
+ public render(): React.ReactNode {
const badgeStyle = {
...styles.badge,
backgroundColor: this.props.backgroundColor,
@@ -48,7 +48,7 @@ export class Badge extends React.Component<BadgeProps, BadgeState> {
</div>
);
}
- private _setHoverState(isHovering: boolean) {
+ private _setHoverState(isHovering: boolean): void {
this.setState({
isHovering,
});
diff --git a/packages/react-docs/src/components/custom_enum.tsx b/packages/react-docs/src/components/custom_enum.tsx
index 1fe55eedc..797372f35 100644
--- a/packages/react-docs/src/components/custom_enum.tsx
+++ b/packages/react-docs/src/components/custom_enum.tsx
@@ -14,7 +14,7 @@ export interface CustomEnumProps {
// This component renders custom string enums that was a work-around for versions of
// TypeScript <2.4.0 that did not support them natively. We keep it around to support
// older versions of 0x.js <0.9.0
-export function CustomEnum(props: CustomEnumProps) {
+export const CustomEnum = (props: CustomEnumProps) => {
const type = props.type;
if (!_.startsWith(type.defaultValue, STRING_ENUM_CODE_PREFIX)) {
logUtils.log('We do not yet support `Variable` types that are not strEnums');
@@ -31,4 +31,4 @@ export function CustomEnum(props: CustomEnumProps) {
{`}`}
</span>
);
-}
+};
diff --git a/packages/react-docs/src/components/documentation.tsx b/packages/react-docs/src/components/documentation.tsx
index 800892dc8..25687db67 100644
--- a/packages/react-docs/src/components/documentation.tsx
+++ b/packages/react-docs/src/components/documentation.tsx
@@ -71,19 +71,19 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
isHoveringSidebar: false,
};
}
- public componentDidMount() {
+ public componentDidMount(): void {
window.addEventListener('hashchange', this._onHashChanged.bind(this), false);
}
- public componentWillUnmount() {
+ public componentWillUnmount(): void {
window.removeEventListener('hashchange', this._onHashChanged.bind(this), false);
}
- public componentDidUpdate(prevProps: DocumentationProps, prevState: DocumentationState) {
+ public componentDidUpdate(prevProps: DocumentationProps, prevState: DocumentationState): void {
if (!_.isEqual(prevProps.docAgnosticFormat, this.props.docAgnosticFormat)) {
const hash = window.location.hash.slice(1);
sharedUtils.scrollToHash(hash, sharedConstants.SCROLL_CONTAINER_ID);
}
}
- public render() {
+ public render(): React.ReactNode {
const styles: Styles = {
mainContainers: {
position: 'absolute',
@@ -91,7 +91,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
left: 0,
bottom: 0,
right: 0,
- overflowZ: 'hidden',
+ overflowX: 'hidden',
overflowY: 'scroll',
minHeight: `calc(100vh - ${this.props.topBarHeight}px)`,
WebkitOverflowScrolling: 'touch',
@@ -157,7 +157,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
</div>
);
}
- private _renderLoading(mainContainersStyles: React.CSSProperties) {
+ private _renderLoading(mainContainersStyles: React.CSSProperties): React.ReactNode {
return (
<div className="col col-12" style={mainContainersStyles}>
<div
@@ -289,7 +289,7 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
</div>
);
}
- private _renderNetworkBadgesIfExists(sectionName: string) {
+ private _renderNetworkBadgesIfExists(sectionName: string): React.ReactNode {
if (this.props.docsInfo.type !== SupportedDocJson.Doxity) {
return null;
}
@@ -368,17 +368,17 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
/>
);
}
- private _onSidebarHover(event: React.FormEvent<HTMLInputElement>) {
+ private _onSidebarHover(event: React.FormEvent<HTMLInputElement>): void {
this.setState({
isHoveringSidebar: true,
});
}
- private _onSidebarHoverOff() {
+ private _onSidebarHoverOff(): void {
this.setState({
isHoveringSidebar: false,
});
}
- private _onHashChanged(event: any) {
+ private _onHashChanged(event: any): void {
const hash = window.location.hash.slice(1);
sharedUtils.scrollToHash(hash, sharedConstants.SCROLL_CONTAINER_ID);
}
diff --git a/packages/react-docs/src/components/enum.tsx b/packages/react-docs/src/components/enum.tsx
index 37f82f26e..536385d90 100644
--- a/packages/react-docs/src/components/enum.tsx
+++ b/packages/react-docs/src/components/enum.tsx
@@ -7,7 +7,7 @@ export interface EnumProps {
values: EnumValue[];
}
-export function Enum(props: EnumProps) {
+export const Enum = (props: EnumProps) => {
const values = _.map(props.values, (value, i) => {
const defaultValueIfAny = !_.isUndefined(value.defaultValue) ? ` = ${value.defaultValue}` : '';
return `\n\t${value.name}${defaultValueIfAny},`;
@@ -20,4 +20,4 @@ export function Enum(props: EnumProps) {
{`}`}
</span>
);
-}
+};
diff --git a/packages/react-docs/src/components/event_definition.tsx b/packages/react-docs/src/components/event_definition.tsx
index 67729ac87..b4dc729a9 100644
--- a/packages/react-docs/src/components/event_definition.tsx
+++ b/packages/react-docs/src/components/event_definition.tsx
@@ -24,7 +24,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
shouldShowAnchor: false,
};
}
- public render() {
+ public render(): React.ReactNode {
const event = this.props.event;
const id = `${this.props.sectionName}-${event.name}`;
return (
@@ -49,7 +49,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
</div>
);
}
- private _renderEventCode() {
+ private _renderEventCode(): React.ReactNode {
const indexed = <span style={{ color: colors.green }}> indexed</span>;
const eventArgs = _.map(this.props.event.eventArgs, (eventArg: EventArg) => {
const type = (
@@ -76,7 +76,7 @@ export class EventDefinition extends React.Component<EventDefinitionProps, Event
</span>
);
}
- private _setAnchorVisibility(shouldShowAnchor: boolean) {
+ private _setAnchorVisibility(shouldShowAnchor: boolean): void {
this.setState({
shouldShowAnchor,
});
diff --git a/packages/react-docs/src/components/interface.tsx b/packages/react-docs/src/components/interface.tsx
index bdfdf47c4..a881c7fec 100644
--- a/packages/react-docs/src/components/interface.tsx
+++ b/packages/react-docs/src/components/interface.tsx
@@ -13,7 +13,7 @@ export interface InterfaceProps {
docsInfo: DocsInfo;
}
-export function Interface(props: InterfaceProps) {
+export const Interface = (props: InterfaceProps) => {
const type = props.type;
const properties = _.map(type.children, property => {
return (
@@ -63,4 +63,4 @@ export function Interface(props: InterfaceProps) {
{`}`}
</span>
);
-}
+};
diff --git a/packages/react-docs/src/components/signature.tsx b/packages/react-docs/src/components/signature.tsx
index 1d3c90261..c4a6394fa 100644
--- a/packages/react-docs/src/components/signature.tsx
+++ b/packages/react-docs/src/components/signature.tsx
@@ -88,7 +88,7 @@ function renderParameters(
docsInfo: DocsInfo,
sectionName: string,
typeDefinitionByName?: TypeDefinitionByName,
-) {
+): React.ReactNode[] {
const params = _.map(parameters, (p: Parameter) => {
const isOptional = p.isOptional;
const hasDefaultValue = !_.isUndefined(p.defaultValue);
@@ -116,7 +116,7 @@ function renderTypeParameter(
docsInfo: DocsInfo,
sectionName: string,
typeDefinitionByName?: TypeDefinitionByName,
-) {
+): React.ReactNode {
const typeParam = (
<span>
{`<${typeParameter.name} extends `}
diff --git a/packages/react-docs/src/components/signature_block.tsx b/packages/react-docs/src/components/signature_block.tsx
index 6475d3995..9e5198e16 100644
--- a/packages/react-docs/src/components/signature_block.tsx
+++ b/packages/react-docs/src/components/signature_block.tsx
@@ -42,7 +42,7 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
shouldShowAnchor: false,
};
}
- public render() {
+ public render(): React.ReactNode {
const method = this.props.method;
if (typeDocUtils.isPrivateOrProtectedProperty(method.name)) {
return null;
@@ -111,14 +111,14 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
</div>
);
}
- private _renderChip(text: string) {
+ private _renderChip(text: string): React.ReactNode {
return (
<div className="p1 mr1" style={styles.chip}>
{text}
</div>
);
}
- private _renderParameterDescriptions(parameters: Parameter[]) {
+ private _renderParameterDescriptions(parameters: Parameter[]): React.ReactNode {
const descriptions = _.map(parameters, parameter => {
const isOptional = parameter.isOptional;
return (
@@ -146,7 +146,7 @@ export class SignatureBlock extends React.Component<SignatureBlockProps, Signatu
});
return descriptions;
}
- private _setAnchorVisibility(shouldShowAnchor: boolean) {
+ private _setAnchorVisibility(shouldShowAnchor: boolean): void {
this.setState({
shouldShowAnchor,
});
diff --git a/packages/react-docs/src/components/source_link.tsx b/packages/react-docs/src/components/source_link.tsx
index 89956a507..58a9ba6a7 100644
--- a/packages/react-docs/src/components/source_link.tsx
+++ b/packages/react-docs/src/components/source_link.tsx
@@ -10,7 +10,7 @@ export interface SourceLinkProps {
version: string;
}
-export function SourceLink(props: SourceLinkProps) {
+export const SourceLink = (props: SourceLinkProps) => {
const src = props.source;
const sourceCodeUrl = `${props.sourceUrl}/${src.fileName}#L${src.line}`;
return (
@@ -20,4 +20,4 @@ export function SourceLink(props: SourceLinkProps) {
</a>
</div>
);
-}
+};
diff --git a/packages/react-docs/src/components/type_definition.tsx b/packages/react-docs/src/components/type_definition.tsx
index 605b58fbd..a8e601ac2 100644
--- a/packages/react-docs/src/components/type_definition.tsx
+++ b/packages/react-docs/src/components/type_definition.tsx
@@ -3,7 +3,7 @@ import * as _ from 'lodash';
import * as React from 'react';
import { DocsInfo } from '../docs_info';
-import { CustomType, CustomTypeChild, KindString, TypeDocTypes } from '../types';
+import { CustomType, CustomTypeChild, EnumValue, KindString, TypeDocTypes } from '../types';
import { constants } from '../utils/constants';
import { utils } from '../utils/utils';
@@ -35,7 +35,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
shouldShowAnchor: false,
};
}
- public render() {
+ public render(): React.ReactNode {
const customType = this.props.customType;
if (!this.props.docsInfo.isPublicType(customType.name)) {
return null; // no-op
@@ -129,7 +129,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
</div>
);
}
- private _setAnchorVisibility(shouldShowAnchor: boolean) {
+ private _setAnchorVisibility(shouldShowAnchor: boolean): void {
this.setState({
shouldShowAnchor,
});
@@ -150,7 +150,7 @@ export class TypeDefinition extends React.Component<TypeDefinitionProps, TypeDef
*
* Each property description should be on a new line.
*/
- private _formatComment(text: string) {
+ private _formatComment(text: string): string {
const NEW_LINE_REGEX = /(\r\n|\n|\r)/gm;
const sanitizedText = text.replace(NEW_LINE_REGEX, ' ');
const PROPERTY_DESCRIPTION_DIVIDER = ':';
diff --git a/packages/react-docs/src/docs_info.ts b/packages/react-docs/src/docs_info.ts
index 0030568a1..e9c84b7c9 100644
--- a/packages/react-docs/src/docs_info.ts
+++ b/packages/react-docs/src/docs_info.ts
@@ -11,6 +11,7 @@ import {
DoxityDocObj,
SectionsMap,
SupportedDocJson,
+ TypeDefinitionByName,
TypeDocNode,
} from './types';
import { doxityUtils } from './utils/doxity_utils';
@@ -104,13 +105,13 @@ export class DocsInfo {
});
return menuSubsectionsBySection;
}
- public getTypeDefinitionsByName(docAgnosticFormat: DocAgnosticFormat) {
+ public getTypeDefinitionsByName(docAgnosticFormat: DocAgnosticFormat): { [name: string]: TypeDefinitionByName } {
if (_.isUndefined(this.sections.types)) {
return {};
}
const typeDocSection = docAgnosticFormat[this.sections.types];
- const typeDefinitionByName = _.keyBy(typeDocSection.types, 'name');
+ const typeDefinitionByName = _.keyBy(typeDocSection.types, 'name') as any;
return typeDefinitionByName;
}
public isVisibleConstructor(sectionName: string): boolean {
diff --git a/packages/react-docs/src/types.ts b/packages/react-docs/src/types.ts
index 3b4a57ad5..f4e61edc9 100644
--- a/packages/react-docs/src/types.ts
+++ b/packages/react-docs/src/types.ts
@@ -94,6 +94,7 @@ export enum KindString {
Method = 'Method',
Interface = 'Interface',
TypeAlias = 'Type alias',
+ ObjectLiteral = 'Object literal',
Variable = 'Variable',
Function = 'Function',
Enumeration = 'Enumeration',
diff --git a/packages/react-docs/src/utils/doxity_utils.ts b/packages/react-docs/src/utils/doxity_utils.ts
index 1b91690e0..374ee07dd 100644
--- a/packages/react-docs/src/utils/doxity_utils.ts
+++ b/packages/react-docs/src/utils/doxity_utils.ts
@@ -142,7 +142,7 @@ export const doxityUtils = {
};
return type;
},
- _isMethod(abiDoc: DoxityAbiDoc) {
+ _isMethod(abiDoc: DoxityAbiDoc): boolean {
if (abiDoc.type !== AbiTypes.Function) {
return false;
}
@@ -152,7 +152,7 @@ export const doxityUtils = {
const isMethod = hasNamedOutputIfExists && !isNameAllCaps;
return isMethod;
},
- _isProperty(abiDoc: DoxityAbiDoc) {
+ _isProperty(abiDoc: DoxityAbiDoc): boolean {
if (abiDoc.type !== AbiTypes.Function) {
return false;
}
diff --git a/packages/react-docs/src/utils/typedoc_utils.ts b/packages/react-docs/src/utils/typedoc_utils.ts
index 9c89b135a..5a672f10f 100644
--- a/packages/react-docs/src/utils/typedoc_utils.ts
+++ b/packages/react-docs/src/utils/typedoc_utils.ts
@@ -93,10 +93,16 @@ export const typeDocUtils = {
throw new Error('`react-docs` only supports projects with 1 exported class per file');
}
const isClassExport = packageDefinitionWithMergedChildren.children[0].kindString === KindString.Class;
+ const isObjectLiteralExport =
+ packageDefinitionWithMergedChildren.children[0].kindString === KindString.ObjectLiteral;
if (isClassExport) {
entities = packageDefinitionWithMergedChildren.children[0].children;
const commentObj = packageDefinitionWithMergedChildren.children[0].comment;
packageComment = !_.isUndefined(commentObj) ? commentObj.shortText : packageComment;
+ } else if (isObjectLiteralExport) {
+ entities = packageDefinitionWithMergedChildren.children[0].children;
+ const commentObj = packageDefinitionWithMergedChildren.children[0].comment;
+ packageComment = !_.isUndefined(commentObj) ? commentObj.shortText : packageComment;
} else {
entities = packageDefinitionWithMergedChildren.children;
}
@@ -107,7 +113,7 @@ export const typeDocUtils = {
});
return docAgnosticFormat;
},
- _convertEntitiesToDocSection(entities: TypeDocNode[], docsInfo: DocsInfo, sectionName: string) {
+ _convertEntitiesToDocSection(entities: TypeDocNode[], docsInfo: DocsInfo, sectionName: string): DocSection {
const docSection: DocSection = {
comment: '',
constructors: [],
diff --git a/packages/react-docs/src/utils/utils.ts b/packages/react-docs/src/utils/utils.ts
index f8c1fefff..e3dd1fc62 100644
--- a/packages/react-docs/src/utils/utils.ts
+++ b/packages/react-docs/src/utils/utils.ts
@@ -1,5 +1,5 @@
export const utils = {
- spawnSwitchErr(name: string, value: any) {
+ spawnSwitchErr(name: string, value: any): Error {
return new Error(`Unexpected switch value: ${value} encountered for ${name}`);
},
};