gengyang.gy 430d522353 refactor: material parser code style
1. 修复eslint问题
2. instanceOf => any
3. 修复node类型解析失败问题

Link: https://code.aone.alibaba-inc.com/ali-lowcode/ali-lowcode-engine/codereview/3716330

* refactor: material parser code style
2020-09-12 17:39:13 +08:00

12 KiB

Snapshot report for test/index.ts

The actual snapshot is saved in index.ts.snap.

Generated by AVA.

materialize multiple exported component by local

Snapshot 1

[
  {
    componentName: 'AIMakeBlank',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakeBlank',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleLayout',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleBackground',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleFlexLayout',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
      {
        name: 'id',
        propType: 'string',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'AIMakeIcon',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakeIcon',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'className',
        propType: 'string',
      },
      {
        name: 'iconClassName',
        propType: 'string',
      },
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleText',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleBackground',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'AIMakeImage',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakeImage',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'AIMakeLink',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakeLink',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleText',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleLayout',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleBackground',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'AIMakePlaceholder',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakePlaceholder',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleLayout',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'AIMakeText',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'AIMakeText',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'type',
        propType: 'string',
      },
      {
        name: 'styleBoxModel',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleText',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleLayout',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'styleBackground',
        propType: {
          isRequired: true,
          type: 'object',
        },
      },
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
  {
    componentName: 'Root',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: true,
      exportName: 'Root',
      main: 'es/index.js',
      package: 'multiple-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'style',
        propType: 'object',
      },
    ],
    screenshot: '',
    title: 'multiple-exported-component',
  },
]

materialize single exported component by local

Snapshot 1

[
  {
    componentName: 'Demo',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: false,
      exportName: 'default',
      main: 'src/index.js',
      package: 'single-exported-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'optionalArray',
        propType: 'array',
      },
      {
        name: 'optionalBool',
        propType: 'bool',
      },
      {
        name: 'optionalFunc',
        propType: 'func',
      },
      {
        defaultValue: 123,
        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: 'any',
      },
      {
        name: 'optionalMessage',
        propType: {
          type: 'instanceOf',
          value: 'Demo',
        },
      },
      {
        name: 'optionalEnum',
        propType: {
          type: 'oneOf',
          value: [
            'News',
            'Photos',
          ],
        },
      },
      {
        name: 'optionalUnion',
        propType: {
          type: 'oneOfType',
          value: [
            'string',
            'number',
            {
              type: 'instanceOf',
              value: 'Demo',
            },
          ],
        },
      },
      {
        name: 'optionalObjectOf',
        propType: {
          type: 'objectOf',
          value: 'number',
        },
      },
      {
        name: 'optionalObjectWithShape',
        propType: {
          type: 'shape',
          value: [
            {
              name: 'optionalProperty',
              propType: 'string',
            },
            {
              name: 'requiredProperty',
              propType: {
                isRequired: true,
                type: 'number',
              },
            },
          ],
        },
      },
      {
        name: 'optionalObjectWithShape2',
        propType: {
          isRequired: true,
          type: 'shape',
          value: [
            {
              name: 'optionalProperty',
              propType: 'string',
            },
            {
              name: 'requiredProperty',
              propType: {
                isRequired: true,
                type: 'number',
              },
            },
          ],
        },
      },
      {
        name: 'optionalObjectWithStrictShape',
        propType: {
          type: 'exact',
          value: [
            {
              name: 'optionalProperty',
              propType: 'string',
            },
            {
              name: 'requiredProperty',
              propType: {
                isRequired: true,
                type: 'number',
              },
            },
          ],
        },
      },
      {
        name: 'requiredFunc',
        propType: {
          isRequired: true,
          type: 'func',
        },
      },
      {
        name: 'requiredAny',
        propType: {
          isRequired: true,
          type: 'any',
        },
      },
    ],
    screenshot: '',
    title: 'single-exported-component',
  },
]

ts component by local

Snapshot 1

[
  {
    componentName: 'default',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: false,
      exportName: 'default',
      main: 'src/index.tsx',
      package: 'ts-component',
      subName: '',
      version: '1.0.0',
    },
    props: [
      {
        name: 'node',
        propType: 'node',
      },
    ],
    screenshot: '',
    title: 'ts-component',
  },
  {
    componentName: 'default',
    devMode: 'proCode',
    docUrl: '',
    npm: {
      destructuring: false,
      exportName: 'default',
      main: 'src/index.tsx',
      package: 'ts-component',
      subName: 'SubModule',
      version: '1.0.0',
    },
    props: [
      {
        name: 'name',
        propType: {
          isRequired: true,
          type: 'string',
        },
      },
    ],
    screenshot: '',
    title: 'ts-component',
  },
]