@charlietango/react-docs v7.0.0
React Docs
Generate docs from React components and Flow or TypeScript view model files.
Usage
Add the dependency
yarn add @charlietango/react-doc --devGenerate JSON files with react-docgen, and process them:
const docs = require('@charlietango/react-docs');
docs('src/models/**/*.json', {
dest: 'dist/models', // Add dest to write to files
outputMarkdown: true,
});or calling the bin
$ react-doc src/{components,types}/**/*.js --dest dist/models --mdWarning for CSharp models
Generating CSharp models is only supported for Flow and TypeScript files. This is a basic rewrite of the React props to C#/.NET. No validation is done on the actual files. Not all Flow/TypeScript features are supported, since there's not a simple way to convert them to C#.
- Flow
numberis converted toint. Use@type {TYPE}in comment tag for the prop, to change the number type.
Config
| Name | Type | Default | Description |
|---|---|---|---|
| dest | string | Write all output files to this path | |
| componentsDir | string / Array | 'components', 'modules' | Paths that contains directories with react components. Used for filtering out non components |
| filter | (file: string) => boolean / boolean | true | Custom filter method to use instead of the default. Set to false to skip filtering. |
| globOptions | Object | Options to to use for the globbing method | |
| outputMarkdown | boolean / string | false | If true, will output Markdown to dest. If a string, the value will be used as the output path |
| outputJson | boolean / string | false | If true, will output JSON to dest. If a string, the value will be used as the output path |
| outputCSharp | boolean / string | false | If true, will output CSharp to dest. If a string, the value will be used as the output path |
| namespace | string | Namespace to use when generating CSharp view models | |
| verbose | boolean | false | Output extra logging |
| quiet | boolean | false | Don't output anything to log |
| throwOnWarning | boolean | false | Throw an error if warnings are logged |
JSDoc flags
You can use these flags to modify how a prop is handled.
@internal- Ignore this prop - It's only used internally in the React App.@type- Set a specific C# type for this prop - Likedecimal
Example input files
In addition to any React style files that react-docgen can handle, there is a fallback that will attempt to extract a single Flow or TypeScript type from a file, and create a model from it.
This is done by using the type as the props for a React Component.
ImageModel.js
// @flow
/**
* Description of the model
**/
export type ImageModel = {
/** Image src URL */
src: string,
/** Original image height */
height?: number,
/** Original image width */
width?: number,
};3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago