Skip to content

Commit

Permalink
feat: typescript props read compiler options
Browse files Browse the repository at this point in the history
  • Loading branch information
atanasster committed Nov 24, 2020
1 parent 8f2b842 commit 6ce277a
Showing 1 changed file with 37 additions and 3 deletions.
40 changes: 37 additions & 3 deletions props-info/react-docgen-typescript/src/react-docgen-typescript.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
import { ParserOptions, withDefaultConfig } from 'react-docgen-typescript';
import { ParserOptions, withCompilerOptions } from 'react-docgen-typescript';
import path from 'path';
import { findUpFile } from '@component-controls/core/node-utils';
import {
ScriptTarget,
ModuleKind,
JsxEmit,
readConfigFile,
sys,
parseJsonConfigFileContent,
} from 'typescript';
import { computeComponentName } from './defaults';
import { RectDocgenTypescriptOptions } from './types';

Expand All @@ -19,16 +29,40 @@ export const extractDocgenTypescriptInfo = (
},
componentNameResolver = computeComponentName,
shouldExtractLiteralValuesFromEnum = true,
shouldRemoveUndefinedFromOptional = true,
savePropValueAsString,
} = reactDocGenTypescriptOptions || {};

const parserOptions: ParserOptions = {
propFilter,
componentNameResolver,
shouldExtractLiteralValuesFromEnum,
shouldRemoveUndefinedFromOptional,
savePropValueAsString,
};
const parser = withDefaultConfig(parserOptions);

let compilerConfig = {
jsx: JsxEmit.React,
module: ModuleKind.CommonJS,
target: ScriptTarget.Latest,
};
const tsConfigFile = findUpFile(path.dirname(fileName), 'tsconfig.json');
if (tsConfigFile) {
try {
const configContent = readConfigFile(tsConfigFile, sys.readFile);
const config = parseJsonConfigFileContent(
configContent.config,
sys,
path.dirname(tsConfigFile),
{},
tsConfigFile,
);
compilerConfig = {
...compilerConfig,
...config.options,
};
} catch (e) {}
}
const parser = withCompilerOptions(compilerConfig, parserOptions);
try {
const docgenInfo = parser.parse(fileName);
if (Array.isArray(docgenInfo) && docgenInfo.length > 0) {
Expand Down

0 comments on commit 6ce277a

Please sign in to comment.