From ebbe58df70f047f4b5fe367ac4b4a08de8a65e5d Mon Sep 17 00:00:00 2001 From: gengyang Date: Tue, 3 Mar 2020 11:52:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20fix=20bug=20of=20transfor?= =?UTF-8?q?ming=20type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../material-parser/src/parser/ReactParser.ts | 85 ++++---- .../__snapshots__/test/Materialize.ts.md | 200 ++++++++++++------ .../__snapshots__/test/Materialize.ts.snap | Bin 3094 -> 3593 bytes .../test/accesser/LocalAccesser.ts.md | 200 ++++++++++++------ .../test/accesser/LocalAccesser.ts.snap | Bin 3098 -> 3600 bytes .../test/generator/Generator.ts.md | 127 ++++++----- .../test/generator/Generator.ts.snap | Bin 1466 -> 1672 bytes .../test/parser/ReactParser.ts.md | 200 ++++++++++++------ .../test/parser/ReactParser.ts.snap | Bin 6265 -> 6913 bytes .../es/basic/AIMakeBlank/manifest.json | 2 +- .../es/basic/AIMakeIcon/manifest.json | 2 +- .../es/basic/AIMakeImage/manifest.json | 2 +- .../es/basic/AIMakeLink/manifest.json | 2 +- .../es/basic/AIMakePlaceholder/manifest.json | 2 +- .../es/basic/AIMakeText/manifest.json | 2 +- .../es/basic/Root/manifest.json | 2 +- .../es/manifest.json | 2 +- 17 files changed, 552 insertions(+), 276 deletions(-) diff --git a/packages/material-parser/src/parser/ReactParser.ts b/packages/material-parser/src/parser/ReactParser.ts index cd1c17227..6e53f73ac 100644 --- a/packages/material-parser/src/parser/ReactParser.ts +++ b/packages/material-parser/src/parser/ReactParser.ts @@ -17,38 +17,47 @@ import BaseParser from './BaseParser'; const log = debug.extend('mat'); const parser = buildParser(); -function transformType(item: any): any { - switch (typeof item) { - case 'string': - return { - propType: item, - }; - case 'object': - if (Array.isArray(item)) { - return item.map(transformType); - } else if (Object.keys(item).length === 1 && item.name) { - return { - propType: item.name, - }; - } else if (item.name === 'shape' || item.name === 'exact') { - return { - propType: item.name, - value: Object.keys(item.value).map(name => { - return { - name, - ...transformType(item.value[name]), - }; - }), - }; - } else if (item.name === 'enum') { - return item.value.map((x: any) => x.value); - } else { - return { - propType: item.name, - isRequired: item.required, - }; - } +function transformType(type: any): any { + const { name, value, computed, required } = type; + if (!value && !required) { + return name; } + if (computed !== undefined && value) { + // tslint:disable-next-line:no-eval + return eval(value); + } + const result: any = { + type: name, + }; + if (required) { + result.isRequired = required; + } + if (Array.isArray(value)) { + if (name === 'enum') { + result.type = 'oneOf'; + } + result.value = value.map(transformType); + } else if (typeof value === 'object') { + if (name === 'objectOf' || name === 'arrayOf' || name === 'instanceOf') { + result.value = transformType(value); + } else { + result.value = Object.keys(value).map((n: string) => { + return transformItem(n, value[n]); + }); + } + } else if (value !== undefined) { + result.value = value; + } + return result; +} + +function transformItem(name: string, item: any): any { + const result: any = { + name, + propType: transformType(item), + }; + + return result; } /** * 解析 react 生态下的组件 @@ -120,10 +129,14 @@ class ReactParser extends BaseParser { } public static parseProperties(objectPath: any): IPropTypes { - const results: IPropTypes = objectPath.get('properties').map((p: any) => ({ - name: p.get('key').node.name, - ...transformType(ReactDocUtils.getPropType(p.get('value'))), - })); + const results: IPropTypes = objectPath + .get('properties') + .map((p: any) => + transformItem( + p.get('key').node.name, + ReactDocUtils.getPropType(p.get('value')), + ), + ); // console.log(JSON.stringify(results, null, 2)); // objectPath.node.properties.forEach((prop: any) => { // if (t.isProperty(prop)) { @@ -239,7 +252,7 @@ class ReactParser extends BaseParser { path.node.expression.left.object.name === defaultExportName && ['propTypes'].includes(path.node.expression.left.property.name) ) { - debugger; + // debugger; // 处理 propTypes results.push( // @ts-ignore diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.md b/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.md index fe9b21702..9d00ac48d 100644 --- a/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.md +++ b/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.md @@ -25,9 +25,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -82,9 +90,17 @@ Generated by [AVA](https://avajs.dev). propType: 'string', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -151,9 +167,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -196,9 +220,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -233,9 +265,18 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + 'string', + ], + }, }, { name: 'type', @@ -286,9 +327,17 @@ Generated by [AVA](https://avajs.dev). propType: 'object', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + 'element', + { + type: 'arrayOf', + value: 'element', + }, + ], + }, }, ], screenshot: '', @@ -358,77 +407,106 @@ Generated by [AVA](https://avajs.dev). propType: 'elementType', }, { - isRequired: undefined, name: 'optionalMessage', - propType: 'instanceOf', + propType: { + type: 'instanceOf', + value: 'Demo', + }, }, { - 0: '\'News\'', - 1: '\'Photos\'', name: 'optionalEnum', + propType: { + type: 'oneOf', + value: [ + 'News', + 'Photos', + ], + }, }, { - isRequired: undefined, name: 'optionalUnion', - propType: 'union', + propType: { + type: 'union', + value: [ + 'string', + 'number', + { + type: 'instanceOf', + value: 'Demo', + }, + ], + }, }, { - isRequired: undefined, name: 'optionalArrayOf', - propType: 'arrayOf', + propType: { + type: 'arrayOf', + value: 'number', + }, }, { - isRequired: undefined, name: 'optionalObjectOf', - propType: 'objectOf', + propType: { + type: 'objectOf', + value: 'number', + }, }, { name: 'optionalObjectWithShape', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithShape2', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithStrictShape', - propType: 'exact', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'exact', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'requiredFunc', diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.snap b/packages/material-parser/test/fixtures/__snapshots__/test/Materialize.ts.snap index 4ae2a9c884032702a252e69c541061bb014c339c..83251adf030dbc1947704bac32cd7c894b8e6c1b 100644 GIT binary patch literal 3593 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 diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.md b/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.md index 92d7eeb69..db57fd94d 100644 --- a/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.md +++ b/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.md @@ -25,9 +25,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -82,9 +90,17 @@ Generated by [AVA](https://avajs.dev). propType: 'string', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -151,9 +167,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -196,9 +220,17 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -233,9 +265,18 @@ Generated by [AVA](https://avajs.dev). }, props: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + 'string', + ], + }, }, { name: 'type', @@ -286,9 +327,17 @@ Generated by [AVA](https://avajs.dev). propType: 'object', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + 'element', + { + type: 'arrayOf', + value: 'element', + }, + ], + }, }, ], screenshot: '', @@ -358,77 +407,106 @@ Generated by [AVA](https://avajs.dev). propType: 'elementType', }, { - isRequired: undefined, name: 'optionalMessage', - propType: 'instanceOf', + propType: { + type: 'instanceOf', + value: 'Demo', + }, }, { - 0: '\'News\'', - 1: '\'Photos\'', name: 'optionalEnum', + propType: { + type: 'oneOf', + value: [ + 'News', + 'Photos', + ], + }, }, { - isRequired: undefined, name: 'optionalUnion', - propType: 'union', + propType: { + type: 'union', + value: [ + 'string', + 'number', + { + type: 'instanceOf', + value: 'Demo', + }, + ], + }, }, { - isRequired: undefined, name: 'optionalArrayOf', - propType: 'arrayOf', + propType: { + type: 'arrayOf', + value: 'number', + }, }, { - isRequired: undefined, name: 'optionalObjectOf', - propType: 'objectOf', + propType: { + type: 'objectOf', + value: 'number', + }, }, { name: 'optionalObjectWithShape', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithShape2', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithStrictShape', - propType: 'exact', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'exact', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'requiredFunc', diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.snap b/packages/material-parser/test/fixtures/__snapshots__/test/accesser/LocalAccesser.ts.snap index a1f33fe5d84fe9cb9216500ed745a2bbbca2bfd6..6457c45115e37f890e38df73b32cde01a9c36df4 100644 GIT binary patch literal 3600 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 literal 3098 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 diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.md b/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.md index 85d277700..c37057bcc 100644 --- a/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.md +++ b/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.md @@ -65,77 +65,106 @@ Generated by [AVA](https://avajs.dev). propType: 'elementType', }, { - isRequired: undefined, name: 'optionalMessage', - propType: 'instanceOf', + propType: { + type: 'instanceOf', + value: 'Demo', + }, }, { - 0: '\'News\'', - 1: '\'Photos\'', name: 'optionalEnum', + propType: { + type: 'oneOf', + value: [ + 'News', + 'Photos', + ], + }, }, { - isRequired: undefined, name: 'optionalUnion', - propType: 'union', + propType: { + type: 'union', + value: [ + 'string', + 'number', + { + type: 'instanceOf', + value: 'Demo', + }, + ], + }, }, { - isRequired: undefined, name: 'optionalArrayOf', - propType: 'arrayOf', + propType: { + type: 'arrayOf', + value: 'number', + }, }, { - isRequired: undefined, name: 'optionalObjectOf', - propType: 'objectOf', + propType: { + type: 'objectOf', + value: 'number', + }, }, { name: 'optionalObjectWithShape', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithShape2', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithStrictShape', - propType: 'exact', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'exact', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'requiredFunc', diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.snap b/packages/material-parser/test/fixtures/__snapshots__/test/generator/Generator.ts.snap index 2e435fcd38d4d69c38cb48612820ee0a8c7549ae..74a335ea890a42dc2ba69d837c1ca333d7bf310b 100644 GIT binary patch literal 1672 zcmV;326y>ERzVo_p587?aq+^J_kO(E8)!Pk;XY+qT`wc8NKEoo$TyS%`ZnEcv?d*$XvE z!3Ih0Gfibul3W*y#h4UflEkE_B;Dp#3XJ1(ixY;-JEUUe;JV?>YTA~3B^!^&nN-Il zKa*l$d*iOKtk#V$j_(Gl>1rykq{o#})k@_QTQxN$+nrZTgr#i!P-;Y*unQ(iElnTI zqS8d(Fl{x1xLn@QRozbUs?+UCZng}aG&5+Ms1VGG=~Z%!1_S>q-snS8}R*HLz068H5aGjP#J1Eq-OZl^cCCt@P{p z9KZPNtc!BqH1ZbhvXwSfRky|rdnT=nkZsM*sxyV?bHLA71WH0f(4SCmfU$c6q|br! zK8K~|tw0`yc0#+Mz0fPr>(G19htLV=E9eaLEA%%Mkr``-I-sS{%}^h-RxY2{a@o9| zYmhUzd1fJvse)<3ulnM2P^PDj*IfwY6is*M_0G#YuQffRPGC}#HinAX?)SC}hR}*u zVR+U6&{+}MioR-wUYaF0C3})Rd?iWnm1Kj=R}#1#aK+{2fMb2!o^-6ATYnHXz-`j8 zGPe&nHpuOhjty~p(6M1|zjSO3w=xzx=ci$N92@2KA;;EoyVJ3C+#YglJ-4SqyjzY9 zg<<2|_BytK+f9yb1o18i9e*^X~^i7yd_aL3_{+b%bV$dx$1Pux3CLn3(8H$Dl z^bnA@q0pgABGw3nid0{Rw^ccJen+AN@~j{dosX@JnRh&D0Cp>eFB35zkpzUn6p1D>Lt2}oyH|%}K zf>sf$_@4D+YxcZnI)}V6V{YcEteO)ySs^y0x|~;X6G?VbywaoUY_{UI-=kU*- z7HAMUvU`hTrZ&gFG9!SWanxSHn}rEeuNqt2-+l|OMoPy0g5gV&`}^cXg5W#5YRV) zyaRnr(W?YB(1;Ti)YVAPg#vmzkUODqie4w6JAmwhUZv=b-rKxAYxEOj zR_RG?X{usqW~wi*rn)+zI4=^YuFX*$GinbmPeBKo%1`-;vQvIo3LFJ+96AmCMc@_! z`{e{c4gj4{4*{>I;4%Px(A@-FO8?8|a}J~!k5Xp?{pvQWcu|r{H*jFg zunmh>@zW}$7bRNBz3Vuw-k+F0Xh+=R_TvfnIKDqIeHpkG1@_m!(V8%wPT= z&1`R-vzeG~Yf#b;8LecxT_eoQJwT?Q!xUX2pr?SGhWu>=O?pn^h-R%Xc7b2=#pavk S^X*2LIq4sBPE!{~82|uXLMUPY literal 1466 zcmV;r1x5NnRzVf%#iP%QPrfFkHErL#V&t|9Ho!QRJ<_FA0 ztyZK|s4aM-^r}>(rC0>7RJ;)M!m9M5rh-MVpopN@3-!YKp0hif-E+2`RRdmV;AP*P z^UU|nne*kFGuuxHQONmU9{psW{p+Wn|NPyzy~l_86vF0>t-&PQj$f@&~wywcIX8KrxZmNa8d&6ruL<}A~2sF76* z=E5L9q80Q(d|`eNsBTcTq-73hbJSLgnnNvJD-4!23&B(eiPW6F=#(vt+PX1Uz)6cG z({gAQ;ff{GpoXLJQ!CdswBI%j;i9AN;Nw&LP#6=7D@qpAcafNjVEXJng->DdH1rwt zBjocD(hEK06YiN`x@RFFeMjv=C$u7Uj|Lv0MN=R{Su-8wU;AcBtW6zJ+8<{a=75`~7KY3Mg-G(gDifH3DkSi zK&*=JJm#vKMy*OlhK7fRc_-=Son$7+I|EoneE{ALuTXL{uJiZVs>K$Hp%S- zvng(uneF8EO=i1T4f`*_u0Z}aq1;1ax%=-0qC$H`G%TUZKn_D^MKmIzUjVrb`Jw{a zCSL#$71}4FQ3*W+8WYfV2^|6Q0Q9Vgc1Y-pK#oH1ifCLyuL8LS zrP~EGA)si*fgXeA;{x6-;irI{hE|{(BA%A;bqPW?K)a!Zgn;)-_$xq8LKmUyBHkx0Q7lPF z3VJXppm$2>Ge9VGOhh+H&rF}#gN?c--C>p-^dzmop8x_GVUNEjmr6A{s8uMhsO@gl zhfTBK6*Mr*p_XIrC>t5im^lu4#f-Z#C(6ZHYI#Ks8C9(1xRsUgjB8f0mg7!2>{09) z*REo%$6YGUdaqc>u3{~(*#sWlo@-`s$SY>Tjk&!*i}FKQ3LB;_=M}k2h|HpRMUT;X zw#lwOs@r?$!Ln}AY;A+w!sK>R+r}QmD}7WqY)3OPbXTrvc4fG>W&;y+!5$FDM{1!5 zCb6M4C8GIyZpVMZ8ces=eWndvdbNb_Va<5wiw1 zN!}29ePiqy-N{eoHSZb@+7${fKW``NUVi4aLb-WSH>B;kN!roBkoU^p$lKQ>FZx}^ zX>HPUQDZF^$^EIO$#31+tm>Mt;nOJQ#vC&|pTvHRG1v%f#>J09+ft2hb?X}5>Hv-d z*a^)D;B6u}3m^|!0(gh``$y%iWI5%&wVX{=-dbuyU)6@9ox;%8PIo9@9m00$HP|>w%9#}a01U#@LjV8( diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.md b/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.md index 96255e4d6..d53a144ba 100644 --- a/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.md +++ b/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.md @@ -176,9 +176,17 @@ Generated by [AVA](https://avajs.dev). propsDefaults: [], propsTypes: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -295,9 +303,17 @@ Generated by [AVA](https://avajs.dev). propType: 'string', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -502,9 +518,17 @@ Generated by [AVA](https://avajs.dev). propsDefaults: [], propsTypes: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -599,9 +623,17 @@ Generated by [AVA](https://avajs.dev). propsDefaults: [], propsTypes: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + ], + }, }, { name: 'styleBoxModel', @@ -703,9 +735,18 @@ Generated by [AVA](https://avajs.dev). propsDefaults: [], propsTypes: [ { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + { + type: 'arrayOf', + value: 'node', + }, + 'node', + 'string', + ], + }, }, { name: 'type', @@ -793,9 +834,17 @@ Generated by [AVA](https://avajs.dev). propType: 'object', }, { - isRequired: undefined, name: 'children', - propType: 'union', + propType: { + type: 'union', + value: [ + 'element', + { + type: 'arrayOf', + value: 'element', + }, + ], + }, }, ], subModules: [], @@ -897,77 +946,106 @@ Generated by [AVA](https://avajs.dev). propType: 'elementType', }, { - isRequired: undefined, name: 'optionalMessage', - propType: 'instanceOf', + propType: { + type: 'instanceOf', + value: 'Demo', + }, }, { - 0: '\'News\'', - 1: '\'Photos\'', name: 'optionalEnum', + propType: { + type: 'oneOf', + value: [ + 'News', + 'Photos', + ], + }, }, { - isRequired: undefined, name: 'optionalUnion', - propType: 'union', + propType: { + type: 'union', + value: [ + 'string', + 'number', + { + type: 'instanceOf', + value: 'Demo', + }, + ], + }, }, { - isRequired: undefined, name: 'optionalArrayOf', - propType: 'arrayOf', + propType: { + type: 'arrayOf', + value: 'number', + }, }, { - isRequired: undefined, name: 'optionalObjectOf', - propType: 'objectOf', + propType: { + type: 'objectOf', + value: 'number', + }, }, { name: 'optionalObjectWithShape', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithShape2', - propType: 'shape', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'shape', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'optionalObjectWithStrictShape', - propType: 'exact', - value: [ - { - isRequired: false, - name: 'optionalProperty', - propType: 'string', - }, - { - isRequired: true, - name: 'requiredProperty', - propType: 'number', - }, - ], + propType: { + type: 'exact', + value: [ + { + name: 'optionalProperty', + propType: 'string', + }, + { + name: 'requiredProperty', + propType: { + isRequired: true, + type: 'number', + }, + }, + ], + }, }, { name: 'requiredFunc', diff --git a/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.snap b/packages/material-parser/test/fixtures/__snapshots__/test/parser/ReactParser.ts.snap index 550492400911e07839f4a77e9eeae95d9ee4cbcb..3e1b7f1e90a60cc87138d91ff9e3904e13eeb298 100644 GIT binary patch literal 6913 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 Ht*!t7pUXcy literal 6265 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