mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 19:52:51 +00:00
feat: import react-docgen to parse propTypes
This commit is contained in:
parent
122a00d2f7
commit
6e661686e4
15
.vscode/launch.json
vendored
Normal file
15
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "ava my-package",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "${workspaceFolder}/packages/material-parser/node_modules/.bin/ava",
|
||||
"runtimeArgs": ["debug", "--break", "${file}"]
|
||||
}
|
||||
]
|
||||
}
|
||||
2226
packages/designer/package-lock.json
generated
Normal file
2226
packages/designer/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -23,18 +23,20 @@
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"prebuild": "npm run schema",
|
||||
"test": "ava --verbose --serial",
|
||||
"test": "ava",
|
||||
"test:snapshot": "ava --update-snapshots",
|
||||
"schema": "node ./scripts/transform.js"
|
||||
},
|
||||
"ava": {
|
||||
"compileEnhancements": false,
|
||||
"snapshotDir": "test/fixtures/__snapshots__",
|
||||
"extensions": [
|
||||
"ts"
|
||||
],
|
||||
"require": [
|
||||
"ts-node/register"
|
||||
],
|
||||
"include": [
|
||||
"test/generator/Generator.ts"
|
||||
]
|
||||
},
|
||||
"license": "MIT",
|
||||
@ -47,6 +49,7 @@
|
||||
"debug": "^4.1.1",
|
||||
"fs-extra": "^8.1.0",
|
||||
"lodash": "^4.17.15",
|
||||
"react-docgen": "^5.3.0",
|
||||
"semver": "^7.1.3",
|
||||
"short-uuid": "^3.1.1"
|
||||
}
|
||||
|
||||
@ -155,32 +155,13 @@ class Generator implements IGenerator {
|
||||
const defaultValueItem = matParsedModel.propsDefaults.find(
|
||||
inner => inner.name === item.name,
|
||||
);
|
||||
const propItem: Partial<PropsSection['props'][0]> = {
|
||||
name: item.name,
|
||||
};
|
||||
if (
|
||||
[
|
||||
'array',
|
||||
'bool',
|
||||
'func',
|
||||
'number',
|
||||
'object',
|
||||
'string',
|
||||
'node',
|
||||
'element',
|
||||
'any',
|
||||
].includes(item.type)
|
||||
) {
|
||||
propItem.propType = item.type as PropType;
|
||||
} else {
|
||||
propItem.propType = {
|
||||
type: item.type,
|
||||
// @ts-ignore
|
||||
value: item.value,
|
||||
} as PropType;
|
||||
}
|
||||
let propItem: Partial<PropsSection['props'][0]> = item;
|
||||
|
||||
if (defaultValueItem) {
|
||||
propItem.defaultValue = defaultValueItem.defaultValue;
|
||||
propItem = {
|
||||
...propItem,
|
||||
defaultValue: defaultValueItem.defaultValue,
|
||||
};
|
||||
}
|
||||
props.push(propItem as PropsSection['props'][0]);
|
||||
});
|
||||
|
||||
@ -1,13 +1,55 @@
|
||||
import { CodeGenerator } from '@babel/generator';
|
||||
import { parse } from '@babel/parser';
|
||||
// import { parse } from '@babel/parser';
|
||||
const buildParser = require('react-docgen/dist/babelParser').default;
|
||||
import traverse from '@babel/traverse';
|
||||
import * as t from '@babel/types';
|
||||
const { utils: ReactDocUtils } = require('react-docgen');
|
||||
import { debug } from '../otter-core';
|
||||
import { IMaterialParsedModel, IMaterialScanModel, SourceType } from '../types';
|
||||
import {
|
||||
IMaterialParsedModel,
|
||||
IMaterialScanModel,
|
||||
IPropType,
|
||||
IPropTypes,
|
||||
SourceType,
|
||||
} from '../types';
|
||||
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,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 解析 react 生态下的组件
|
||||
*
|
||||
@ -31,10 +73,10 @@ class ReactParser extends BaseParser {
|
||||
source: string;
|
||||
}>
|
||||
> {
|
||||
const ast = await parse(fileContent, {
|
||||
sourceType: sourceType === SourceType.MODULE ? 'module' : 'script',
|
||||
plugins: ['jsx'],
|
||||
});
|
||||
const ast = parser.parse(fileContent);
|
||||
|
||||
// @ts-ignore
|
||||
ast.__src = fileContent;
|
||||
|
||||
const specifiers: any = [];
|
||||
|
||||
@ -77,6 +119,139 @@ class ReactParser extends BaseParser {
|
||||
return specifiers;
|
||||
}
|
||||
|
||||
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'))),
|
||||
}));
|
||||
// console.log(JSON.stringify(results, null, 2));
|
||||
// objectPath.node.properties.forEach((prop: any) => {
|
||||
// if (t.isProperty(prop)) {
|
||||
// if (t.isMemberExpression(prop.value)) {
|
||||
// if (t.isIdentifier(prop.value.object)) {
|
||||
// // 支持 optionalArray: PropTypes.array 写法
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// type: prop.value.property.name,
|
||||
// required: false,
|
||||
// });
|
||||
// }
|
||||
// if (t.isMemberExpression(prop.value.object)) {
|
||||
// // 支持 optionalArray: PropTypes.array.isRequired 写法
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// type: prop.value.object.property.name,
|
||||
// required: prop.value.object.property.name === 'isRequired',
|
||||
// });
|
||||
// }
|
||||
// if (
|
||||
// t.isCallExpression(prop.value.object) &&
|
||||
// t.isMemberExpression(prop.value.object.callee)
|
||||
// ) {
|
||||
// // 支持 optionalArray: PropTypes.shape().isRequired 写法
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// type: prop.value.object.callee.property.name,
|
||||
// value: ReactParser.parseProperties(
|
||||
// prop.value.object.arguments[0],
|
||||
// ),
|
||||
// required: prop.value.property.name === 'isRequired',
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// if (
|
||||
// t.isCallExpression(prop.value) &&
|
||||
// t.isMemberExpression(prop.value.callee)
|
||||
// ) {
|
||||
// // 支持 optionalArray: PropTypes.shape() 写法
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// type: prop.value.callee.property.name,
|
||||
// value: ReactParser.parsePropsTypesES6(prop.value.arguments[0], ''),
|
||||
// required: false,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
return results;
|
||||
// public return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析 AST 获取 propsTypes
|
||||
* 支持的写法:
|
||||
* - static propTypes = { sth: PropTypes.any.isRequired }
|
||||
* - Demo.propTypes = {}
|
||||
*
|
||||
* @private
|
||||
* @param {*} ast
|
||||
* @param {string} defaultExportName
|
||||
* @returns {<Array<{
|
||||
* name: string,
|
||||
* type: string,
|
||||
* value?: any,
|
||||
* required: boolean,
|
||||
* }>}
|
||||
* @memberof ReactParser
|
||||
*/
|
||||
public static parsePropsTypesES6(
|
||||
ast: any,
|
||||
defaultExportName: string,
|
||||
): IPropTypes {
|
||||
const results: any[] = [];
|
||||
traverse(ast, {
|
||||
enter(path) {
|
||||
// 支持 static propTypes = { sth: PropTypes.any.isRequired }; 写法
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isCallExpression(path.node.expression)
|
||||
) {
|
||||
const args = path.node.expression.arguments;
|
||||
if (
|
||||
t.isIdentifier(args[0]) &&
|
||||
// args[0].name === defaultExportName &&
|
||||
t.isLiteral(args[1]) &&
|
||||
(args[1] as any).value === 'propTypes' &&
|
||||
t.isObjectExpression(args[2])
|
||||
) {
|
||||
// const properties = (args[2] as t.ObjectExpression).properties;
|
||||
results.push(
|
||||
...ReactParser.parseProperties(
|
||||
path
|
||||
// @ts-ignore
|
||||
.get('expression')
|
||||
// @ts-ignore
|
||||
.get('arguments')[2],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 支持 Demo.propTypes = {}; 写法
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isAssignmentExpression(path.node.expression) &&
|
||||
t.isMemberExpression(path.node.expression.left) &&
|
||||
t.isObjectExpression(path.node.expression.right) &&
|
||||
t.isIdentifier(path.node.expression.left.object) &&
|
||||
t.isIdentifier(path.node.expression.left.property) &&
|
||||
path.node.expression.left.object.name === defaultExportName &&
|
||||
['propTypes'].includes(path.node.expression.left.property.name)
|
||||
) {
|
||||
debugger;
|
||||
// 处理 propTypes
|
||||
results.push(
|
||||
// @ts-ignore
|
||||
...ReactParser.parseProperties(path.get('expression').get('right')),
|
||||
);
|
||||
}
|
||||
},
|
||||
noScope: defaultExportName ? false : true,
|
||||
});
|
||||
return results;
|
||||
}
|
||||
|
||||
public async parseES5(
|
||||
model: IMaterialScanModel,
|
||||
): Promise<IMaterialParsedModel> {
|
||||
@ -95,10 +270,10 @@ class ReactParser extends BaseParser {
|
||||
item => item.filePath === model.mainEntry,
|
||||
);
|
||||
// log('mainEntryItem', mainEntryItem);
|
||||
const ast = await parse(mainEntryItem.file, {
|
||||
sourceType: 'script',
|
||||
plugins: ['jsx'],
|
||||
});
|
||||
const ast = parser.parse(mainEntryItem.file);
|
||||
|
||||
// @ts-ignore
|
||||
ast.__src = mainEntryItem.file;
|
||||
|
||||
// 获取 defaultExportName
|
||||
traverse(ast, {
|
||||
@ -430,11 +605,10 @@ class ReactParser extends BaseParser {
|
||||
filePath: string;
|
||||
fileContent: string;
|
||||
}): Promise<IMaterialParsedModel> {
|
||||
const ast = await parse(params.fileContent, {
|
||||
sourceType:
|
||||
params.model.sourceType === SourceType.MODULE ? 'module' : 'script',
|
||||
plugins: ['jsx'],
|
||||
});
|
||||
const ast = parser.parse(params.fileContent);
|
||||
|
||||
// @ts-ignore
|
||||
ast.__src = params.fileContent;
|
||||
|
||||
const defaultExportName = await this.parseDefaultExportNameES6(ast);
|
||||
const componentNames = await this.parseComponentNamesES6(ast);
|
||||
@ -444,7 +618,7 @@ class ReactParser extends BaseParser {
|
||||
params.model.sourceType,
|
||||
);
|
||||
const subModules = await this.parseSubModulesES6(ast);
|
||||
const propsTypes = await this.parsePropsTypesES6(ast, defaultExportName);
|
||||
const propsTypes = ReactParser.parsePropsTypesES6(ast, defaultExportName);
|
||||
const propsDefaults = await this.parseDefaultPropsES6(
|
||||
ast,
|
||||
defaultExportName,
|
||||
@ -717,161 +891,6 @@ class ReactParser extends BaseParser {
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析 AST 获取 propsTypes
|
||||
* 支持的写法:
|
||||
* - static propTypes = { sth: PropTypes.any.isRequired }
|
||||
* - Demo.propTypes = {}
|
||||
*
|
||||
* @private
|
||||
* @param {*} ast
|
||||
* @param {string} defaultExportName
|
||||
* @returns {Promise<Array<{
|
||||
* name: string,
|
||||
* type: string,
|
||||
* typeRaw?: any,
|
||||
* required: boolean,
|
||||
* }>>}
|
||||
* @memberof ReactParser
|
||||
*/
|
||||
private async parsePropsTypesES6(
|
||||
ast: any,
|
||||
defaultExportName: string,
|
||||
): Promise<
|
||||
Array<{
|
||||
name: string;
|
||||
type: string;
|
||||
typeRaw?: any;
|
||||
required: boolean;
|
||||
}>
|
||||
> {
|
||||
const results: any[] = [];
|
||||
traverse(ast, {
|
||||
enter(path) {
|
||||
// 支持 static propTypes = { sth: PropTypes.any.isRequired }; 写法
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isCallExpression(path.node.expression)
|
||||
) {
|
||||
const args = path.node.expression.arguments;
|
||||
if (
|
||||
t.isIdentifier(args[0]) &&
|
||||
// args[0].name === defaultExportName &&
|
||||
t.isLiteral(args[1]) &&
|
||||
(args[1] as any).value === 'propTypes' &&
|
||||
t.isObjectExpression(args[2])
|
||||
) {
|
||||
const properties = (args[2] as t.ObjectExpression).properties;
|
||||
properties.forEach((prop: any) => {
|
||||
if (t.isProperty(prop)) {
|
||||
if (t.isMemberExpression(prop.value)) {
|
||||
if (t.isIdentifier(prop.value.object)) {
|
||||
// 支持 optionalArray: PropTypes.array 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.property.name,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
if (t.isMemberExpression(prop.value.object)) {
|
||||
// 支持 optionalArray: PropTypes.array.isRequired 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.object.property.name,
|
||||
required:
|
||||
prop.value.object.property.name === 'isRequired',
|
||||
});
|
||||
}
|
||||
if (
|
||||
t.isCallExpression(prop.value.object) &&
|
||||
t.isMemberExpression(prop.value.object.callee)
|
||||
) {
|
||||
// 支持 optionalArray: PropTypes.shape().isRequired 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.object.callee.property.name,
|
||||
required: prop.value.property.name === 'isRequired',
|
||||
});
|
||||
}
|
||||
}
|
||||
if (
|
||||
t.isCallExpression(prop.value) &&
|
||||
t.isMemberExpression(prop.value.callee)
|
||||
) {
|
||||
// 支持 optionalArray: PropTypes.shape() 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.callee.property.name,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 支持 Demo.propTypes = {}; 写法
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isAssignmentExpression(path.node.expression) &&
|
||||
t.isMemberExpression(path.node.expression.left) &&
|
||||
t.isObjectExpression(path.node.expression.right) &&
|
||||
t.isIdentifier(path.node.expression.left.object) &&
|
||||
t.isIdentifier(path.node.expression.left.property) &&
|
||||
path.node.expression.left.object.name === defaultExportName &&
|
||||
['propTypes'].includes(path.node.expression.left.property.name)
|
||||
) {
|
||||
// 处理 propTypes
|
||||
path.node.expression.right.properties.forEach(prop => {
|
||||
if (t.isProperty(prop)) {
|
||||
if (t.isMemberExpression(prop.value)) {
|
||||
if (t.isIdentifier(prop.value.object)) {
|
||||
// 支持 optionalArray: PropTypes.array 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.property.name,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
if (t.isMemberExpression(prop.value.object)) {
|
||||
// 支持 optionalArray: PropTypes.array.isRequired 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.object.property.name,
|
||||
required: prop.value.object.property.name === 'isRequired',
|
||||
});
|
||||
}
|
||||
if (
|
||||
t.isCallExpression(prop.value.object) &&
|
||||
t.isMemberExpression(prop.value.object.callee)
|
||||
) {
|
||||
// 支持 optionalArray: PropTypes.shape().isRequired 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.object.callee.property.name,
|
||||
required: prop.value.property.name === 'isRequired',
|
||||
});
|
||||
}
|
||||
}
|
||||
if (
|
||||
t.isCallExpression(prop.value) &&
|
||||
t.isMemberExpression(prop.value.callee)
|
||||
) {
|
||||
// 支持 optionalArray: PropTypes.shape() 写法
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
type: prop.value.callee.property.name,
|
||||
required: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析 AST 获取 defaultProps
|
||||
* 支持的写法:
|
||||
@ -897,64 +916,64 @@ class ReactParser extends BaseParser {
|
||||
}>
|
||||
> {
|
||||
const results: any[] = [];
|
||||
traverse(ast, {
|
||||
enter(path) {
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isCallExpression(path.node.expression)
|
||||
) {
|
||||
const args = path.node.expression.arguments;
|
||||
if (
|
||||
t.isIdentifier(args[0]) &&
|
||||
// args[0].name === defaultExportName &&
|
||||
t.isLiteral(args[1]) &&
|
||||
(args[1] as any).value === 'defaultProps' &&
|
||||
t.isObjectExpression(args[2])
|
||||
) {
|
||||
const properties = (args[2] as t.ObjectExpression).properties;
|
||||
properties.forEach((prop: any) => {
|
||||
if (t.isProperty(prop)) {
|
||||
if (t.isObjectExpression(prop.value)) {
|
||||
const defaultValue = new CodeGenerator(
|
||||
t.objectExpression(prop.value.properties),
|
||||
).generate().code;
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
defaultValue,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
// traverse(ast, {
|
||||
// enter(path) {
|
||||
// if (
|
||||
// t.isExpressionStatement(path.node) &&
|
||||
// t.isCallExpression(path.node.expression)
|
||||
// ) {
|
||||
// const args = path.node.expression.arguments;
|
||||
// if (
|
||||
// t.isIdentifier(args[0]) &&
|
||||
// // args[0].name === defaultExportName &&
|
||||
// t.isLiteral(args[1]) &&
|
||||
// (args[1] as any).value === 'defaultProps' &&
|
||||
// t.isObjectExpression(args[2])
|
||||
// ) {
|
||||
// const properties = (args[2] as t.ObjectExpression).properties;
|
||||
// properties.forEach((prop: any) => {
|
||||
// if (t.isProperty(prop)) {
|
||||
// if (t.isObjectExpression(prop.value)) {
|
||||
// const defaultValue = new CodeGenerator(
|
||||
// t.objectExpression(prop.value.properties),
|
||||
// ).generate().code;
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// defaultValue,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
if (
|
||||
t.isExpressionStatement(path.node) &&
|
||||
t.isAssignmentExpression(path.node.expression) &&
|
||||
t.isMemberExpression(path.node.expression.left) &&
|
||||
t.isObjectExpression(path.node.expression.right) &&
|
||||
t.isIdentifier(path.node.expression.left.object) &&
|
||||
t.isIdentifier(path.node.expression.left.property) &&
|
||||
path.node.expression.left.object.name === defaultExportName &&
|
||||
['defaultProps'].includes(path.node.expression.left.property.name)
|
||||
) {
|
||||
// 处理 defaultProps
|
||||
path.node.expression.right.properties.forEach(prop => {
|
||||
if (t.isProperty(prop)) {
|
||||
if (t.isObjectExpression(prop.value)) {
|
||||
const defaultValue = new CodeGenerator(
|
||||
t.objectExpression(prop.value.properties),
|
||||
).generate().code;
|
||||
results.push({
|
||||
name: prop.key.name,
|
||||
defaultValue,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
});
|
||||
// if (
|
||||
// t.isExpressionStatement(path.node) &&
|
||||
// t.isAssignmentExpression(path.node.expression) &&
|
||||
// t.isMemberExpression(path.node.expression.left) &&
|
||||
// t.isObjectExpression(path.node.expression.right) &&
|
||||
// t.isIdentifier(path.node.expression.left.object) &&
|
||||
// t.isIdentifier(path.node.expression.left.property) &&
|
||||
// path.node.expression.left.object.name === defaultExportName &&
|
||||
// ['defaultProps'].includes(path.node.expression.left.property.name)
|
||||
// ) {
|
||||
// // 处理 defaultProps
|
||||
// path.node.expression.right.properties.forEach(prop => {
|
||||
// if (t.isProperty(prop)) {
|
||||
// if (t.isObjectExpression(prop.value)) {
|
||||
// const defaultValue = new CodeGenerator(
|
||||
// t.objectExpression(prop.value.properties),
|
||||
// ).generate().code;
|
||||
// results.push({
|
||||
// name: prop.key.name,
|
||||
// defaultValue,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// });
|
||||
return results;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,16 @@
|
||||
/**
|
||||
* 对应解析器分析出的一些关键信息
|
||||
*/
|
||||
interface IMaterialParsedModel {
|
||||
export interface IPropType {
|
||||
name: string;
|
||||
type: string;
|
||||
value?: IPropTypes;
|
||||
required: boolean;
|
||||
}
|
||||
|
||||
export type IPropTypes = IPropType[];
|
||||
|
||||
export interface IMaterialParsedModel {
|
||||
filePath: string;
|
||||
defaultExportName: string;
|
||||
componentNames: Array<{
|
||||
@ -30,16 +39,9 @@ interface IMaterialParsedModel {
|
||||
// value 是否对应匿名函数
|
||||
isValueAnonymousFunc: boolean;
|
||||
}>;
|
||||
propsTypes: Array<{
|
||||
name: string;
|
||||
type: string;
|
||||
typeRaw?: any;
|
||||
required: boolean;
|
||||
}>;
|
||||
propsTypes: IPropTypes;
|
||||
propsDefaults: Array<{
|
||||
name: string;
|
||||
defaultValue: any;
|
||||
}>;
|
||||
}
|
||||
|
||||
export default IMaterialParsedModel;
|
||||
|
||||
@ -6,7 +6,7 @@ import ICompiler from './ICompiler';
|
||||
import IExtensionConfigManifest from './IExtensionConfigManifest';
|
||||
import IGenerator from './IGenerator';
|
||||
import IMaterializeOptions from './IMaterializeOptions';
|
||||
import IMaterialParsedModel from './IMaterialParsedModel';
|
||||
export * from './IMaterialParsedModel';
|
||||
import IMaterialScanModel from './IMaterialScanModel';
|
||||
import IParser from './IParser';
|
||||
import IScanner from './IScanner';
|
||||
@ -20,7 +20,6 @@ export {
|
||||
IExtensionConfigManifest,
|
||||
IMaterializeOptions,
|
||||
IMaterialScanModel,
|
||||
IMaterialParsedModel,
|
||||
SourceType,
|
||||
ChannelType,
|
||||
EcologyType,
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `Materialize.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## materialize multiple exported component by local
|
||||
|
||||
@ -25,11 +25,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -48,7 +46,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -85,11 +82,9 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -104,7 +99,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -133,7 +127,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -158,11 +151,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -181,7 +172,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -206,11 +196,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -221,7 +209,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -246,11 +233,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'type',
|
||||
@ -273,7 +258,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -298,20 +282,13 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
defaultValue: `{␊
|
||||
padding: 0,␊
|
||||
backgroundColor: '#f0f2f5',␊
|
||||
minHeight: '100%'␊
|
||||
}`,
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
@ -366,10 +343,7 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalSymbol',
|
||||
propType: {
|
||||
type: 'symbol',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'symbol',
|
||||
},
|
||||
{
|
||||
name: 'optionalNode',
|
||||
@ -381,66 +355,80 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalElementType',
|
||||
propType: {
|
||||
type: 'elementType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'elementType',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalMessage',
|
||||
propType: {
|
||||
type: 'instanceOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'instanceOf',
|
||||
},
|
||||
{
|
||||
0: '\'News\'',
|
||||
1: '\'Photos\'',
|
||||
name: 'optionalEnum',
|
||||
propType: {
|
||||
type: 'oneOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalUnion',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalArrayOf',
|
||||
propType: {
|
||||
type: 'arrayOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'arrayOf',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalObjectOf',
|
||||
propType: {
|
||||
type: 'objectOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'objectOf',
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape2',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithStrictShape',
|
||||
propType: {
|
||||
type: 'exact',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'exact',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'requiredFunc',
|
||||
|
||||
Binary file not shown.
@ -2,7 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `LocalAccesser.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## access multiple exported component by local
|
||||
|
||||
@ -25,11 +25,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -48,7 +46,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -85,11 +82,9 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -104,7 +99,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -133,7 +127,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -158,11 +151,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -181,7 +172,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -206,11 +196,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
@ -221,7 +209,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -246,11 +233,9 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'type',
|
||||
@ -273,7 +258,6 @@ Generated by [AVA](https://ava.li).
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
@ -298,20 +282,13 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
props: [
|
||||
{
|
||||
defaultValue: `{␊
|
||||
padding: 0,␊
|
||||
backgroundColor: '#f0f2f5',␊
|
||||
minHeight: '100%'␊
|
||||
}`,
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
@ -366,10 +343,7 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalSymbol',
|
||||
propType: {
|
||||
type: 'symbol',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'symbol',
|
||||
},
|
||||
{
|
||||
name: 'optionalNode',
|
||||
@ -381,66 +355,80 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalElementType',
|
||||
propType: {
|
||||
type: 'elementType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'elementType',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalMessage',
|
||||
propType: {
|
||||
type: 'instanceOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'instanceOf',
|
||||
},
|
||||
{
|
||||
0: '\'News\'',
|
||||
1: '\'Photos\'',
|
||||
name: 'optionalEnum',
|
||||
propType: {
|
||||
type: 'oneOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalUnion',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalArrayOf',
|
||||
propType: {
|
||||
type: 'arrayOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'arrayOf',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalObjectOf',
|
||||
propType: {
|
||||
type: 'objectOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'objectOf',
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape2',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithStrictShape',
|
||||
propType: {
|
||||
type: 'exact',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'exact',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'requiredFunc',
|
||||
|
||||
Binary file not shown.
@ -2,639 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `Generator.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
|
||||
## generate multiple exported components
|
||||
|
||||
> Snapshot 1
|
||||
|
||||
[
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeBlank/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeBlank',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeBlank',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleFlexLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
propType: 'string',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeIcon/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeIcon',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeIcon',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'className',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'iconClassName',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeImage/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeImage',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeImage',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeLink/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeLink',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeLink',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakePlaceholder/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakePlaceholder',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakePlaceholder',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/AIMakeText/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeText',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeText',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'type',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/basic/Root/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'Root',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'Root',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
defaultValue: `{␊
|
||||
padding: 0,␊
|
||||
backgroundColor: '#f0f2f5',␊
|
||||
minHeight: '100%'␊
|
||||
}`,
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
## generate multiple exported components with extensions
|
||||
|
||||
> Snapshot 1
|
||||
|
||||
[
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeBlank/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeBlank',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeBlank',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleFlexLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
propType: 'string',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeIcon/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeIcon',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeIcon',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'className',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'iconClassName',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeImage/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeImage',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeImage',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeLink/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeLink',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeLink',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakePlaceholder/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakePlaceholder',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakePlaceholder',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/AIMakeText/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'AIMakeText',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'AIMakeText',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'type',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/src/basic/Root/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'Root',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'Root',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js',
|
||||
package: 'multiple-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
defaultValue: `{␊
|
||||
padding: 0,␊
|
||||
backgroundColor: '#f0f2f5',␊
|
||||
minHeight: '100%'␊
|
||||
}`,
|
||||
name: 'style',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'children',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
]
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## generate single exported components
|
||||
|
||||
@ -682,10 +50,7 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalSymbol',
|
||||
propType: {
|
||||
type: 'symbol',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'symbol',
|
||||
},
|
||||
{
|
||||
name: 'optionalNode',
|
||||
@ -697,203 +62,80 @@ Generated by [AVA](https://ava.li).
|
||||
},
|
||||
{
|
||||
name: 'optionalElementType',
|
||||
propType: {
|
||||
type: 'elementType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'elementType',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalMessage',
|
||||
propType: {
|
||||
type: 'instanceOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'instanceOf',
|
||||
},
|
||||
{
|
||||
0: '\'News\'',
|
||||
1: '\'Photos\'',
|
||||
name: 'optionalEnum',
|
||||
propType: {
|
||||
type: 'oneOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalUnion',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalArrayOf',
|
||||
propType: {
|
||||
type: 'arrayOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'arrayOf',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalObjectOf',
|
||||
propType: {
|
||||
type: 'objectOf',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'objectOf',
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape2',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithStrictShape',
|
||||
propType: {
|
||||
type: 'exact',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'requiredFunc',
|
||||
propType: 'func',
|
||||
},
|
||||
{
|
||||
name: 'requiredAny',
|
||||
propType: 'any',
|
||||
},
|
||||
],
|
||||
screenshot: '',
|
||||
title: '',
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
## generate single exported components with extensions
|
||||
|
||||
> Snapshot 1
|
||||
|
||||
[
|
||||
{
|
||||
manifestFilePath: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/single-exported-component/src/manifest.json',
|
||||
manifestJS: undefined,
|
||||
manifestObj: {
|
||||
componentName: 'Demo',
|
||||
docUrl: '',
|
||||
npm: {
|
||||
destructuring: false,
|
||||
exportName: 'Demo',
|
||||
main: '/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/single-exported-component/es/index.js',
|
||||
package: 'single-exported-component',
|
||||
subName: '',
|
||||
version: '1.0.0',
|
||||
},
|
||||
props: [
|
||||
{
|
||||
name: 'optionalArray',
|
||||
propType: 'array',
|
||||
},
|
||||
{
|
||||
name: 'optionalBool',
|
||||
propType: 'bool',
|
||||
},
|
||||
{
|
||||
name: 'optionalFunc',
|
||||
propType: 'func',
|
||||
},
|
||||
{
|
||||
name: 'optionalNumber',
|
||||
propType: 'number',
|
||||
},
|
||||
{
|
||||
name: 'optionalObject',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'optionalString',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'optionalSymbol',
|
||||
propType: {
|
||||
type: 'symbol',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalNode',
|
||||
propType: 'node',
|
||||
},
|
||||
{
|
||||
name: 'optionalElement',
|
||||
propType: 'element',
|
||||
},
|
||||
{
|
||||
name: 'optionalElementType',
|
||||
propType: {
|
||||
type: 'elementType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalMessage',
|
||||
propType: {
|
||||
type: 'instanceOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalEnum',
|
||||
propType: {
|
||||
type: 'oneOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalUnion',
|
||||
propType: {
|
||||
type: 'oneOfType',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalArrayOf',
|
||||
propType: {
|
||||
type: 'arrayOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectOf',
|
||||
propType: {
|
||||
type: 'objectOf',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape2',
|
||||
propType: {
|
||||
type: 'shape',
|
||||
value: undefined,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithStrictShape',
|
||||
propType: {
|
||||
type: 'exact',
|
||||
value: undefined,
|
||||
},
|
||||
propType: 'exact',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'requiredFunc',
|
||||
|
||||
Binary file not shown.
@ -2,7 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `ReactParser.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## parse es6 multiple exported component by local
|
||||
|
||||
@ -173,59 +173,39 @@ Generated by [AVA](https://ava.li).
|
||||
source: '../utils/HOCFlexLayoutProps',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleFlexLayout',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'id',
|
||||
required: false,
|
||||
type: 'string',
|
||||
},
|
||||
],
|
||||
subModules: [
|
||||
{
|
||||
isValueAnonymousFunc: false,
|
||||
objectName: [
|
||||
'merged',
|
||||
],
|
||||
propertyName: 'id',
|
||||
value: 'id',
|
||||
propType: 'string',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
},
|
||||
{
|
||||
componentNames: [
|
||||
@ -304,47 +284,36 @@ Generated by [AVA](https://ava.li).
|
||||
source: './IconFont',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
name: 'className',
|
||||
required: false,
|
||||
type: 'string',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'iconClassName',
|
||||
required: false,
|
||||
type: 'string',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
subModules: [
|
||||
@ -430,22 +399,15 @@ Generated by [AVA](https://ava.li).
|
||||
source: '../utils/HOCBoxModelProps',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
@ -537,42 +499,32 @@ Generated by [AVA](https://ava.li).
|
||||
source: '../utils/HOCBackgroundProps',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
@ -644,32 +596,24 @@ Generated by [AVA](https://ava.li).
|
||||
source: '../utils/HOCLayoutProps',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
@ -756,47 +700,36 @@ Generated by [AVA](https://ava.li).
|
||||
source: '../utils/HOCBackgroundProps',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: '{}',
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
name: 'type',
|
||||
required: false,
|
||||
type: 'string',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'styleBoxModel',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleText',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleLayout',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'styleBackground',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
@ -853,26 +786,16 @@ Generated by [AVA](https://ava.li).
|
||||
source: 'prop-types',
|
||||
},
|
||||
],
|
||||
propsDefaults: [
|
||||
{
|
||||
defaultValue: `{␊
|
||||
padding: 0,␊
|
||||
backgroundColor: '#f0f2f5',␊
|
||||
minHeight: '100%'␊
|
||||
}`,
|
||||
name: 'style',
|
||||
},
|
||||
],
|
||||
propsDefaults: [],
|
||||
propsTypes: [
|
||||
{
|
||||
name: 'style',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'children',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
@ -935,103 +858,124 @@ Generated by [AVA](https://ava.li).
|
||||
propsTypes: [
|
||||
{
|
||||
name: 'optionalArray',
|
||||
required: false,
|
||||
type: 'array',
|
||||
propType: 'array',
|
||||
},
|
||||
{
|
||||
name: 'optionalBool',
|
||||
required: false,
|
||||
type: 'bool',
|
||||
propType: 'bool',
|
||||
},
|
||||
{
|
||||
name: 'optionalFunc',
|
||||
required: false,
|
||||
type: 'func',
|
||||
propType: 'func',
|
||||
},
|
||||
{
|
||||
name: 'optionalNumber',
|
||||
required: false,
|
||||
type: 'number',
|
||||
propType: 'number',
|
||||
},
|
||||
{
|
||||
name: 'optionalObject',
|
||||
required: false,
|
||||
type: 'object',
|
||||
propType: 'object',
|
||||
},
|
||||
{
|
||||
name: 'optionalString',
|
||||
required: false,
|
||||
type: 'string',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
name: 'optionalSymbol',
|
||||
required: false,
|
||||
type: 'symbol',
|
||||
propType: 'symbol',
|
||||
},
|
||||
{
|
||||
name: 'optionalNode',
|
||||
required: false,
|
||||
type: 'node',
|
||||
propType: 'node',
|
||||
},
|
||||
{
|
||||
name: 'optionalElement',
|
||||
required: false,
|
||||
type: 'element',
|
||||
propType: 'element',
|
||||
},
|
||||
{
|
||||
name: 'optionalElementType',
|
||||
required: false,
|
||||
type: 'elementType',
|
||||
propType: 'elementType',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalMessage',
|
||||
required: false,
|
||||
type: 'instanceOf',
|
||||
propType: 'instanceOf',
|
||||
},
|
||||
{
|
||||
0: '\'News\'',
|
||||
1: '\'Photos\'',
|
||||
name: 'optionalEnum',
|
||||
required: false,
|
||||
type: 'oneOf',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalUnion',
|
||||
required: false,
|
||||
type: 'oneOfType',
|
||||
propType: 'union',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalArrayOf',
|
||||
required: false,
|
||||
type: 'arrayOf',
|
||||
propType: 'arrayOf',
|
||||
},
|
||||
{
|
||||
isRequired: undefined,
|
||||
name: 'optionalObjectOf',
|
||||
required: false,
|
||||
type: 'objectOf',
|
||||
propType: 'objectOf',
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape',
|
||||
required: false,
|
||||
type: 'shape',
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithShape2',
|
||||
required: true,
|
||||
type: 'shape',
|
||||
propType: 'shape',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'optionalObjectWithStrictShape',
|
||||
required: false,
|
||||
type: 'exact',
|
||||
propType: 'exact',
|
||||
value: [
|
||||
{
|
||||
isRequired: false,
|
||||
name: 'optionalProperty',
|
||||
propType: 'string',
|
||||
},
|
||||
{
|
||||
isRequired: true,
|
||||
name: 'requiredProperty',
|
||||
propType: 'number',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'requiredFunc',
|
||||
required: false,
|
||||
type: 'func',
|
||||
propType: 'func',
|
||||
},
|
||||
{
|
||||
name: 'requiredAny',
|
||||
required: false,
|
||||
type: 'any',
|
||||
propType: 'any',
|
||||
},
|
||||
],
|
||||
subModules: [],
|
||||
|
||||
Binary file not shown.
@ -2,7 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `Scanner.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## scan multiple exported component
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
The actual snapshot is saved in `index.ts.snap`.
|
||||
|
||||
Generated by [AVA](https://ava.li).
|
||||
Generated by [AVA](https://avajs.dev).
|
||||
|
||||
## should be right in dir basic-error
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakeBlank","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakeBlank","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":{"type":"oneOfType"}},{"name":"styleBoxModel","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"styleFlexLayout","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"},{"name":"id","propType":"string"}]}
|
||||
{"componentName":"AIMakeBlank","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakeBlank","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":"union"},{"name":"styleBoxModel","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"styleFlexLayout","propType":"object"},{"name":"style","propType":"object"},{"name":"id","propType":"string"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakeIcon","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakeIcon","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"className","propType":"string"},{"name":"iconClassName","propType":"string"},{"name":"children","propType":{"type":"oneOfType"}},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"}]}
|
||||
{"componentName":"AIMakeIcon","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakeIcon","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"className","propType":"string"},{"name":"iconClassName","propType":"string"},{"name":"children","propType":"union"},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakeImage","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakeImage","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"styleBoxModel","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"}]}
|
||||
{"componentName":"AIMakeImage","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakeImage","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"styleBoxModel","propType":"object"},{"name":"style","propType":"object"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakeLink","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakeLink","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":{"type":"oneOfType"}},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"}]}
|
||||
{"componentName":"AIMakeLink","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakeLink","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":"union"},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakePlaceholder","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakePlaceholder","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":{"type":"oneOfType"}},{"name":"styleBoxModel","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"}]}
|
||||
{"componentName":"AIMakePlaceholder","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakePlaceholder","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":"union"},{"name":"styleBoxModel","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"style","propType":"object"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"AIMakeText","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"AIMakeText","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":{"type":"oneOfType"}},{"name":"type","propType":"string"},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object","defaultValue":"{}"}]}
|
||||
{"componentName":"AIMakeText","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"AIMakeText","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"children","propType":"union"},{"name":"type","propType":"string"},{"name":"styleBoxModel","propType":"object"},{"name":"styleText","propType":"object"},{"name":"styleLayout","propType":"object"},{"name":"styleBackground","propType":"object"},{"name":"style","propType":"object"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"Root","title":"","docUrl":"","screenshot":"","npm":{"package":"multiple-exported-component","version":"1.0.0","exportName":"Root","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"style","propType":"object","defaultValue":"{\n padding: 0,\n backgroundColor: '#f0f2f5',\n minHeight: '100%'\n}"},{"name":"children","propType":{"type":"oneOfType"}}]}
|
||||
{"componentName":"Root","title":"","docUrl":"","screenshot":"","npm":{"package":"@ali/lowcode-engine-material-parser","version":"0.1.0","exportName":"Root","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/multiple-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"style","propType":"object"},{"name":"children","propType":"union"}]}
|
||||
@ -1 +1 @@
|
||||
{"componentName":"Demo","title":"","docUrl":"","screenshot":"","npm":{"package":"single-exported-component","version":"1.0.0","exportName":"Demo","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/single-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"optionalArray","propType":"array"},{"name":"optionalBool","propType":"bool"},{"name":"optionalFunc","propType":"func"},{"name":"optionalNumber","propType":"number"},{"name":"optionalObject","propType":"object"},{"name":"optionalString","propType":"string"},{"name":"optionalSymbol","propType":{"type":"symbol"}},{"name":"optionalNode","propType":"node"},{"name":"optionalElement","propType":"element"},{"name":"optionalElementType","propType":{"type":"elementType"}},{"name":"optionalMessage","propType":{"type":"instanceOf"}},{"name":"optionalEnum","propType":{"type":"oneOf"}},{"name":"optionalUnion","propType":{"type":"oneOfType"}},{"name":"optionalArrayOf","propType":{"type":"arrayOf"}},{"name":"optionalObjectOf","propType":{"type":"objectOf"}},{"name":"optionalObjectWithShape","propType":{"type":"shape"}},{"name":"optionalObjectWithShape2","propType":{"type":"shape"}},{"name":"optionalObjectWithStrictShape","propType":{"type":"exact"}},{"name":"requiredFunc","propType":"func"},{"name":"requiredAny","propType":"any"}]}
|
||||
{"componentName":"Demo","title":"","docUrl":"","screenshot":"","npm":{"package":"single-exported-component","version":"1.0.0","exportName":"Demo","main":"/Users/gengyang/code/frontend/low-code/ali-lowcode-engine/packages/material-parser/test/fixtures/single-exported-component/es/index.js","destructuring":false,"subName":""},"props":[{"name":"optionalArray","propType":"array"},{"name":"optionalBool","propType":"bool"},{"name":"optionalFunc","propType":"func"},{"name":"optionalNumber","propType":"number"},{"name":"optionalObject","propType":"object"},{"name":"optionalString","propType":"string"},{"name":"optionalSymbol","propType":"symbol"},{"name":"optionalNode","propType":"node"},{"name":"optionalElement","propType":"element"},{"name":"optionalElementType","propType":"elementType"},{"name":"optionalMessage","propType":"instanceOf"},{"0":"'News'","1":"'Photos'","name":"optionalEnum"},{"name":"optionalUnion","propType":"union"},{"name":"optionalArrayOf","propType":"arrayOf"},{"name":"optionalObjectOf","propType":"objectOf"},{"name":"optionalObjectWithShape","propType":"shape","value":[{"name":"optionalProperty","propType":"string","isRequired":false},{"name":"requiredProperty","propType":"number","isRequired":true}]},{"name":"optionalObjectWithShape2","propType":"shape","value":[{"name":"optionalProperty","propType":"string","isRequired":false},{"name":"requiredProperty","propType":"number","isRequired":true}]},{"name":"optionalObjectWithStrictShape","propType":"exact","value":[{"name":"optionalProperty","propType":"string","isRequired":false},{"name":"requiredProperty","propType":"number","isRequired":true}]},{"name":"requiredFunc","propType":"func"},{"name":"requiredAny","propType":"any"}]}
|
||||
@ -43,7 +43,7 @@ test.serial('generate multiple exported components', async t => {
|
||||
t.snapshot(actual);
|
||||
});
|
||||
|
||||
test.serial('generate single exported components', async t => {
|
||||
test.only('generate single exported components', async t => {
|
||||
const options: IMaterializeOptions = {
|
||||
cwd: singleExportedComptPath,
|
||||
entry: singleExportedComptPath,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user