From ce0a3f1ac2b358bbeffff4dbb59ac7265543f434 Mon Sep 17 00:00:00 2001 From: Aura Munoz Date: Fri, 13 Sep 2019 19:21:06 +0200 Subject: [PATCH 1/7] fix cellRenderer --- src/TableHeaderRow.tsx | 6 +++--- src/TableRow.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/TableHeaderRow.tsx b/src/TableHeaderRow.tsx index be174084..c561f352 100644 --- a/src/TableHeaderRow.tsx +++ b/src/TableHeaderRow.tsx @@ -12,7 +12,7 @@ export interface ITableHeaderRowProps { style?: React.CSSProperties; columns: IColumnProps[]; headerIndex?: number; - cellRenderer?: React.ElementType>; + cellRenderer?: (props: ICellRendererCBParam) => React.ReactNode; headerRenderer?: React.ElementType; expandColumnKey?: string; expandIcon?: React.ElementType; @@ -28,7 +28,7 @@ const TableHeaderRow: TTableHeaderRow = ({ style, columns, headerIndex, - cellRenderer: CellRenderer, + cellRenderer, headerRenderer, expandColumnKey, expandIcon: ExpandIcon, @@ -43,7 +43,7 @@ const TableHeaderRow: TTableHeaderRow = ({ headerIndex, expandIcon: column.key === expandColumnKey && , }; - return ; + return cellRenderer({...cellProps}); }); if (headerRenderer) { diff --git a/src/TableRow.tsx b/src/TableRow.tsx index aec7f5c2..a5ddf856 100644 --- a/src/TableRow.tsx +++ b/src/TableRow.tsx @@ -25,7 +25,7 @@ export interface ITableRowProps { depth?: number; rowEventHandlers?: THandlerCollection; rowRenderer?: React.ElementType | React.ReactElement; - cellRenderer?: React.ElementType>; + cellRenderer?: (props: ICellRendererCBParam) => React.ReactNode; expandIconRenderer?: React.ElementType>; onRowHover?: (args: IOnRowHover) => void; onRowExpand?: (args: IOnRowExpandCBParam) => any; @@ -52,7 +52,7 @@ class TableRow extends React.PureComponent> { depth, rowEventHandlers, rowRenderer, - cellRenderer: CellRenderer, + cellRenderer, expandIconRenderer: ExpandIconRenderer, tagName: Tag, // omit the following from rest @@ -76,7 +76,7 @@ class TableRow extends React.PureComponent> { rowIndex, expandIcon: column.key === expandColumnKey && expandIcon, }; - return ; + return cellRenderer({...cellProps}); }); if (rowRenderer) { From db2d71cccbc842faecc1f05d9f5cab0e280dfcce Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Tue, 17 Sep 2019 17:06:17 +0200 Subject: [PATCH 2/7] Generate API docs from ts/tsx files. Localize the relavent gatsby plugin. --- .gitignore | 1 + package.json | 1 + src/AutoResizer.tsx | 2 +- src/BaseTable.spec.tsx | 2 +- src/BaseTable.tsx | 2 +- src/Column.tsx | 2 +- src/ColumnResizer.tsx | 2 +- src/ExpandIcon.tsx | 2 +- src/GridTable.tsx | 2 +- src/SortIndicator.tsx | 2 +- src/TableCell.tsx | 2 +- src/TableHeader.tsx | 2 +- src/TableHeaderCell.tsx | 2 +- src/TableHeaderRow.tsx | 2 +- src/TableRow.tsx | 2 +- src/utils.tsx | 2 +- website/gatsby-config.js | 4 +- website/gatsby-node.js | 20 +- website/package.json | 1 + .../.babelrc | 5 + .../CHANGELOG.md | 291 ++++++++++++++++++ .../LICENSE | 22 ++ .../README.md | 91 ++++++ .../displayname-handler.js | 113 +++++++ .../doclets.js | 164 ++++++++++ .../extend-node-type.js | 162 ++++++++++ .../gatsby-node.js | 4 + .../index.js | 1 + .../on-node-create.js | 202 ++++++++++++ .../package.json | 51 +++ .../parse.js | 78 +++++ website/siteConfig.js | 40 ++- website/src/pages/docsTS.txt | 227 ++++++++++++++ website/src/templates/apiFromTS.js | 81 +++++ website/utilsNode.js | 33 ++ website/yarn.lock | 5 + 36 files changed, 1602 insertions(+), 23 deletions(-) create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/README.md create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/index.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/package.json create mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/parse.js create mode 100644 website/src/pages/docsTS.txt create mode 100644 website/src/templates/apiFromTS.js create mode 100644 website/utilsNode.js diff --git a/.gitignore b/.gitignore index 4e90dc53..e460f981 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ styles.css es/ lib/ coverage/ +website/_build/_doc/sampleDoc.json diff --git a/package.json b/package.json index 085c6f86..ceb78d21 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "build:css": "node-sass src/_BaseTable.scss ./styles.css --output-style expanded", "build": "npm run build:js && npm run build:es && npm run build:css", "build:typescript": "tsc", + "postinstall": "tsc", "format": "prettier --write 'src/**/*.{js,scss}'", "prebuild": "npm run clean", "precommit": "lint-staged", diff --git a/src/AutoResizer.tsx b/src/AutoResizer.tsx index a0cc56c0..6fc54f96 100644 --- a/src/AutoResizer.tsx +++ b/src/AutoResizer.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; /** diff --git a/src/BaseTable.spec.tsx b/src/BaseTable.spec.tsx index e0274c35..f0b596ab 100644 --- a/src/BaseTable.spec.tsx +++ b/src/BaseTable.spec.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import renderer from 'react-test-renderer'; import BaseTable, { IBaseTableProps } from './BaseTable'; diff --git a/src/BaseTable.tsx b/src/BaseTable.tsx index 16063436..54e7b84a 100644 --- a/src/BaseTable.tsx +++ b/src/BaseTable.tsx @@ -1,6 +1,6 @@ import cn from 'classnames'; import memoize from 'memoize-one'; -import React from 'react'; +import * as React from 'react'; import { Align, GridChildComponentProps } from 'react-window'; import Column, { Alignment, FrozenDirection, IColumnProps } from './Column'; import ColumnManager from './ColumnManager'; diff --git a/src/Column.tsx b/src/Column.tsx index 26e94128..b3638a79 100644 --- a/src/Column.tsx +++ b/src/Column.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; export enum Alignment { LEFT = 'left', diff --git a/src/ColumnResizer.tsx b/src/ColumnResizer.tsx index 9006f2e9..a316eede 100644 --- a/src/ColumnResizer.tsx +++ b/src/ColumnResizer.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { IColumnProps } from './Column'; import { addClassName, noop, removeClassName, isMouseEvent, isTouchEvent, eventsFor } from './utils'; diff --git a/src/ExpandIcon.tsx b/src/ExpandIcon.tsx index e9599538..3a279973 100644 --- a/src/ExpandIcon.tsx +++ b/src/ExpandIcon.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import React from 'react'; +import * as React from 'react'; /** * default ExpandIcon for BaseTable diff --git a/src/GridTable.tsx b/src/GridTable.tsx index 988e2fe0..60e63000 100644 --- a/src/GridTable.tsx +++ b/src/GridTable.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import React from 'react'; +import * as React from 'react'; import { Align, FixedSizeGrid as Grid, FixedSizeGridProps, GridOnItemsRenderedProps } from 'react-window'; import { IOnRowsRenderedParam, RendererArgs } from './BaseTable'; diff --git a/src/SortIndicator.tsx b/src/SortIndicator.tsx index e76b8030..a4c2e8ae 100644 --- a/src/SortIndicator.tsx +++ b/src/SortIndicator.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import React from 'react'; +import * as React from 'react'; import SortOrder from './SortOrder'; diff --git a/src/TableCell.tsx b/src/TableCell.tsx index 8ef81b55..222a6779 100644 --- a/src/TableCell.tsx +++ b/src/TableCell.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { IColumnEssential, IRowEssential, RowDataType } from './Column'; import { toString } from './utils'; diff --git a/src/TableHeader.tsx b/src/TableHeader.tsx index e2f0077d..e71921fd 100644 --- a/src/TableHeader.tsx +++ b/src/TableHeader.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { IRowRendererCBParam, RendererArgs } from './BaseTable'; import { IColumnProps, IHeaderRendererCBParam, RowDataType } from './Column'; import { IHeaderRendererParam } from './GridTable'; diff --git a/src/TableHeaderCell.tsx b/src/TableHeaderCell.tsx index 65014a8b..3673d596 100644 --- a/src/TableHeaderCell.tsx +++ b/src/TableHeaderCell.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; export interface ITableHeaderCellProps { className?: string; diff --git a/src/TableHeaderRow.tsx b/src/TableHeaderRow.tsx index c561f352..ae736618 100644 --- a/src/TableHeaderRow.tsx +++ b/src/TableHeaderRow.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { renderElement } from './utils'; diff --git a/src/TableRow.tsx b/src/TableRow.tsx index a5ddf856..b0ea72a9 100644 --- a/src/TableRow.tsx +++ b/src/TableRow.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { ICellProps, IOnRowExpandCBParam, IOnRowHover, IRenderExpandIcon, IRowRendererCBParam } from './BaseTable'; import { ICellRendererCBParam, IColumnProps, RowDataType } from './Column'; import { renderElement } from './utils'; diff --git a/src/utils.tsx b/src/utils.tsx index 71e09e76..1f2d0b38 100644 --- a/src/utils.tsx +++ b/src/utils.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import * as React from 'react'; import { IColumnProps } from './Column'; export function renderElement(renderer: React.ElementType | React.ReactElement, props?: any) { diff --git a/website/gatsby-config.js b/website/gatsby-config.js index f5dc695b..fc17cf60 100644 --- a/website/gatsby-config.js +++ b/website/gatsby-config.js @@ -66,7 +66,7 @@ module.exports = { options: { name: 'api', ignore: ['**/*.snap', '**/*.scss'], - path: `${__dirname}/../build`, + path: `${__dirname}/../src`, }, }, { @@ -75,6 +75,6 @@ module.exports = { plugins: ['gatsby-remark-copy-linked-files'], }, }, - 'gatsby-transformer-react-docgen', + 'gatsby-transformer-react-docgen-typescript', ], } diff --git a/website/gatsby-node.js b/website/gatsby-node.js index 38da9148..29eac3e5 100644 --- a/website/gatsby-node.js +++ b/website/gatsby-node.js @@ -1,6 +1,7 @@ const path = require('path') +const fs = require('fs') const _ = require('lodash') - +const { findFileWithExtension } = require('./utilsNode') const siteConfig = require('./siteConfig') exports.onCreateWebpackConfig = ({ stage, getConfig, actions }) => { @@ -17,6 +18,8 @@ exports.onCreateWebpackConfig = ({ stage, getConfig, actions }) => { 'react-base-table': path.resolve(__dirname, '../build'), } + config.devtool = `source-map` + actions.replaceWebpackConfig(config) } @@ -69,7 +72,6 @@ exports.onCreateNode = ({ node, actions, getNode, createNodeId }) => { exports.createPages = async ({ graphql, actions, getNode }) => { const { createPage } = actions - const docPage = path.resolve('src/templates/doc.js') const apiPage = path.resolve('src/templates/api.js') const examplePage = path.resolve('src/templates/example.js') @@ -123,12 +125,24 @@ exports.createPages = async ({ graphql, actions, getNode }) => { }) }) + const docDisplayNames = findFileWithExtension('tsx').map(item => { + return path.basename(item).replace('.tsx', '') + }) + result.data.allComponentMetadata.edges.forEach(edge => { const node = edge.node const fileNode = getNode(node.parent.id) if (fileNode.sourceInstanceName !== 'api') return const { displayName: name, docblock } = node - if (!docblock) return + if (!docblock) { + const currentDisplayNameMatch = docDisplayNames.find(displayNameItem => { + return displayNameItem === name + }) + + if (!currentDisplayNameMatch) { + return + } + } createPage({ path: `/api/${name.toLowerCase()}`, component: apiPage, diff --git a/website/package.json b/website/package.json index 5f4c7c21..b5e0be0e 100644 --- a/website/package.json +++ b/website/package.json @@ -26,6 +26,7 @@ "prop-types": "^15.7.2", "react": "^16.8.5", "react-dom": "^16.8.5", + "react-docgen-typescript": "^1.15.0", "react-helmet": "^5.2.0", "react-inspector": "^2.3.1", "react-live-runner": "^0.7.3", diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc b/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc new file mode 100644 index 00000000..9f5de61e --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc @@ -0,0 +1,5 @@ +{ + "presets": [ + ["babel-preset-gatsby-package"] + ] +} diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md b/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md new file mode 100644 index 00000000..873199c1 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md @@ -0,0 +1,291 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [5.0.15](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.13...gatsby-transformer-react-docgen@5.0.15) (2019-09-26) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.14](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.13...gatsby-transformer-react-docgen@5.0.14) (2019-09-26) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.13](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.12...gatsby-transformer-react-docgen@5.0.13) (2019-09-20) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.12](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.11...gatsby-transformer-react-docgen@5.0.12) (2019-09-10) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.11](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.10...gatsby-transformer-react-docgen@5.0.11) (2019-09-09) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.10](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.9...gatsby-transformer-react-docgen@5.0.10) (2019-09-09) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.9](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.8...gatsby-transformer-react-docgen@5.0.9) (2019-09-01) + +### Bug Fixes + +- update minor updates in packages except react, babel and eslint ([#17254](https://github.com/gatsbyjs/gatsby/issues/17254)) ([252d867](https://github.com/gatsbyjs/gatsby/commit/252d867)) + +### Features + +- **gatsby-transformer-react-docgen:** vendor in react-docge... ([#16913](https://github.com/gatsbyjs/gatsby/issues/16913)) ([f3b540b](https://github.com/gatsbyjs/gatsby/commit/f3b540b)) + +## [5.0.8](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.7...gatsby-transformer-react-docgen@5.0.8) (2019-08-29) + +### Bug Fixes + +- update dependency react-docgen-displayname-handler to ^2.1.3 ([#17081](https://github.com/gatsbyjs/gatsby/issues/17081)) ([a87cf60](https://github.com/gatsbyjs/gatsby/commit/a87cf60)) + +## [5.0.7](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.6...gatsby-transformer-react-docgen@5.0.7) (2019-08-25) + +### Bug Fixes + +- update dependency react-docgen-displayname-handler to ^2.1.2 ([#17069](https://github.com/gatsbyjs/gatsby/issues/17069)) ([c5d5e1a](https://github.com/gatsbyjs/gatsby/commit/c5d5e1a)) + +## [5.0.6](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.5...gatsby-transformer-react-docgen@5.0.6) (2019-08-23) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.4...gatsby-transformer-react-docgen@5.0.5) (2019-08-22) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.3...gatsby-transformer-react-docgen@5.0.4) (2019-08-22) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.2...gatsby-transformer-react-docgen@5.0.3) (2019-08-21) + +### Bug Fixes + +- update dependency common-tags to ^1.8.0 ([#16834](https://github.com/gatsbyjs/gatsby/issues/16834)) ([8ed5197](https://github.com/gatsbyjs/gatsby/commit/8ed5197)) + +## [5.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.1...gatsby-transformer-react-docgen@5.0.2) (2019-08-20) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [5.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.0...gatsby-transformer-react-docgen@5.0.1) (2019-08-09) + +### Features + +- **gatsby-transformer-react-docgen:** fallback to TypeScript… ([#15202](https://github.com/gatsbyjs/gatsby/issues/15202)) ([67c0e3b](https://github.com/gatsbyjs/gatsby/commit/67c0e3b)) + +# [5.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.3...gatsby-transformer-react-docgen@5.0.0) (2019-08-09) + +### Features + +- **gatsby-transformer-react-docgen:** upgrade to react-docgen… ([#16094](https://github.com/gatsbyjs/gatsby/issues/16094)) ([16f7670](https://github.com/gatsbyjs/gatsby/commit/16f7670)) + +## [4.1.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.2...gatsby-transformer-react-docgen@4.1.3) (2019-07-13) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [4.1.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.1...gatsby-transformer-react-docgen@4.1.2) (2019-07-12) + +### Bug Fixes + +- correct links in package changelogs ([#15630](https://github.com/gatsbyjs/gatsby/issues/15630)) ([d07b9dd](https://github.com/gatsbyjs/gatsby/commit/d07b9dd)) + +## [4.1.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.0...gatsby-transformer-react-docgen@4.1.1) (2019-07-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +# [4.1.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.4...gatsby-transformer-react-docgen@4.1.0) (2019-06-20) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [4.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.2...gatsby-transformer-react-docgen@4.0.4) (2019-06-19) + +### Bug Fixes + +- **gatsby-transformer-react-docgen:** always create description nodes ([#14876](https://github.com/gatsbyjs/gatsby/issues/14876)) ([48a9e10](https://github.com/gatsbyjs/gatsby/commit/48a9e10)) + +## [4.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.2...gatsby-transformer-react-docgen@4.0.3) (2019-06-19) + +### Bug Fixes + +- **gatsby-transformer-react-docgen:** always create description nodes ([#14876](https://github.com/gatsbyjs/gatsby/issues/14876)) ([48a9e10](https://github.com/gatsbyjs/gatsby/commit/48a9e10)) + +## [4.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.1...gatsby-transformer-react-docgen@4.0.2) (2019-05-30) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [4.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.0...gatsby-transformer-react-docgen@4.0.1) (2019-04-08) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +# [4.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.7...gatsby-transformer-react-docgen@4.0.0) (2019-04-02) + +### Features + +- **gatsby-transformer-react-docgen:** use local babel config for react-docgen ([#12001](https://github.com/gatsbyjs/gatsby/issues/12001)) ([4a2680b](https://github.com/gatsbyjs/gatsby/commit/4a2680b)) + +### BREAKING CHANGES + +- **gatsby-transformer-react-docgen:** now uses the local babel config with a fallback + +- Update README.md + +## [3.0.7](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.6...gatsby-transformer-react-docgen@3.0.7) (2019-03-15) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [3.0.6](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.5...gatsby-transformer-react-docgen@3.0.6) (2019-03-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [3.0.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.4...gatsby-transformer-react-docgen@3.0.5) (2019-02-06) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [3.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.3...gatsby-transformer-react-docgen@3.0.4) (2019-02-01) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + +## [3.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.2...gatsby-transformer-react-docgen@3.0.3) (2019-01-29) + +### Features + +- **gatsby-transformer-react-docgen:** allow parsing TypeScript files ([#11265](https://github.com/gatsbyjs/gatsby/issues/11265)) ([c9a8991](https://github.com/gatsbyjs/gatsby/commit/c9a8991)) + +## [3.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.1...gatsby-transformer-react-docgen@3.0.2) (2019-01-25) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [3.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.0...gatsby-transformer-react-docgen@3.0.1) (2019-01-23) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +# [3.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.3...gatsby-transformer-react-docgen@3.0.0) (2018-12-31) + +### Features + +- **gatsby-transformer-react-docgen:** support multiple doclets of same tag ([#10342](https://github.com/gatsbyjs/gatsby/issues/10342)) ([c5c84a0](https://github.com/gatsbyjs/gatsby/commit/c5c84a0)) + +### BREAKING CHANGES + +- **gatsby-transformer-react-docgen:** Shape of `doclet` field is changed. It's no longer object but array of objects with `tag` and `value` fields: + +gatsby-transformer-react-docgen@^2.0.0: + +```json +{ + "doclets": { + "type": "{Foo}", + "property": "{string} property1" + } +} +``` + +gatsby-transformer-react-docgen@^3.0.0: + +```json +{ + "doclets": [ + { "tag": "type", "value": "{Foo}" }, + { "tag": "property", "value": "{string} property1" }, + { "tag": "property", "value": "{number} property2" } + ] +} +``` + + + +## [2.1.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.2...gatsby-transformer-react-docgen@2.1.3) (2018-11-29) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1...gatsby-transformer-react-docgen@2.1.2) (2018-10-29) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.5...gatsby-transformer-react-docgen@2.1.1) (2018-09-17) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.4...gatsby-transformer-react-docgen@2.1.1-rc.5) (2018-09-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.3...gatsby-transformer-react-docgen@2.1.1-rc.4) (2018-09-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.2...gatsby-transformer-react-docgen@2.1.1-rc.3) (2018-09-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.1...gatsby-transformer-react-docgen@2.1.1-rc.2) (2018-09-11) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.0...gatsby-transformer-react-docgen@2.1.1-rc.1) (2018-08-29) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-rc.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.5...gatsby-transformer-react-docgen@2.1.1-rc.0) (2018-08-21) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.4...gatsby-transformer-react-docgen@2.1.1-beta.5) (2018-08-08) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.3...gatsby-transformer-react-docgen@2.1.1-beta.4) (2018-07-21) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.2...gatsby-transformer-react-docgen@2.1.1-beta.3) (2018-06-23) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.1...gatsby-transformer-react-docgen@2.1.1-beta.2) (2018-06-20) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.0...gatsby-transformer-react-docgen@2.1.1-beta.1) (2018-06-17) + +**Note:** Version bump only for package gatsby-transformer-react-docgen + + + +## [2.1.1-beta.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@1.0.17...gatsby-transformer-react-docgen@2.1.1-beta.0) (2018-06-17) + +**Note:** Version bump only for package gatsby-transformer-react-docgen diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE b/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE new file mode 100644 index 00000000..720fea24 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Gatsbyjs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md new file mode 100644 index 00000000..70c558a1 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md @@ -0,0 +1,91 @@ +### [IMPORTANT] +This is an unpublished version. Typescript support added using `react-docgen-typescript`. + +# gatsby-transformer-react-docgen + + +Parses inline component-documentation using +[react-docgen](https://github.com/reactjs/react-docgen). + +## Install + +``` +npm install --save gatsby-transformer-react-docgen +``` + +## Usage + +Add a plugin-entry to your `gatsby-config.js` + +```js +module.exports = { + plugins: [`gatsby-transformer-react-docgen`], +} +``` + +For custom resolvers or handlers, all config options are passed directly to react-docgen. +In additiona any custom handlers are passed the component file `Node` object as their last +argument for more Gatsby specific handler behavior. + +```js +module.exports = { + plugins: [ + { + resolve: "gatsby-transformer-react-docgen", + options: { + resolver: require("./custom-resolver"), + }, + }, + ], +} +``` + +### File parsing and babel configs + +By default, your local `.babelrc` will be used to determine how to parse source files. Don't worry +if you don't have a local babel config and are using Gatsby's default settings! If there isn't any config react-docgen will +use it's own, permissive parsing options. + +In the case of more complex sites with local custom configs, such as in a monorepo, you may have to tell babel (via react-docgen), +how to properly resolve your local babel config. See the [react-docgen documentation for more details](https://github.com/reactjs/react-docgen#options). + +```js +module.exports = { + plugins: [ + { + resolve: "gatsby-transformer-react-docgen", + options: { + babelrcRoots: ["../packages/*"], + }, + }, + ], +} +``` + +You'll also need to include a source-plugin, such as +[gatsby-source-filesystem](https://www.npmjs.com/package/gatsby-source-filesystem), +so that the transformer has access to source data. + +> Note: that at least one of your React Components must have PropTypes defined. + +## How to query + +An example _graphql_ query to get nodes: + +```graphql +{ + allComponentMetadata { + edges { + node { + displayName + description + props { + name + type + required + } + } + } + } +} +``` diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js b/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js new file mode 100644 index 00000000..9c2d0bd4 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js @@ -0,0 +1,113 @@ +"use strict"; + +exports.__esModule = true; +exports.createDisplayNameHandler = createDisplayNameHandler; +exports.default = void 0; + +const path = require(`path`); + +const { + namedTypes: types +} = require(`ast-types`); + +const { + utils +} = require(`react-docgen`); + +const { + getMemberValuePath, + getNameOrValue, + isExportsOrModuleAssignment +} = utils; +const DEFAULT_NAME = `UnknownComponent`; + +function getNameFromPath(path) { + var node = path.node; + + switch (node.type) { + case types.Identifier.name: + case types.Literal.name: + return getNameOrValue(path); + + case types.MemberExpression.name: + return utils.getMembers(path).reduce((name, { + path, + computed + }) => computed && getNameFromPath(path) ? name : `${name}.${getNameFromPath(path) || ``}`, getNameFromPath(path.get(`object`))); + + default: + return null; + } +} + +function getStaticDisplayName(path) { + let displayName = null; + const staticMember = getMemberValuePath(path, `displayName`); + + if (staticMember && types.Literal.check(staticMember.node)) { + displayName = getNameFromPath(staticMember); + } + + return displayName || null; +} + +function getNodeIdentifier(path) { + let displayName = null; + + if (types.FunctionExpression.check(path.node) || types.FunctionDeclaration.check(path.node) || types.ClassExpression.check(path.node) || types.ClassDeclaration.check(path.node)) { + displayName = getNameFromPath(path.get(`id`)); + } + + return displayName || null; +} + +function getVariableIdentifier(path) { + let displayName = null; + let searchPath = path; + + while (searchPath !== null) { + if (types.VariableDeclarator.check(searchPath.node)) { + displayName = getNameFromPath(searchPath.get(`id`)); + break; + } + + if (types.AssignmentExpression.check(searchPath.node) && !isExportsOrModuleAssignment(searchPath)) { + displayName = getNameFromPath(searchPath.get(`left`)); + break; + } + + searchPath = searchPath.parentPath; + } + + return displayName || null; +} + +function getNameFromFilePath(filePath = ``) { + let displayName = null; + const filename = path.basename(filePath, path.extname(filePath)); + + if (filename === `index`) { + const parts = path.dirname(filePath).split(path.sep); + displayName = parts[parts.length - 1]; + } else { + displayName = filename; + } + + return displayName.charAt(0).toUpperCase().concat(displayName.slice(1)).replace(/-([a-z])/, (_, match) => match.toUpperCase()); +} + +function createDisplayNameHandler(filePath) { + return function displayNameHandler(documentation, path) { + let displayName = [getStaticDisplayName, getNodeIdentifier, getVariableIdentifier].reduce((name, getDisplayName) => name || getDisplayName(path), ``); + + if (!displayName) { + displayName = getNameFromFilePath(filePath); + } + + documentation.set(`displayName`, displayName || DEFAULT_NAME); + }; +} + +var _default = createDisplayNameHandler(``); + +exports.default = _default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js b/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js new file mode 100644 index 00000000..a75ec80a --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js @@ -0,0 +1,164 @@ +"use strict"; + +exports.__esModule = true; +exports.applyPropDoclets = exports.parseDoclets = exports.cleanDoclets = void 0; +const DOCLET_PATTERN = /^@(\w+)(?:$|\s((?:[^](?!^@\w))*))/gim; + +let cleanDocletValue = str => { + str = str.trim(); + if (str.endsWith(`}`) && str.startsWith(`{`)) str = str.slice(1, -1); + return str; +}; + +let isLiteral = str => /^('|"|true|false|\d+)/.test(str.trim()); +/** + * Remove doclets from string + */ + + +const cleanDoclets = desc => { + desc = desc || ``; + let idx = desc.search(DOCLET_PATTERN); + return (idx === -1 ? desc : desc.substr(0, idx)).trim(); +}; +/** + * Given a string, this function returns an object with doclet names as keys + * and their "content" as values. + * + * Adapted from https://github.com/reactjs/react-docgen/blob/ee8a5359c478b33a6954f4546637312764798d6b/src/utils/docblock.js#L62 + * Updated to strip \r from the end of doclets + */ + + +exports.cleanDoclets = cleanDoclets; + +const getDoclets = str => { + let doclets = []; + let match = DOCLET_PATTERN.exec(str); + let val; + + for (; match; match = DOCLET_PATTERN.exec(str)) { + val = match[2] ? match[2].replace(/\r$/, ``) : true; + const key = match[1]; + doclets.push({ + tag: key, + value: val + }); + } + + return doclets; +}; +/** + * parse out description doclets to an object and remove the comment + * + * @param {ComponentMetadata|PropMetadata} obj + */ + + +const parseDoclets = obj => { + let desc = obj.description || ``; + return getDoclets(desc) || Object.create(null); +}; + +exports.parseDoclets = parseDoclets; + +function parseType(type) { + if (!type) { + return undefined; + } + + const { + name, + raw + } = type; + + if (name === `union`) { + return { + name, + value: raw.split(`|`).map(v => { + return { + name: v.trim() + }; + }) + }; + } + + if (name === `enum`) { + return Object.assign({}, type); + } + + if (raw) { + return { + name: raw + }; + } + + return Object.assign({}, type); +} +/** + * Reads the JSDoc "doclets" and applies certain ones to the prop type data + * This allows us to "fix" parsing errors, or unparsable data with JSDoc + * style comments + * + * @param {Object} props Object Hash of the prop metadata + * @param {String} propName + */ + + +const applyPropDoclets = prop => { + prop.doclets.forEach(({ + tag, + value + }) => { + // the @type doclet to provide a prop type + // Also allows enums (oneOf) if string literals are provided + // ex: @type {("optionA"|"optionB")} + if (tag === `type`) { + value = cleanDocletValue(value); + + if (prop.type === undefined) { + prop.type = {}; + } + + prop.type.name = value; + + if (value[0] === `(`) { + value = value.substring(1, value.length - 1).split(`|`).map(v => v.trim()); + const name = value.every(isLiteral) ? `enum` : `union`; + prop.type.name = name; + prop.type.value = value.map(value => name === `enum` ? { + value, + computed: false + } : { + name: value + }); + } + + return; + } // Use @required to mark a prop as required + // useful for custom propTypes where there isn't a `.isRequired` addon + + + if (tag === `required` && value) { + prop.required = true; + return; + } // Use @defaultValue to provide a prop's default value + + + if ((tag === `default` || tag === `defaultValue`) && value != null) { + prop.defaultValue = { + value, + computed: false + }; + return; + } + }); // lookup for tsTypes or flowTypes + + if (prop.type === undefined) { + prop.type = parseType(prop.tsType) || parseType(prop.flowType); + } + + return prop; +}; + +exports.applyPropDoclets = applyPropDoclets; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js b/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js new file mode 100644 index 00000000..0f159e92 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js @@ -0,0 +1,162 @@ +"use strict"; + +exports.__esModule = true; +exports.default = void 0; + +const { + GraphQLBoolean, + GraphQLObjectType, + GraphQLList, + GraphQLString, + GraphQLNonNull, + GraphQLJSON +} = require(`gatsby/graphql`); + +const { + stripIndent, + oneLine +} = require(`common-tags`); + +const PropDefaultValue = new GraphQLObjectType({ + name: `PropDefaultValue`, + fields: () => { + return { + value: { + type: GraphQLString + }, + computed: { + type: GraphQLBoolean + } + }; + } +}); +const PropTypeValue = new GraphQLObjectType({ + name: `PropTypeValue`, + fields: () => { + return { + name: { + type: new GraphQLNonNull(GraphQLString) + }, + value: { + type: GraphQLJSON + }, + raw: { + type: GraphQLString + } + }; + } +}); +const Method = new GraphQLObjectType({ + name: `ComponentMethod`, + fields: () => { + return { + name: { + type: new GraphQLNonNull(GraphQLString) + }, + description: { + type: GraphQLString + }, + docblock: { + type: GraphQLString, + description: oneLine` + The raw comment block leading a method declaration + ` + }, + modifiers: { + type: new GraphQLList(GraphQLString), + description: oneLine` + Modifiers describing the kind and sort of method e.g. "static", + "generator", or "async". + ` + }, + params: { + type: new GraphQLList(new GraphQLObjectType({ + name: `ComponentMethodParams`, + fields: () => { + return { + name: { + type: GraphQLString + }, + type: { + type: GraphQLJSON + } + }; + } + })) + }, + returns: { + type: new GraphQLList(GraphQLJSON) + } + }; + } +}); + +function extendComponents() { + return { + doclets: { + type: GraphQLJSON + }, + composes: { + type: new GraphQLList(new GraphQLNonNull(GraphQLString)), + description: stripIndent` + ${oneLine` + A list of additional modules "spread" into this component's + propTypes such as:`} + + propTypes = { + name: PropTypes.string, + ...AnotherComponent.propTypes, + } + ` + }, + methods: { + type: new GraphQLList(Method), + description: `Component methods` + } + }; +} + +function extendProp() { + return { + type: { + type: PropTypeValue + }, + flowType: { + type: GraphQLJSON + }, + tsType: { + type: GraphQLJSON + }, + defaultValue: { + type: PropDefaultValue + }, + doclets: { + type: GraphQLJSON + }, + docblock: { + type: GraphQLString, + description: oneLine` + The raw comment block leading a propType declaration + ` + }, + required: { + type: new GraphQLNonNull(GraphQLBoolean), + resolve: ({ + required + }) => required || false, + description: oneLine` + Describes whether or not the propType is required, i.e. not \`null\` + ` + } + }; +} + +var _default = ({ + type +}) => { + if (type.name === `ComponentProp`) return extendProp(); + if (type.name === `ComponentMetadata`) return extendComponents(); + return {}; +}; + +exports.default = _default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js new file mode 100644 index 00000000..d1212a8c --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js @@ -0,0 +1,4 @@ +"use strict"; + +exports.onCreateNode = require(`./on-node-create`).default; +exports.setFieldsOnGraphQLNodeType = require(`./extend-node-type`).default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/index.js b/website/plugins/gatsby-transformer-react-docgen-typescript/index.js new file mode 100644 index 00000000..172f1ae6 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/index.js @@ -0,0 +1 @@ +// noop diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js new file mode 100644 index 00000000..aa1fa757 --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js @@ -0,0 +1,202 @@ +const fs = require('fs') +const path = require('path') +var tsxParser = require('react-docgen-typescript') +// See if there is a tsconfig.json; if so, use that +try { + tsxParser = tsxParser.withDefaultConfig({ + propFilter(prop) { + if (prop.parent) { + return !prop.parent.fileName.includes('node_modules') + } + return true + }, + }) +} catch (err) { + console.log('Error in initiating react-docgen-typescript: ', err) +} + +var _interopRequireDefault = require(`@babel/runtime/helpers/interopRequireDefault`) + +exports.__esModule = true +exports.default = onCreateNode + +var _parse = _interopRequireDefault(require(`./parse`)) + +const propsId = (parentId, name) => `${parentId}--ComponentProp-${name}` + +const descId = parentId => `${parentId}--ComponentDescription` + +function canParse(node) { + return ( + node && + (node.internal.mediaType === `application/javascript` || + // TypeScript doesn't really have a mime type and .ts files are a media file :/ + node.internal.mediaType === `application/typescript` || + node.internal.mediaType === `text/jsx` || + node.internal.mediaType === `text/tsx` || + node.extension === `tsx` || + node.extension === `ts`) + ) +} + +function createDescriptionNode( + node, + entry, + actions, + createNodeId, + createContentDigest +) { + const { createNode } = actions + delete node.description + const descriptionNode = { + id: createNodeId(descId(node.id)), + parent: node.id, + children: [], + text: entry.description, + internal: { + type: `ComponentDescription`, + mediaType: `text/markdown`, + content: entry.description, + contentDigest: createContentDigest(entry.description), + }, + } + node.description___NODE = descriptionNode.id + node.children = node.children.concat([descriptionNode.id]) + createNode(descriptionNode) + return node +} + +function createPropNodes( + node, + component, + actions, + createNodeId, + createContentDigest +) { + const { createNode } = actions + + let children = new Array(component.props.length) + + let propNames + let currentProps + if (Array.isArray(component.props)) { + currentProps = component.props + } else { + propNames = Object.keys(component.props) + currentProps = propNames.map(propName => { + return component.props[propName] + }) + } + + currentProps.length > 0 && + currentProps.forEach((prop, i) => { + let propNodeId = propsId(node.id, prop.name) + let content = JSON.stringify(prop) + let propNode = Object.assign({}, prop, { + id: createNodeId(propNodeId), + children: [], + parent: node.id, + parentType: prop.type, + internal: { + type: `ComponentProp`, + contentDigest: createContentDigest(content), + }, + }) + children[i] = propNode.id + propNode = createDescriptionNode( + propNode, + prop, + actions, + createNodeId, + createContentDigest + ) + createNode(propNode) + }) + node.props___NODE = children + node.children = node.children.concat(children) + return node +} + +async function onCreateNode( + { + node, + loadNodeContent, + actions, + createNodeId, + reporter, + createContentDigest, + }, + pluginOptions +) { + const { createNode, createParentChildLink } = actions + + if (!canParse(node)) return + + const content = await loadNodeContent(node) + let components + + const filepath = path.resolve(node.absolutePath) + try { + if ( + !filepath.includes('examples') && + (filepath.includes('.ts') || filepath.includes('.tsx')) + ) { + console.log('parsing: ', filepath) + components = tsxParser.parse(filepath) + } else { + components = (0, _parse.default)(content, node, pluginOptions) + } + } catch (err) { + reporter.error( + `There was a problem parsing component metadata for file: "${ + node.relativePath + }"`, + err + ) + return + } + + components.forEach(component => { + const strContent = JSON.stringify(component) + const contentDigest = createContentDigest(strContent) + const nodeId = `${node.id}--${component.displayName}--ComponentMetadata` + let metadataNode = Object.assign({}, component, { + props: null, + // handled by the prop node creation + id: createNodeId(nodeId), + children: [], + parent: node.id, + internal: { + contentDigest, + type: `ComponentMetadata`, + }, + }) + createParentChildLink({ + parent: node, + child: metadataNode, + }) + metadataNode = createPropNodes( + metadataNode, + component, + actions, + createNodeId, + createContentDigest + ) + metadataNode = createDescriptionNode( + metadataNode, + component, + actions, + createNodeId, + createContentDigest + ) + + if (metadataNode.children) { + for (let i = 0; i < metadataNode.children.length; i++) { + if (metadataNode.children[i] === undefined) { + metadataNode.children.splice(i, 1) + } + } + } + createNode(metadataNode) + }) +} diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json new file mode 100644 index 00000000..222a6b8e --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json @@ -0,0 +1,51 @@ +{ + "name": "gatsby-transformer-react-docgen", + "description": "Expose React component metadata and prop information as GraphQL types", + "version": "5.0.15", + "author": "Jason Quense ", + "bugs": { + "url": "https://github.com/gatsbyjs/gatsby/issues" + }, + "dependencies": { + "@babel/code-frame": "^7.5.5", + "@babel/runtime": "^7.6.2", + "@babel/types": "^7.6.1", + "ast-types": "^0.13.2", + "common-tags": "^1.8.0", + "react-docgen": "^5.0.0-beta.1", + "react-docgen-typescript": "^1.15.0" + }, + "devDependencies": { + "@babel/cli": "^7.6.2", + "@babel/core": "^7.6.2", + "babel-preset-gatsby-package": "^0.2.7", + "cross-env": "^5.2.1", + "lodash": "^4.17.15" + }, + "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-react-docgen#readme", + "keywords": [ + "gatsby", + "gatsby-plugin", + "react", + "react-docgen" + ], + "license": "MIT", + "main": "index.js", + "peerDependencies": { + "gatsby": "^2.0.15" + }, + "repository": { + "type": "git", + "url": "https://github.com/gatsbyjs/gatsby.git", + "directory": "packages/gatsby-transformer-react-docgen" + }, + "scripts": { + "build": "babel src --out-dir . --ignore **/__tests__", + "prepare": "cross-env NODE_ENV=production npm run build", + "watch": "babel -w src --out-dir . --ignore **/__tests__" + }, + "engines": { + "node": ">=8.0.0" + }, + "gitHead": "c0d5420247ee325dbfce5f0aa3e5222c47d06a2c" +} diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js b/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js new file mode 100644 index 00000000..141641fe --- /dev/null +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js @@ -0,0 +1,78 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +exports.__esModule = true; +exports.default = parseMetadata; + +var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); + +var _reactDocgen = require("react-docgen"); + +var _parse = require("react-docgen/dist/parse"); + +var _codeFrame = require("@babel/code-frame"); + +var _displaynameHandler = require("./displayname-handler"); + +var _doclets = require("./doclets"); + +const defaultHandlers = [_reactDocgen.handlers.propTypeHandler, _reactDocgen.handlers.propTypeCompositionHandler, _reactDocgen.handlers.propDocBlockHandler, _reactDocgen.handlers.flowTypeHandler, _reactDocgen.handlers.defaultPropsHandler, _reactDocgen.handlers.componentDocblockHandler, _reactDocgen.handlers.componentMethodsHandler, _reactDocgen.handlers.componentMethodsJsDocHandler]; +let fileCount = 0; +/** + * Wrap handlers to pass in additional arguments such as the File node + */ + +function makeHandlers(node, handlers) { + handlers = (handlers || []).map(h => (...args) => h(...args, node)); + return [(0, _displaynameHandler.createDisplayNameHandler)(node.absolutePath || `/UnknownComponent${++fileCount}`), ...handlers]; +} + +function parseMetadata(content, node, options) { + let components = []; + const _ref = options || {}, + { + handlers, + resolver: userResolver + } = _ref, + parseOptions = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["handlers", "resolver"]); + + try { + components = (0, _reactDocgen.parse)(content, userResolver || _reactDocgen.resolver.findAllComponentDefinitions, defaultHandlers.concat(makeHandlers(node, handlers)), Object.assign({}, parseOptions, { + filename: node.absolutePath + })); + } catch (err) { + if (err.message === _parse.ERROR_MISSING_DEFINITION) return []; // reset the stack to here since it's not helpful to see all the react-docgen guts + // const parseErr = new Error(err.message) + + if (err.loc) { + err.codeFrame = (0, _codeFrame.codeFrameColumns)(content, err.loc.start || { + start: err.loc + }, { + highlightCode: true + }); + } + + throw err; + } + + if (components.length === 1) { + components[0].displayName = components[0].displayName.replace(/\d+$/, ``); + } + + components.forEach(component => { + component.docblock = component.description || ``; + component.doclets = (0, _doclets.parseDoclets)(component); + component.description = (0, _doclets.cleanDoclets)(component.description); + component.props = Object.keys(component.props || {}).map(propName => { + const prop = component.props[propName]; + prop.name = propName; + prop.docblock = prop.description || ``; + prop.doclets = (0, _doclets.parseDoclets)(prop, propName); + prop.description = (0, _doclets.cleanDoclets)(prop.description); + (0, _doclets.applyPropDoclets)(prop); + return prop; + }); + }); + return components; +} \ No newline at end of file diff --git a/website/siteConfig.js b/website/siteConfig.js index 6995bbe5..75291d4c 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -28,19 +28,51 @@ module.exports = { api: [ { title: 'BaseTable', - path: '/api/basetable', + path: `/api/${`basetable`.toLowerCase()}`, }, { title: 'Column', - path: '/api/column', + path: `/api/${`column`.toLowerCase()}`, }, { title: 'AutoResizer', - path: '/api/autoresizer', + path: `/api/${`autoresizer`.toLowerCase()}`, }, { title: 'ColumnResizer', - path: '/api/columnresizer', + path: `/api/${`columnresizer`.toLowerCase()}`, + }, + { + title: 'ExpandIcon', + path: `/api/${`expandIcon`.toLowerCase()}`, + }, + { + title: 'SortIndicator', + path: `/api/${`sortIndicator`.toLowerCase()}`, + }, + { + title: 'TableHeaderCell', + path: `/api/${`tableHeaderCell`.toLowerCase()}`, + }, + { + title: 'TableHeaderRow', + path: `/api/${`TableHeaderRow`.toLowerCase()}`, + }, + { + title: 'GridTable', + path: `/api/${`GridTable`.toLowerCase()}`, + }, + { + title: 'TableCell', + path: `/api/${`TableCell`.toLowerCase()}`, + }, + { + title: 'TableRow', + path: `/api/${`TableRow`.toLowerCase()}`, + }, + { + title: 'TableHeader', + path: `/api/${`TableHeader`.toLowerCase()}`, }, ], examples: [ diff --git a/website/src/pages/docsTS.txt b/website/src/pages/docsTS.txt new file mode 100644 index 00000000..5b710ec6 --- /dev/null +++ b/website/src/pages/docsTS.txt @@ -0,0 +1,227 @@ +import React from 'react' +// import { Redirect } from '@reach/router' +// import { withPrefix } from 'gatsby-link' +import { graphql, useStaticQuery } from 'gatsby' + +import Page from 'components/Page' + +const tsApiDoc = tsDocGenArray => { + return ( +
+ {tsDocGenArray.map(item => { + return ( +
+

{item.displayName}

+

{item.description}

+

Props

+
+ {Object.keys(item.props).map((prop, propindex) => { + const propDetail = item.props[prop] + return ( +
+ + {propDetail.name}{' '} + + {propDetail.type.name} + + {propDetail.required === true ? 'Required' : 'Optional'} + {' '} +
+ {propDetail.description} +
+
+
+ ) + })} +
+
+
+
+ ) + })} +
+ ) +} + +export default () => { + const tsDocGenData = useStaticQuery(tsDocGenGraphqlQuery) + const tsDocGenArray = Object.values(tsDocGenData.allTsDocGen.nodes[0]) + return ( + +

API generated from typescript

+ {tsApiDoc(tsDocGenArray)} +
+ ) +} + +const tsDocGenGraphqlQuery = graphql` + query MyQuery { + allTsDocGen { + nodes { + _0 { + description + displayName + props { + align { + description + name + required + type { + name + } + } + cellRenderer { + description + name + required + type { + name + } + } + className { + description + name + type { + name + } + required + } + dataGetter { + description + name + required + type { + name + } + } + dataKey { + description + name + required + type { + name + } + } + flexGrow { + description + name + required + type { + name + } + } + flexShrink { + description + name + required + type { + name + } + } + frozen { + description + name + required + type { + name + } + } + headerClassName { + description + name + required + type { + name + } + } + headerRenderer { + description + name + required + type { + name + } + } + hidden { + description + name + required + type { + name + } + } + key { + description + name + required + type { + name + } + } + maxWidth { + description + name + required + type { + name + } + } + minWidth { + description + name + required + type { + name + } + } + resizable { + description + name + required + type { + name + } + } + sortable { + description + name + required + type { + name + } + } + style { + description + name + required + type { + name + } + } + title { + description + name + required + type { + name + } + } + width { + description + name + required + type { + name + } + } + } + } + } + } + } +` diff --git a/website/src/templates/apiFromTS.js b/website/src/templates/apiFromTS.js new file mode 100644 index 00000000..554aca11 --- /dev/null +++ b/website/src/templates/apiFromTS.js @@ -0,0 +1,81 @@ +import * as React from 'react' +import Header from '../components/Header' +import Sidebar from '../components/Sidebar' + +export default class ApiFromTs extends React.Component { + render() { + const { pageProps } = this.props.pageContext + + const links = [] + pageProps.map(item => { + const tempLink = { + key: item.displayName, + to: `/docTS/#${item.displayName}`, + title: item.displayName, + external: undefined, + } + links.push(tempLink) + }) + + return ( +
+
+ +
+ +
+ {pageProps.map(item => { + return ( +
+
+
+

{item.displayName}

+

{item.description}

+

Props

+
+ {Object.keys(item.props).map((prop, propindex) => { + const propDetail = item.props[prop] + return ( +
+ + {propDetail.name}{' '} + + {propDetail.type.name} + + {propDetail.required === true + ? 'Required' + : 'Optional'} + {' '} +
+ {propDetail.description} +
+
+
+ ) + })} +
+
+ ) + })} +
+
+
+ ) + } +} diff --git a/website/utilsNode.js b/website/utilsNode.js new file mode 100644 index 00000000..a4dbdea0 --- /dev/null +++ b/website/utilsNode.js @@ -0,0 +1,33 @@ +const path = require('path') +const cp = require('child_process') + +/** + * Assuming being executed from somewhere inside the website folder, the function returns all files in + * react-base-table/src directory with the `ext` file-extension. + * @param {string} ext The file extension, e.g, 'tsx', 'jsx' etc. + * @returns {Array} Array of files found. + */ +const findFileWithExtension = ext => { + const pathWebsite_pwd = cp.execSync('pwd', { encoding: 'utf-8' }) + const pathToReactBaseTableSrc_pwd = + pathWebsite_pwd.split('website')[0] + 'src' + var command = `find ${pathToReactBaseTableSrc_pwd} -name *.${ext}` + const filesWithExt = cp.execSync(command, { encoding: 'utf-8' }) + const filesWithExtArr = filesWithExt.split('\n') + + const outArr = [] + for (let i = 0; i < filesWithExtArr.length - 1; i++) { + const filesWithExtArr_dirString = path.resolve( + __dirname, + '../', + 'src', + filesWithExtArr[i].split('src/')[1] + ) + outArr.push(filesWithExtArr_dirString) + } + return outArr +} + +module.exports = { + findFileWithExtension, +} diff --git a/website/yarn.lock b/website/yarn.lock index 18ea1c2e..bf2705fd 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -9277,6 +9277,11 @@ react-dev-utils@^4.2.3: dependencies: ast-types "0.13.2" +react-docgen-typescript@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.15.0.tgz#963f14210841f9b51ed18c65152a6cc37f1c3184" + integrity sha512-8xObdkRQbrc0505tEdVRO+pdId8pKFyD6jhLYM9FDdceKma+iB+a17Dk7e3lPRBRh8ArQLCedOCOfN/bO338kw== + react-docgen@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-4.1.1.tgz#8fef0212dbf14733e09edecef1de6b224d87219e" From 1012a109defca3b343b9f1fe39b7cbedaa47809a Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Tue, 15 Oct 2019 18:40:57 +0200 Subject: [PATCH 3/7] cleaning up --- website/src/pages/docsTS.txt | 227 ----------------------------- website/src/templates/apiFromTS.js | 81 ---------- 2 files changed, 308 deletions(-) delete mode 100644 website/src/pages/docsTS.txt delete mode 100644 website/src/templates/apiFromTS.js diff --git a/website/src/pages/docsTS.txt b/website/src/pages/docsTS.txt deleted file mode 100644 index 5b710ec6..00000000 --- a/website/src/pages/docsTS.txt +++ /dev/null @@ -1,227 +0,0 @@ -import React from 'react' -// import { Redirect } from '@reach/router' -// import { withPrefix } from 'gatsby-link' -import { graphql, useStaticQuery } from 'gatsby' - -import Page from 'components/Page' - -const tsApiDoc = tsDocGenArray => { - return ( -
- {tsDocGenArray.map(item => { - return ( -
-

{item.displayName}

-

{item.description}

-

Props

-
- {Object.keys(item.props).map((prop, propindex) => { - const propDetail = item.props[prop] - return ( -
- - {propDetail.name}{' '} - - {propDetail.type.name} - - {propDetail.required === true ? 'Required' : 'Optional'} - {' '} -
- {propDetail.description} -
-
-
- ) - })} -
-
-
-
- ) - })} -
- ) -} - -export default () => { - const tsDocGenData = useStaticQuery(tsDocGenGraphqlQuery) - const tsDocGenArray = Object.values(tsDocGenData.allTsDocGen.nodes[0]) - return ( - -

API generated from typescript

- {tsApiDoc(tsDocGenArray)} -
- ) -} - -const tsDocGenGraphqlQuery = graphql` - query MyQuery { - allTsDocGen { - nodes { - _0 { - description - displayName - props { - align { - description - name - required - type { - name - } - } - cellRenderer { - description - name - required - type { - name - } - } - className { - description - name - type { - name - } - required - } - dataGetter { - description - name - required - type { - name - } - } - dataKey { - description - name - required - type { - name - } - } - flexGrow { - description - name - required - type { - name - } - } - flexShrink { - description - name - required - type { - name - } - } - frozen { - description - name - required - type { - name - } - } - headerClassName { - description - name - required - type { - name - } - } - headerRenderer { - description - name - required - type { - name - } - } - hidden { - description - name - required - type { - name - } - } - key { - description - name - required - type { - name - } - } - maxWidth { - description - name - required - type { - name - } - } - minWidth { - description - name - required - type { - name - } - } - resizable { - description - name - required - type { - name - } - } - sortable { - description - name - required - type { - name - } - } - style { - description - name - required - type { - name - } - } - title { - description - name - required - type { - name - } - } - width { - description - name - required - type { - name - } - } - } - } - } - } - } -` diff --git a/website/src/templates/apiFromTS.js b/website/src/templates/apiFromTS.js deleted file mode 100644 index 554aca11..00000000 --- a/website/src/templates/apiFromTS.js +++ /dev/null @@ -1,81 +0,0 @@ -import * as React from 'react' -import Header from '../components/Header' -import Sidebar from '../components/Sidebar' - -export default class ApiFromTs extends React.Component { - render() { - const { pageProps } = this.props.pageContext - - const links = [] - pageProps.map(item => { - const tempLink = { - key: item.displayName, - to: `/docTS/#${item.displayName}`, - title: item.displayName, - external: undefined, - } - links.push(tempLink) - }) - - return ( -
-
- -
- -
- {pageProps.map(item => { - return ( -
-
-
-

{item.displayName}

-

{item.description}

-

Props

-
- {Object.keys(item.props).map((prop, propindex) => { - const propDetail = item.props[prop] - return ( -
- - {propDetail.name}{' '} - - {propDetail.type.name} - - {propDetail.required === true - ? 'Required' - : 'Optional'} - {' '} -
- {propDetail.description} -
-
-
- ) - })} -
-
- ) - })} -
-
-
- ) - } -} From a3839e51a888eaef5620f554941a9673cd9ab6e3 Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Tue, 15 Oct 2019 20:19:30 +0200 Subject: [PATCH 4/7] addressing PR comments --- package.json | 2 +- .../CHANGELOG.md | 291 ------------------ .../LICENSE | 22 -- .../README.md | 21 +- .../index.js | 1 - .../package.json | 28 +- website/siteConfig.js | 40 +-- 7 files changed, 14 insertions(+), 391 deletions(-) delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/index.js diff --git a/package.json b/package.json index ceb78d21..803195ef 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build:css": "node-sass src/_BaseTable.scss ./styles.css --output-style expanded", "build": "npm run build:js && npm run build:es && npm run build:css", "build:typescript": "tsc", - "postinstall": "tsc", + "postinstall": "npm run build:typescript", "format": "prettier --write 'src/**/*.{js,scss}'", "prebuild": "npm run clean", "precommit": "lint-staged", diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md b/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md deleted file mode 100644 index 873199c1..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/CHANGELOG.md +++ /dev/null @@ -1,291 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [5.0.15](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.13...gatsby-transformer-react-docgen@5.0.15) (2019-09-26) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.14](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.13...gatsby-transformer-react-docgen@5.0.14) (2019-09-26) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.13](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.12...gatsby-transformer-react-docgen@5.0.13) (2019-09-20) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.12](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.11...gatsby-transformer-react-docgen@5.0.12) (2019-09-10) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.11](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.10...gatsby-transformer-react-docgen@5.0.11) (2019-09-09) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.10](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.9...gatsby-transformer-react-docgen@5.0.10) (2019-09-09) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.9](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.8...gatsby-transformer-react-docgen@5.0.9) (2019-09-01) - -### Bug Fixes - -- update minor updates in packages except react, babel and eslint ([#17254](https://github.com/gatsbyjs/gatsby/issues/17254)) ([252d867](https://github.com/gatsbyjs/gatsby/commit/252d867)) - -### Features - -- **gatsby-transformer-react-docgen:** vendor in react-docge... ([#16913](https://github.com/gatsbyjs/gatsby/issues/16913)) ([f3b540b](https://github.com/gatsbyjs/gatsby/commit/f3b540b)) - -## [5.0.8](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.7...gatsby-transformer-react-docgen@5.0.8) (2019-08-29) - -### Bug Fixes - -- update dependency react-docgen-displayname-handler to ^2.1.3 ([#17081](https://github.com/gatsbyjs/gatsby/issues/17081)) ([a87cf60](https://github.com/gatsbyjs/gatsby/commit/a87cf60)) - -## [5.0.7](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.6...gatsby-transformer-react-docgen@5.0.7) (2019-08-25) - -### Bug Fixes - -- update dependency react-docgen-displayname-handler to ^2.1.2 ([#17069](https://github.com/gatsbyjs/gatsby/issues/17069)) ([c5d5e1a](https://github.com/gatsbyjs/gatsby/commit/c5d5e1a)) - -## [5.0.6](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.5...gatsby-transformer-react-docgen@5.0.6) (2019-08-23) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.4...gatsby-transformer-react-docgen@5.0.5) (2019-08-22) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.3...gatsby-transformer-react-docgen@5.0.4) (2019-08-22) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.2...gatsby-transformer-react-docgen@5.0.3) (2019-08-21) - -### Bug Fixes - -- update dependency common-tags to ^1.8.0 ([#16834](https://github.com/gatsbyjs/gatsby/issues/16834)) ([8ed5197](https://github.com/gatsbyjs/gatsby/commit/8ed5197)) - -## [5.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.1...gatsby-transformer-react-docgen@5.0.2) (2019-08-20) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [5.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@5.0.0...gatsby-transformer-react-docgen@5.0.1) (2019-08-09) - -### Features - -- **gatsby-transformer-react-docgen:** fallback to TypeScript… ([#15202](https://github.com/gatsbyjs/gatsby/issues/15202)) ([67c0e3b](https://github.com/gatsbyjs/gatsby/commit/67c0e3b)) - -# [5.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.3...gatsby-transformer-react-docgen@5.0.0) (2019-08-09) - -### Features - -- **gatsby-transformer-react-docgen:** upgrade to react-docgen… ([#16094](https://github.com/gatsbyjs/gatsby/issues/16094)) ([16f7670](https://github.com/gatsbyjs/gatsby/commit/16f7670)) - -## [4.1.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.2...gatsby-transformer-react-docgen@4.1.3) (2019-07-13) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [4.1.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.1...gatsby-transformer-react-docgen@4.1.2) (2019-07-12) - -### Bug Fixes - -- correct links in package changelogs ([#15630](https://github.com/gatsbyjs/gatsby/issues/15630)) ([d07b9dd](https://github.com/gatsbyjs/gatsby/commit/d07b9dd)) - -## [4.1.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.1.0...gatsby-transformer-react-docgen@4.1.1) (2019-07-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -# [4.1.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.4...gatsby-transformer-react-docgen@4.1.0) (2019-06-20) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [4.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.2...gatsby-transformer-react-docgen@4.0.4) (2019-06-19) - -### Bug Fixes - -- **gatsby-transformer-react-docgen:** always create description nodes ([#14876](https://github.com/gatsbyjs/gatsby/issues/14876)) ([48a9e10](https://github.com/gatsbyjs/gatsby/commit/48a9e10)) - -## [4.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.2...gatsby-transformer-react-docgen@4.0.3) (2019-06-19) - -### Bug Fixes - -- **gatsby-transformer-react-docgen:** always create description nodes ([#14876](https://github.com/gatsbyjs/gatsby/issues/14876)) ([48a9e10](https://github.com/gatsbyjs/gatsby/commit/48a9e10)) - -## [4.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.1...gatsby-transformer-react-docgen@4.0.2) (2019-05-30) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [4.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@4.0.0...gatsby-transformer-react-docgen@4.0.1) (2019-04-08) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -# [4.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.7...gatsby-transformer-react-docgen@4.0.0) (2019-04-02) - -### Features - -- **gatsby-transformer-react-docgen:** use local babel config for react-docgen ([#12001](https://github.com/gatsbyjs/gatsby/issues/12001)) ([4a2680b](https://github.com/gatsbyjs/gatsby/commit/4a2680b)) - -### BREAKING CHANGES - -- **gatsby-transformer-react-docgen:** now uses the local babel config with a fallback - -- Update README.md - -## [3.0.7](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.6...gatsby-transformer-react-docgen@3.0.7) (2019-03-15) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [3.0.6](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.5...gatsby-transformer-react-docgen@3.0.6) (2019-03-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [3.0.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.4...gatsby-transformer-react-docgen@3.0.5) (2019-02-06) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [3.0.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.3...gatsby-transformer-react-docgen@3.0.4) (2019-02-01) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - -## [3.0.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.2...gatsby-transformer-react-docgen@3.0.3) (2019-01-29) - -### Features - -- **gatsby-transformer-react-docgen:** allow parsing TypeScript files ([#11265](https://github.com/gatsbyjs/gatsby/issues/11265)) ([c9a8991](https://github.com/gatsbyjs/gatsby/commit/c9a8991)) - -## [3.0.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.1...gatsby-transformer-react-docgen@3.0.2) (2019-01-25) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [3.0.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@3.0.0...gatsby-transformer-react-docgen@3.0.1) (2019-01-23) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -# [3.0.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.3...gatsby-transformer-react-docgen@3.0.0) (2018-12-31) - -### Features - -- **gatsby-transformer-react-docgen:** support multiple doclets of same tag ([#10342](https://github.com/gatsbyjs/gatsby/issues/10342)) ([c5c84a0](https://github.com/gatsbyjs/gatsby/commit/c5c84a0)) - -### BREAKING CHANGES - -- **gatsby-transformer-react-docgen:** Shape of `doclet` field is changed. It's no longer object but array of objects with `tag` and `value` fields: - -gatsby-transformer-react-docgen@^2.0.0: - -```json -{ - "doclets": { - "type": "{Foo}", - "property": "{string} property1" - } -} -``` - -gatsby-transformer-react-docgen@^3.0.0: - -```json -{ - "doclets": [ - { "tag": "type", "value": "{Foo}" }, - { "tag": "property", "value": "{string} property1" }, - { "tag": "property", "value": "{number} property2" } - ] -} -``` - - - -## [2.1.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.2...gatsby-transformer-react-docgen@2.1.3) (2018-11-29) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1...gatsby-transformer-react-docgen@2.1.2) (2018-10-29) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.5...gatsby-transformer-react-docgen@2.1.1) (2018-09-17) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.4...gatsby-transformer-react-docgen@2.1.1-rc.5) (2018-09-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.3...gatsby-transformer-react-docgen@2.1.1-rc.4) (2018-09-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.2...gatsby-transformer-react-docgen@2.1.1-rc.3) (2018-09-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.1...gatsby-transformer-react-docgen@2.1.1-rc.2) (2018-09-11) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-rc.0...gatsby-transformer-react-docgen@2.1.1-rc.1) (2018-08-29) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-rc.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.5...gatsby-transformer-react-docgen@2.1.1-rc.0) (2018-08-21) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.5](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.4...gatsby-transformer-react-docgen@2.1.1-beta.5) (2018-08-08) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.4](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.3...gatsby-transformer-react-docgen@2.1.1-beta.4) (2018-07-21) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.3](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.2...gatsby-transformer-react-docgen@2.1.1-beta.3) (2018-06-23) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.2](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.1...gatsby-transformer-react-docgen@2.1.1-beta.2) (2018-06-20) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.1](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@2.1.1-beta.0...gatsby-transformer-react-docgen@2.1.1-beta.1) (2018-06-17) - -**Note:** Version bump only for package gatsby-transformer-react-docgen - - - -## [2.1.1-beta.0](https://github.com/gatsbyjs/gatsby/compare/gatsby-transformer-react-docgen@1.0.17...gatsby-transformer-react-docgen@2.1.1-beta.0) (2018-06-17) - -**Note:** Version bump only for package gatsby-transformer-react-docgen diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE b/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE deleted file mode 100644 index 720fea24..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Gatsbyjs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md index 70c558a1..17184676 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md @@ -1,17 +1,9 @@ -### [IMPORTANT] -This is an unpublished version. Typescript support added using `react-docgen-typescript`. - -# gatsby-transformer-react-docgen - +# gatsby-transformer-react-docgen-typescript Parses inline component-documentation using -[react-docgen](https://github.com/reactjs/react-docgen). - -## Install +[react-docgen](https://github.com/reactjs/react-docgen) and +[react-docgen-typescript](https://github.com/styleguidist/react-docgen-typescript) -``` -npm install --save gatsby-transformer-react-docgen -``` ## Usage @@ -19,7 +11,7 @@ Add a plugin-entry to your `gatsby-config.js` ```js module.exports = { - plugins: [`gatsby-transformer-react-docgen`], + plugins: [`gatsby-transformer-react-docgen-typescript`], } ``` @@ -31,7 +23,7 @@ argument for more Gatsby specific handler behavior. module.exports = { plugins: [ { - resolve: "gatsby-transformer-react-docgen", + resolve: "gatsby-transformer-react-docgen-typescript", options: { resolver: require("./custom-resolver"), }, @@ -53,7 +45,7 @@ how to properly resolve your local babel config. See the [react-docgen documenta module.exports = { plugins: [ { - resolve: "gatsby-transformer-react-docgen", + resolve: "gatsby-transformer-react-docgen-typescript", options: { babelrcRoots: ["../packages/*"], }, @@ -66,7 +58,6 @@ You'll also need to include a source-plugin, such as [gatsby-source-filesystem](https://www.npmjs.com/package/gatsby-source-filesystem), so that the transformer has access to source data. -> Note: that at least one of your React Components must have PropTypes defined. ## How to query diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/index.js b/website/plugins/gatsby-transformer-react-docgen-typescript/index.js deleted file mode 100644 index 172f1ae6..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/index.js +++ /dev/null @@ -1 +0,0 @@ -// noop diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json index 222a6b8e..3e4446b5 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json @@ -1,11 +1,7 @@ { - "name": "gatsby-transformer-react-docgen", - "description": "Expose React component metadata and prop information as GraphQL types", + "name": "gatsby-transformer-react-docgen-typescript", + "description": "Expose React component metadata and prop information from typescript files as GraphQL types", "version": "5.0.15", - "author": "Jason Quense ", - "bugs": { - "url": "https://github.com/gatsbyjs/gatsby/issues" - }, "dependencies": { "@babel/code-frame": "^7.5.5", "@babel/runtime": "^7.6.2", @@ -22,30 +18,12 @@ "cross-env": "^5.2.1", "lodash": "^4.17.15" }, - "homepage": "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-react-docgen#readme", - "keywords": [ - "gatsby", - "gatsby-plugin", - "react", - "react-docgen" - ], "license": "MIT", "main": "index.js", "peerDependencies": { "gatsby": "^2.0.15" }, - "repository": { - "type": "git", - "url": "https://github.com/gatsbyjs/gatsby.git", - "directory": "packages/gatsby-transformer-react-docgen" - }, - "scripts": { - "build": "babel src --out-dir . --ignore **/__tests__", - "prepare": "cross-env NODE_ENV=production npm run build", - "watch": "babel -w src --out-dir . --ignore **/__tests__" - }, "engines": { "node": ">=8.0.0" - }, - "gitHead": "c0d5420247ee325dbfce5f0aa3e5222c47d06a2c" + } } diff --git a/website/siteConfig.js b/website/siteConfig.js index 75291d4c..6995bbe5 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -28,51 +28,19 @@ module.exports = { api: [ { title: 'BaseTable', - path: `/api/${`basetable`.toLowerCase()}`, + path: '/api/basetable', }, { title: 'Column', - path: `/api/${`column`.toLowerCase()}`, + path: '/api/column', }, { title: 'AutoResizer', - path: `/api/${`autoresizer`.toLowerCase()}`, + path: '/api/autoresizer', }, { title: 'ColumnResizer', - path: `/api/${`columnresizer`.toLowerCase()}`, - }, - { - title: 'ExpandIcon', - path: `/api/${`expandIcon`.toLowerCase()}`, - }, - { - title: 'SortIndicator', - path: `/api/${`sortIndicator`.toLowerCase()}`, - }, - { - title: 'TableHeaderCell', - path: `/api/${`tableHeaderCell`.toLowerCase()}`, - }, - { - title: 'TableHeaderRow', - path: `/api/${`TableHeaderRow`.toLowerCase()}`, - }, - { - title: 'GridTable', - path: `/api/${`GridTable`.toLowerCase()}`, - }, - { - title: 'TableCell', - path: `/api/${`TableCell`.toLowerCase()}`, - }, - { - title: 'TableRow', - path: `/api/${`TableRow`.toLowerCase()}`, - }, - { - title: 'TableHeader', - path: `/api/${`TableHeader`.toLowerCase()}`, + path: '/api/columnresizer', }, ], examples: [ From b497e78dc186c1614e26b43294af88edf0a646c9 Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Tue, 15 Oct 2019 21:32:47 +0200 Subject: [PATCH 5/7] point to the tsconfig for the parser, clean up ' * as React' importing --- src/AutoResizer.tsx | 2 +- src/BaseTable.spec.tsx | 2 +- src/BaseTable.tsx | 2 +- src/Column.tsx | 2 +- src/ColumnResizer.tsx | 2 +- src/ExpandIcon.tsx | 2 +- src/GridTable.tsx | 2 +- src/SortIndicator.tsx | 2 +- src/TableCell.tsx | 2 +- src/TableHeader.tsx | 2 +- src/TableHeaderCell.tsx | 2 +- src/TableHeaderRow.tsx | 2 +- src/TableRow.tsx | 2 +- src/utils.tsx | 2 +- .../on-node-create.js | 17 +++++++++-------- 15 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/AutoResizer.tsx b/src/AutoResizer.tsx index 6fc54f96..a0cc56c0 100644 --- a/src/AutoResizer.tsx +++ b/src/AutoResizer.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import AutoSizer from 'react-virtualized-auto-sizer'; /** diff --git a/src/BaseTable.spec.tsx b/src/BaseTable.spec.tsx index f0b596ab..e0274c35 100644 --- a/src/BaseTable.spec.tsx +++ b/src/BaseTable.spec.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import renderer from 'react-test-renderer'; import BaseTable, { IBaseTableProps } from './BaseTable'; diff --git a/src/BaseTable.tsx b/src/BaseTable.tsx index 54e7b84a..16063436 100644 --- a/src/BaseTable.tsx +++ b/src/BaseTable.tsx @@ -1,6 +1,6 @@ import cn from 'classnames'; import memoize from 'memoize-one'; -import * as React from 'react'; +import React from 'react'; import { Align, GridChildComponentProps } from 'react-window'; import Column, { Alignment, FrozenDirection, IColumnProps } from './Column'; import ColumnManager from './ColumnManager'; diff --git a/src/Column.tsx b/src/Column.tsx index b3638a79..26e94128 100644 --- a/src/Column.tsx +++ b/src/Column.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export enum Alignment { LEFT = 'left', diff --git a/src/ColumnResizer.tsx b/src/ColumnResizer.tsx index a316eede..9006f2e9 100644 --- a/src/ColumnResizer.tsx +++ b/src/ColumnResizer.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { IColumnProps } from './Column'; import { addClassName, noop, removeClassName, isMouseEvent, isTouchEvent, eventsFor } from './utils'; diff --git a/src/ExpandIcon.tsx b/src/ExpandIcon.tsx index 3a279973..e9599538 100644 --- a/src/ExpandIcon.tsx +++ b/src/ExpandIcon.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import * as React from 'react'; +import React from 'react'; /** * default ExpandIcon for BaseTable diff --git a/src/GridTable.tsx b/src/GridTable.tsx index 60e63000..988e2fe0 100644 --- a/src/GridTable.tsx +++ b/src/GridTable.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import * as React from 'react'; +import React from 'react'; import { Align, FixedSizeGrid as Grid, FixedSizeGridProps, GridOnItemsRenderedProps } from 'react-window'; import { IOnRowsRenderedParam, RendererArgs } from './BaseTable'; diff --git a/src/SortIndicator.tsx b/src/SortIndicator.tsx index a4c2e8ae..e76b8030 100644 --- a/src/SortIndicator.tsx +++ b/src/SortIndicator.tsx @@ -1,5 +1,5 @@ import cn from 'classnames'; -import * as React from 'react'; +import React from 'react'; import SortOrder from './SortOrder'; diff --git a/src/TableCell.tsx b/src/TableCell.tsx index 222a6779..8ef81b55 100644 --- a/src/TableCell.tsx +++ b/src/TableCell.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { IColumnEssential, IRowEssential, RowDataType } from './Column'; import { toString } from './utils'; diff --git a/src/TableHeader.tsx b/src/TableHeader.tsx index e71921fd..e2f0077d 100644 --- a/src/TableHeader.tsx +++ b/src/TableHeader.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { IRowRendererCBParam, RendererArgs } from './BaseTable'; import { IColumnProps, IHeaderRendererCBParam, RowDataType } from './Column'; import { IHeaderRendererParam } from './GridTable'; diff --git a/src/TableHeaderCell.tsx b/src/TableHeaderCell.tsx index 3673d596..65014a8b 100644 --- a/src/TableHeaderCell.tsx +++ b/src/TableHeaderCell.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; export interface ITableHeaderCellProps { className?: string; diff --git a/src/TableHeaderRow.tsx b/src/TableHeaderRow.tsx index ae736618..c561f352 100644 --- a/src/TableHeaderRow.tsx +++ b/src/TableHeaderRow.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { renderElement } from './utils'; diff --git a/src/TableRow.tsx b/src/TableRow.tsx index b0ea72a9..a5ddf856 100644 --- a/src/TableRow.tsx +++ b/src/TableRow.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { ICellProps, IOnRowExpandCBParam, IOnRowHover, IRenderExpandIcon, IRowRendererCBParam } from './BaseTable'; import { ICellRendererCBParam, IColumnProps, RowDataType } from './Column'; import { renderElement } from './utils'; diff --git a/src/utils.tsx b/src/utils.tsx index 1f2d0b38..71e09e76 100644 --- a/src/utils.tsx +++ b/src/utils.tsx @@ -1,4 +1,4 @@ -import * as React from 'react'; +import React from 'react'; import { IColumnProps } from './Column'; export function renderElement(renderer: React.ElementType | React.ReactElement, props?: any) { diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js index aa1fa757..3941715d 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js @@ -1,14 +1,15 @@ -const fs = require('fs') const path = require('path') var tsxParser = require('react-docgen-typescript') -// See if there is a tsconfig.json; if so, use that + try { - tsxParser = tsxParser.withDefaultConfig({ - propFilter(prop) { - if (prop.parent) { - return !prop.parent.fileName.includes('node_modules') - } - return true + tsxParser = tsxParser.withCustomConfig( + path.resolve(__dirname, '../../../tsconfig.json'), + { + propFilter(prop) { + if (prop.parent) { + return !prop.parent.fileName.includes('node_modules') + } + return true }, }) } catch (err) { From 9c44422b1bac8cb3619c355ff2d58cec0fb42c38 Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Thu, 17 Oct 2019 13:33:25 +0200 Subject: [PATCH 6/7] cleaning up local plugin folder --- .../.babelrc | 5 - .../README.md | 50 +----- .../displayname-handler.js | 113 ------------ .../doclets.js | 164 ------------------ .../on-node-create.js | 12 +- .../parse.js | 78 --------- 6 files changed, 11 insertions(+), 411 deletions(-) delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/parse.js diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc b/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc deleted file mode 100644 index 9f5de61e..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - ["babel-preset-gatsby-package"] - ] -} diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md index 17184676..a27ddbf8 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/README.md +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/README.md @@ -1,9 +1,9 @@ # gatsby-transformer-react-docgen-typescript Parses inline component-documentation using -[react-docgen](https://github.com/reactjs/react-docgen) and -[react-docgen-typescript](https://github.com/styleguidist/react-docgen-typescript) - +[react-docgen](https://github.com/reactjs/react-docgen), +[react-docgen-typescript](https://github.com/styleguidist/react-docgen-typescript) and +[gatsby-transform-react-docgen](https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-transformer-react-docgen) ## Usage @@ -15,50 +15,6 @@ module.exports = { } ``` -For custom resolvers or handlers, all config options are passed directly to react-docgen. -In additiona any custom handlers are passed the component file `Node` object as their last -argument for more Gatsby specific handler behavior. - -```js -module.exports = { - plugins: [ - { - resolve: "gatsby-transformer-react-docgen-typescript", - options: { - resolver: require("./custom-resolver"), - }, - }, - ], -} -``` - -### File parsing and babel configs - -By default, your local `.babelrc` will be used to determine how to parse source files. Don't worry -if you don't have a local babel config and are using Gatsby's default settings! If there isn't any config react-docgen will -use it's own, permissive parsing options. - -In the case of more complex sites with local custom configs, such as in a monorepo, you may have to tell babel (via react-docgen), -how to properly resolve your local babel config. See the [react-docgen documentation for more details](https://github.com/reactjs/react-docgen#options). - -```js -module.exports = { - plugins: [ - { - resolve: "gatsby-transformer-react-docgen-typescript", - options: { - babelrcRoots: ["../packages/*"], - }, - }, - ], -} -``` - -You'll also need to include a source-plugin, such as -[gatsby-source-filesystem](https://www.npmjs.com/package/gatsby-source-filesystem), -so that the transformer has access to source data. - - ## How to query An example _graphql_ query to get nodes: diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js b/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js deleted file mode 100644 index 9c2d0bd4..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/displayname-handler.js +++ /dev/null @@ -1,113 +0,0 @@ -"use strict"; - -exports.__esModule = true; -exports.createDisplayNameHandler = createDisplayNameHandler; -exports.default = void 0; - -const path = require(`path`); - -const { - namedTypes: types -} = require(`ast-types`); - -const { - utils -} = require(`react-docgen`); - -const { - getMemberValuePath, - getNameOrValue, - isExportsOrModuleAssignment -} = utils; -const DEFAULT_NAME = `UnknownComponent`; - -function getNameFromPath(path) { - var node = path.node; - - switch (node.type) { - case types.Identifier.name: - case types.Literal.name: - return getNameOrValue(path); - - case types.MemberExpression.name: - return utils.getMembers(path).reduce((name, { - path, - computed - }) => computed && getNameFromPath(path) ? name : `${name}.${getNameFromPath(path) || ``}`, getNameFromPath(path.get(`object`))); - - default: - return null; - } -} - -function getStaticDisplayName(path) { - let displayName = null; - const staticMember = getMemberValuePath(path, `displayName`); - - if (staticMember && types.Literal.check(staticMember.node)) { - displayName = getNameFromPath(staticMember); - } - - return displayName || null; -} - -function getNodeIdentifier(path) { - let displayName = null; - - if (types.FunctionExpression.check(path.node) || types.FunctionDeclaration.check(path.node) || types.ClassExpression.check(path.node) || types.ClassDeclaration.check(path.node)) { - displayName = getNameFromPath(path.get(`id`)); - } - - return displayName || null; -} - -function getVariableIdentifier(path) { - let displayName = null; - let searchPath = path; - - while (searchPath !== null) { - if (types.VariableDeclarator.check(searchPath.node)) { - displayName = getNameFromPath(searchPath.get(`id`)); - break; - } - - if (types.AssignmentExpression.check(searchPath.node) && !isExportsOrModuleAssignment(searchPath)) { - displayName = getNameFromPath(searchPath.get(`left`)); - break; - } - - searchPath = searchPath.parentPath; - } - - return displayName || null; -} - -function getNameFromFilePath(filePath = ``) { - let displayName = null; - const filename = path.basename(filePath, path.extname(filePath)); - - if (filename === `index`) { - const parts = path.dirname(filePath).split(path.sep); - displayName = parts[parts.length - 1]; - } else { - displayName = filename; - } - - return displayName.charAt(0).toUpperCase().concat(displayName.slice(1)).replace(/-([a-z])/, (_, match) => match.toUpperCase()); -} - -function createDisplayNameHandler(filePath) { - return function displayNameHandler(documentation, path) { - let displayName = [getStaticDisplayName, getNodeIdentifier, getVariableIdentifier].reduce((name, getDisplayName) => name || getDisplayName(path), ``); - - if (!displayName) { - displayName = getNameFromFilePath(filePath); - } - - documentation.set(`displayName`, displayName || DEFAULT_NAME); - }; -} - -var _default = createDisplayNameHandler(``); - -exports.default = _default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js b/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js deleted file mode 100644 index a75ec80a..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/doclets.js +++ /dev/null @@ -1,164 +0,0 @@ -"use strict"; - -exports.__esModule = true; -exports.applyPropDoclets = exports.parseDoclets = exports.cleanDoclets = void 0; -const DOCLET_PATTERN = /^@(\w+)(?:$|\s((?:[^](?!^@\w))*))/gim; - -let cleanDocletValue = str => { - str = str.trim(); - if (str.endsWith(`}`) && str.startsWith(`{`)) str = str.slice(1, -1); - return str; -}; - -let isLiteral = str => /^('|"|true|false|\d+)/.test(str.trim()); -/** - * Remove doclets from string - */ - - -const cleanDoclets = desc => { - desc = desc || ``; - let idx = desc.search(DOCLET_PATTERN); - return (idx === -1 ? desc : desc.substr(0, idx)).trim(); -}; -/** - * Given a string, this function returns an object with doclet names as keys - * and their "content" as values. - * - * Adapted from https://github.com/reactjs/react-docgen/blob/ee8a5359c478b33a6954f4546637312764798d6b/src/utils/docblock.js#L62 - * Updated to strip \r from the end of doclets - */ - - -exports.cleanDoclets = cleanDoclets; - -const getDoclets = str => { - let doclets = []; - let match = DOCLET_PATTERN.exec(str); - let val; - - for (; match; match = DOCLET_PATTERN.exec(str)) { - val = match[2] ? match[2].replace(/\r$/, ``) : true; - const key = match[1]; - doclets.push({ - tag: key, - value: val - }); - } - - return doclets; -}; -/** - * parse out description doclets to an object and remove the comment - * - * @param {ComponentMetadata|PropMetadata} obj - */ - - -const parseDoclets = obj => { - let desc = obj.description || ``; - return getDoclets(desc) || Object.create(null); -}; - -exports.parseDoclets = parseDoclets; - -function parseType(type) { - if (!type) { - return undefined; - } - - const { - name, - raw - } = type; - - if (name === `union`) { - return { - name, - value: raw.split(`|`).map(v => { - return { - name: v.trim() - }; - }) - }; - } - - if (name === `enum`) { - return Object.assign({}, type); - } - - if (raw) { - return { - name: raw - }; - } - - return Object.assign({}, type); -} -/** - * Reads the JSDoc "doclets" and applies certain ones to the prop type data - * This allows us to "fix" parsing errors, or unparsable data with JSDoc - * style comments - * - * @param {Object} props Object Hash of the prop metadata - * @param {String} propName - */ - - -const applyPropDoclets = prop => { - prop.doclets.forEach(({ - tag, - value - }) => { - // the @type doclet to provide a prop type - // Also allows enums (oneOf) if string literals are provided - // ex: @type {("optionA"|"optionB")} - if (tag === `type`) { - value = cleanDocletValue(value); - - if (prop.type === undefined) { - prop.type = {}; - } - - prop.type.name = value; - - if (value[0] === `(`) { - value = value.substring(1, value.length - 1).split(`|`).map(v => v.trim()); - const name = value.every(isLiteral) ? `enum` : `union`; - prop.type.name = name; - prop.type.value = value.map(value => name === `enum` ? { - value, - computed: false - } : { - name: value - }); - } - - return; - } // Use @required to mark a prop as required - // useful for custom propTypes where there isn't a `.isRequired` addon - - - if (tag === `required` && value) { - prop.required = true; - return; - } // Use @defaultValue to provide a prop's default value - - - if ((tag === `default` || tag === `defaultValue`) && value != null) { - prop.defaultValue = { - value, - computed: false - }; - return; - } - }); // lookup for tsTypes or flowTypes - - if (prop.type === undefined) { - prop.type = parseType(prop.tsType) || parseType(prop.flowType); - } - - return prop; -}; - -exports.applyPropDoclets = applyPropDoclets; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js index 3941715d..3eb1d62e 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js @@ -3,15 +3,16 @@ var tsxParser = require('react-docgen-typescript') try { tsxParser = tsxParser.withCustomConfig( - path.resolve(__dirname, '../../../tsconfig.json'), + path.resolve(__dirname, '../../../tsconfig.json'), { propFilter(prop) { if (prop.parent) { return !prop.parent.fileName.includes('node_modules') } return true - }, - }) + }, + } + ) } catch (err) { console.log('Error in initiating react-docgen-typescript: ', err) } @@ -21,7 +22,10 @@ var _interopRequireDefault = require(`@babel/runtime/helpers/interopRequireDefau exports.__esModule = true exports.default = onCreateNode -var _parse = _interopRequireDefault(require(`./parse`)) +// var _parse = _interopRequireDefault(require(`./parse`)) +const _parse = _interopRequireDefault( + require('../../node_modules/gatsby-transformer-react-docgen/parse') +) const propsId = (parentId, name) => `${parentId}--ComponentProp-${name}` diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js b/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js deleted file mode 100644 index 141641fe..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/parse.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -exports.__esModule = true; -exports.default = parseMetadata; - -var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); - -var _reactDocgen = require("react-docgen"); - -var _parse = require("react-docgen/dist/parse"); - -var _codeFrame = require("@babel/code-frame"); - -var _displaynameHandler = require("./displayname-handler"); - -var _doclets = require("./doclets"); - -const defaultHandlers = [_reactDocgen.handlers.propTypeHandler, _reactDocgen.handlers.propTypeCompositionHandler, _reactDocgen.handlers.propDocBlockHandler, _reactDocgen.handlers.flowTypeHandler, _reactDocgen.handlers.defaultPropsHandler, _reactDocgen.handlers.componentDocblockHandler, _reactDocgen.handlers.componentMethodsHandler, _reactDocgen.handlers.componentMethodsJsDocHandler]; -let fileCount = 0; -/** - * Wrap handlers to pass in additional arguments such as the File node - */ - -function makeHandlers(node, handlers) { - handlers = (handlers || []).map(h => (...args) => h(...args, node)); - return [(0, _displaynameHandler.createDisplayNameHandler)(node.absolutePath || `/UnknownComponent${++fileCount}`), ...handlers]; -} - -function parseMetadata(content, node, options) { - let components = []; - const _ref = options || {}, - { - handlers, - resolver: userResolver - } = _ref, - parseOptions = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["handlers", "resolver"]); - - try { - components = (0, _reactDocgen.parse)(content, userResolver || _reactDocgen.resolver.findAllComponentDefinitions, defaultHandlers.concat(makeHandlers(node, handlers)), Object.assign({}, parseOptions, { - filename: node.absolutePath - })); - } catch (err) { - if (err.message === _parse.ERROR_MISSING_DEFINITION) return []; // reset the stack to here since it's not helpful to see all the react-docgen guts - // const parseErr = new Error(err.message) - - if (err.loc) { - err.codeFrame = (0, _codeFrame.codeFrameColumns)(content, err.loc.start || { - start: err.loc - }, { - highlightCode: true - }); - } - - throw err; - } - - if (components.length === 1) { - components[0].displayName = components[0].displayName.replace(/\d+$/, ``); - } - - components.forEach(component => { - component.docblock = component.description || ``; - component.doclets = (0, _doclets.parseDoclets)(component); - component.description = (0, _doclets.cleanDoclets)(component.description); - component.props = Object.keys(component.props || {}).map(propName => { - const prop = component.props[propName]; - prop.name = propName; - prop.docblock = prop.description || ``; - prop.doclets = (0, _doclets.parseDoclets)(prop, propName); - prop.description = (0, _doclets.cleanDoclets)(prop.description); - (0, _doclets.applyPropDoclets)(prop); - return prop; - }); - }); - return components; -} \ No newline at end of file From 5c976ded0cf5133f86db7567efa30e501ce93141 Mon Sep 17 00:00:00 2001 From: Galib Hassan Date: Thu, 17 Oct 2019 15:50:40 +0200 Subject: [PATCH 7/7] removing local 'extend-node-type.js', more cleanup --- .../extend-node-type.js | 162 ------------------ .../gatsby-node.js | 2 +- .../on-node-create.js | 3 +- .../package.json | 28 +-- 4 files changed, 3 insertions(+), 192 deletions(-) delete mode 100644 website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js b/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js deleted file mode 100644 index 0f159e92..00000000 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/extend-node-type.js +++ /dev/null @@ -1,162 +0,0 @@ -"use strict"; - -exports.__esModule = true; -exports.default = void 0; - -const { - GraphQLBoolean, - GraphQLObjectType, - GraphQLList, - GraphQLString, - GraphQLNonNull, - GraphQLJSON -} = require(`gatsby/graphql`); - -const { - stripIndent, - oneLine -} = require(`common-tags`); - -const PropDefaultValue = new GraphQLObjectType({ - name: `PropDefaultValue`, - fields: () => { - return { - value: { - type: GraphQLString - }, - computed: { - type: GraphQLBoolean - } - }; - } -}); -const PropTypeValue = new GraphQLObjectType({ - name: `PropTypeValue`, - fields: () => { - return { - name: { - type: new GraphQLNonNull(GraphQLString) - }, - value: { - type: GraphQLJSON - }, - raw: { - type: GraphQLString - } - }; - } -}); -const Method = new GraphQLObjectType({ - name: `ComponentMethod`, - fields: () => { - return { - name: { - type: new GraphQLNonNull(GraphQLString) - }, - description: { - type: GraphQLString - }, - docblock: { - type: GraphQLString, - description: oneLine` - The raw comment block leading a method declaration - ` - }, - modifiers: { - type: new GraphQLList(GraphQLString), - description: oneLine` - Modifiers describing the kind and sort of method e.g. "static", - "generator", or "async". - ` - }, - params: { - type: new GraphQLList(new GraphQLObjectType({ - name: `ComponentMethodParams`, - fields: () => { - return { - name: { - type: GraphQLString - }, - type: { - type: GraphQLJSON - } - }; - } - })) - }, - returns: { - type: new GraphQLList(GraphQLJSON) - } - }; - } -}); - -function extendComponents() { - return { - doclets: { - type: GraphQLJSON - }, - composes: { - type: new GraphQLList(new GraphQLNonNull(GraphQLString)), - description: stripIndent` - ${oneLine` - A list of additional modules "spread" into this component's - propTypes such as:`} - - propTypes = { - name: PropTypes.string, - ...AnotherComponent.propTypes, - } - ` - }, - methods: { - type: new GraphQLList(Method), - description: `Component methods` - } - }; -} - -function extendProp() { - return { - type: { - type: PropTypeValue - }, - flowType: { - type: GraphQLJSON - }, - tsType: { - type: GraphQLJSON - }, - defaultValue: { - type: PropDefaultValue - }, - doclets: { - type: GraphQLJSON - }, - docblock: { - type: GraphQLString, - description: oneLine` - The raw comment block leading a propType declaration - ` - }, - required: { - type: new GraphQLNonNull(GraphQLBoolean), - resolve: ({ - required - }) => required || false, - description: oneLine` - Describes whether or not the propType is required, i.e. not \`null\` - ` - } - }; -} - -var _default = ({ - type -}) => { - if (type.name === `ComponentProp`) return extendProp(); - if (type.name === `ComponentMetadata`) return extendComponents(); - return {}; -}; - -exports.default = _default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js index d1212a8c..f5d061d5 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/gatsby-node.js @@ -1,4 +1,4 @@ "use strict"; exports.onCreateNode = require(`./on-node-create`).default; -exports.setFieldsOnGraphQLNodeType = require(`./extend-node-type`).default; \ No newline at end of file +exports.setFieldsOnGraphQLNodeType = require(`gatsby-transformer-react-docgen/extend-node-type`).default; \ No newline at end of file diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js index 3eb1d62e..79f94739 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/on-node-create.js @@ -22,9 +22,8 @@ var _interopRequireDefault = require(`@babel/runtime/helpers/interopRequireDefau exports.__esModule = true exports.default = onCreateNode -// var _parse = _interopRequireDefault(require(`./parse`)) const _parse = _interopRequireDefault( - require('../../node_modules/gatsby-transformer-react-docgen/parse') + require('gatsby-transformer-react-docgen/parse') ) const propsId = (parentId, name) => `${parentId}--ComponentProp-${name}` diff --git a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json index 3e4446b5..c087d81e 100644 --- a/website/plugins/gatsby-transformer-react-docgen-typescript/package.json +++ b/website/plugins/gatsby-transformer-react-docgen-typescript/package.json @@ -1,29 +1,3 @@ { - "name": "gatsby-transformer-react-docgen-typescript", - "description": "Expose React component metadata and prop information from typescript files as GraphQL types", - "version": "5.0.15", - "dependencies": { - "@babel/code-frame": "^7.5.5", - "@babel/runtime": "^7.6.2", - "@babel/types": "^7.6.1", - "ast-types": "^0.13.2", - "common-tags": "^1.8.0", - "react-docgen": "^5.0.0-beta.1", - "react-docgen-typescript": "^1.15.0" - }, - "devDependencies": { - "@babel/cli": "^7.6.2", - "@babel/core": "^7.6.2", - "babel-preset-gatsby-package": "^0.2.7", - "cross-env": "^5.2.1", - "lodash": "^4.17.15" - }, - "license": "MIT", - "main": "index.js", - "peerDependencies": { - "gatsby": "^2.0.15" - }, - "engines": { - "node": ">=8.0.0" - } + "name": "gatsby-transformer-react-docgen-typescript" }