From cc180b8cce6057f94fd5cb89f4eb6ee4036bf885 Mon Sep 17 00:00:00 2001 From: "wuji.xwt" Date: Mon, 7 Sep 2020 11:25:06 +0800 Subject: [PATCH] refactor: material-parser --- .../src/parse/js/resolver/resolveTranspiledClass.ts | 1 + ...getMethodDocumentation.js => getMethodDocumentation.ts} | 0 .../src/parse/js/utils/{getTSType.js => getTSType.ts} | 7 +++++-- packages/material-parser/src/parse/ts/index.ts | 1 + packages/material-parser/tsconfig.json | 3 ++- 5 files changed, 9 insertions(+), 3 deletions(-) rename packages/material-parser/src/parse/js/utils/{getMethodDocumentation.js => getMethodDocumentation.ts} (100%) rename packages/material-parser/src/parse/js/utils/{getTSType.js => getTSType.ts} (98%) diff --git a/packages/material-parser/src/parse/js/resolver/resolveTranspiledClass.ts b/packages/material-parser/src/parse/js/resolver/resolveTranspiledClass.ts index 0357966ab..399c3ffc0 100644 --- a/packages/material-parser/src/parse/js/resolver/resolveTranspiledClass.ts +++ b/packages/material-parser/src/parse/js/resolver/resolveTranspiledClass.ts @@ -11,6 +11,7 @@ export default function resolveTranspiledClass(path: any) { visitFunctionDeclaration(arg) { classPath = new NodePath( builders.functionDeclaration( + // @ts-ignore arg.node.id || 'Default', [], builders.blockStatement([ diff --git a/packages/material-parser/src/parse/js/utils/getMethodDocumentation.js b/packages/material-parser/src/parse/js/utils/getMethodDocumentation.ts similarity index 100% rename from packages/material-parser/src/parse/js/utils/getMethodDocumentation.js rename to packages/material-parser/src/parse/js/utils/getMethodDocumentation.ts diff --git a/packages/material-parser/src/parse/js/utils/getTSType.js b/packages/material-parser/src/parse/js/utils/getTSType.ts similarity index 98% rename from packages/material-parser/src/parse/js/utils/getTSType.js rename to packages/material-parser/src/parse/js/utils/getTSType.ts index da3ac46de..f5a3b3936 100644 --- a/packages/material-parser/src/parse/js/utils/getTSType.js +++ b/packages/material-parser/src/parse/js/utils/getTSType.ts @@ -115,6 +115,7 @@ function handleTSTypeLiteral(path, typeParams) { value: getTSTypeWithRequirements(param.get('typeAnnotation'), typeParams), }); } else if (t.TSCallSignatureDeclaration.check(param.node)) { + // @ts-ignore type.signature.constructor = handleTSFunctionType(param, typeParams); } else if (t.TSIndexSignature.check(param.node)) { type.signature.properties.push({ @@ -195,12 +196,14 @@ function handleTSFunctionType(path, typeParams) { }; if (param.node.name === 'this') { + // @ts-ignore type.signature.this = arg.type; return; } if (param.node.type === 'RestElement') { arg.name = param.node.argument.name; + // @ts-ignore arg.rest = true; } @@ -288,7 +291,7 @@ function handleTSIndexedAccessType(path, typeParams) { let visitedTypes = {}; -function getTSTypeWithResolvedTypes(path, typeParams) { +function getTSTypeWithResolvedTypes(path, typeParams?) { if (t.TSTypeAnnotation.check(path.node)) { path = path.get('typeAnnotation'); } @@ -343,7 +346,7 @@ function getTSTypeWithResolvedTypes(path, typeParams) { * * If there is no match, "unknown" is returned. */ -export default function getTSType(path, typeParamMap) { +export default function getTSType(path, typeParamMap?) { // Empty visited types before an after run // Before: in case the detection threw and we rerun again // After: cleanup memory after we are done here diff --git a/packages/material-parser/src/parse/ts/index.ts b/packages/material-parser/src/parse/ts/index.ts index f266211d2..761d9bbb2 100644 --- a/packages/material-parser/src/parse/ts/index.ts +++ b/packages/material-parser/src/parse/ts/index.ts @@ -72,6 +72,7 @@ function getDocgenTypeHelper( }[] = symbolArr.map((prop) => { const propType = checker.getTypeOfSymbolAtLocation( prop, + // @ts-ignore prop.valueDeclaration || (prop.declarations && prop.declarations[0]) || {}, ); return { diff --git a/packages/material-parser/tsconfig.json b/packages/material-parser/tsconfig.json index b4d848194..22be7efab 100644 --- a/packages/material-parser/tsconfig.json +++ b/packages/material-parser/tsconfig.json @@ -4,7 +4,8 @@ "target": "es6", "module": "commonjs", "rootDir": "src", - "outDir": "lib" + "outDir": "lib", + "strict": false }, "include": ["src/**/*"], "exclude": ["schemas"]