@storybook/react 7.0.0-alpha.6 → 7.0.0-alpha.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-LSK4KSW4.mjs +1 -0
- package/dist/config.d.ts +22 -0
- package/dist/config.js +3 -0
- package/dist/config.mjs +3 -0
- package/dist/index.d.ts +193 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/types-0a347bb9.d.ts +10 -0
- package/jest.config.js +7 -0
- package/package.json +47 -20
- package/preview.js +1 -1
- package/template/cli/.eslintrc.json +5 -0
- package/template/cli/js/Button.jsx +50 -0
- package/template/cli/js/Button.stories.js +39 -0
- package/template/cli/js/Header.jsx +59 -0
- package/template/cli/js/Header.stories.js +22 -0
- package/template/cli/js/Page.jsx +69 -0
- package/template/cli/js/Page.stories.js +25 -0
- package/template/cli/ts/Button.stories.ts +44 -0
- package/template/cli/ts/Button.tsx +48 -0
- package/template/cli/ts/Header.stories.ts +26 -0
- package/template/cli/ts/Header.tsx +56 -0
- package/template/cli/ts/Page.stories.ts +29 -0
- package/template/cli/ts/Page.tsx +73 -0
- package/template/cli/ts-legacy/Button.stories.ts +45 -0
- package/template/cli/ts-legacy/Button.tsx +48 -0
- package/template/cli/ts-legacy/Header.stories.ts +24 -0
- package/template/cli/ts-legacy/Header.tsx +56 -0
- package/template/cli/ts-legacy/Page.stories.ts +29 -0
- package/template/cli/ts-legacy/Page.tsx +73 -0
- package/template/components/Button.jsx +13 -0
- package/template/components/Form.jsx +36 -0
- package/template/components/Html.jsx +9 -0
- package/template/components/Pre.jsx +20 -0
- package/template/components/index.js +9 -0
- package/template/stories/decorators.stories.tsx +28 -0
- package/template/stories/docgen-components/10017-ts-union/argTypes.snapshot +36 -0
- package/template/stories/docgen-components/10017-ts-union/docgen.snapshot +34 -0
- package/template/stories/docgen-components/10017-ts-union/input.tsx +12 -0
- package/template/stories/docgen-components/10017-ts-union/properties.snapshot +32 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/argTypes.snapshot +26 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/docgen.snapshot +49 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/input.tsx +27 -0
- package/template/stories/docgen-components/10278-ts-multiple-components/properties.snapshot +22 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/argTypes.snapshot +127 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/docgen.snapshot +97 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/input.jsx +27 -0
- package/template/stories/docgen-components/8140-js-prop-types-oneof/properties.snapshot +89 -0
- package/template/stories/docgen-components/8143-ts-imported-types/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8143-ts-imported-types/docgen.snapshot +22 -0
- package/template/stories/docgen-components/8143-ts-imported-types/input.tsx +10 -0
- package/template/stories/docgen-components/8143-ts-imported-types/properties.snapshot +23 -0
- package/template/stories/docgen-components/8143-ts-imported-types/types.ts +3 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/docgen.snapshot +24 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/input.tsx +10 -0
- package/template/stories/docgen-components/8143-ts-react-fc-generics/properties.snapshot +21 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot +39 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/input.jsx +20 -0
- package/template/stories/docgen-components/8428-js-static-prop-types/properties.snapshot +21 -0
- package/template/stories/docgen-components/8740-ts-multi-props/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/8740-ts-multi-props/docgen.snapshot +49 -0
- package/template/stories/docgen-components/8740-ts-multi-props/input.tsx +23 -0
- package/template/stories/docgen-components/8740-ts-multi-props/properties.snapshot +21 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/argTypes.snapshot +48 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/docgen.snapshot +39 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/input.tsx +31 -0
- package/template/stories/docgen-components/8894-9511-ts-forward-ref/properties.snapshot +34 -0
- package/template/stories/docgen-components/9023-js-hoc/argTypes.snapshot +89 -0
- package/template/stories/docgen-components/9023-js-hoc/docgen.snapshot +84 -0
- package/template/stories/docgen-components/9023-js-hoc/input.jsx +40 -0
- package/template/stories/docgen-components/9023-js-hoc/properties.snapshot +67 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/argTypes.snapshot +39 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/docgen.snapshot +48 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/input.jsx +16 -0
- package/template/stories/docgen-components/9399-js-proptypes-shape/properties.snapshot +35 -0
- package/template/stories/docgen-components/9465-ts-type-props/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9465-ts-type-props/docgen.snapshot +33 -0
- package/template/stories/docgen-components/9465-ts-type-props/input.tsx +12 -0
- package/template/stories/docgen-components/9465-ts-type-props/properties.snapshot +24 -0
- package/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot +62 -0
- package/template/stories/docgen-components/9493-ts-display-name/docgen.snapshot +50 -0
- package/template/stories/docgen-components/9493-ts-display-name/input.tsx +30 -0
- package/template/stories/docgen-components/9493-ts-display-name/properties.snapshot +52 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot +32 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/input.tsx +12 -0
- package/template/stories/docgen-components/9556-ts-react-default-exports/properties.snapshot +24 -0
- package/template/stories/docgen-components/9575-ts-camel-case/argTypes.snapshot +28 -0
- package/template/stories/docgen-components/9575-ts-camel-case/docgen.snapshot +38 -0
- package/template/stories/docgen-components/9575-ts-camel-case/input.tsx +26 -0
- package/template/stories/docgen-components/9575-ts-camel-case/properties.snapshot +24 -0
- package/template/stories/docgen-components/9586-js-react-memo/argTypes.snapshot +41 -0
- package/template/stories/docgen-components/9586-js-react-memo/docgen.snapshot +42 -0
- package/template/stories/docgen-components/9586-js-react-memo/input.jsx +15 -0
- package/template/stories/docgen-components/9586-js-react-memo/properties.snapshot +34 -0
- package/template/stories/docgen-components/9591-ts-import-types/Bar.tsx +3 -0
- package/template/stories/docgen-components/9591-ts-import-types/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/9591-ts-import-types/docgen.snapshot +21 -0
- package/template/stories/docgen-components/9591-ts-import-types/input.tsx +10 -0
- package/template/stories/docgen-components/9591-ts-import-types/properties.snapshot +21 -0
- package/template/stories/docgen-components/9626-js-default-values/argTypes.snapshot +27 -0
- package/template/stories/docgen-components/9626-js-default-values/docgen.snapshot +25 -0
- package/template/stories/docgen-components/9626-js-default-values/input.jsx +5 -0
- package/template/stories/docgen-components/9626-js-default-values/properties.snapshot +21 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/argTypes.snapshot +42 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/docgen.snapshot +36 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/input.jsx +13 -0
- package/template/stories/docgen-components/9668-js-proptypes-no-jsdoc/properties.snapshot +35 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot +53 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/docgen.snapshot +45 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/input.tsx +18 -0
- package/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot +43 -0
- package/template/stories/docgen-components/9764-ts-extend-props/argTypes.snapshot +72 -0
- package/template/stories/docgen-components/9764-ts-extend-props/docgen.snapshot +41 -0
- package/template/stories/docgen-components/9764-ts-extend-props/input.tsx +17 -0
- package/template/stories/docgen-components/9764-ts-extend-props/properties.snapshot +56 -0
- package/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot +72 -0
- package/template/stories/docgen-components/9827-ts-default-values/docgen.snapshot +52 -0
- package/template/stories/docgen-components/9827-ts-default-values/input.tsx +17 -0
- package/template/stories/docgen-components/9827-ts-default-values/properties.snapshot +56 -0
- package/template/stories/docgen-components/9832-ts-enum-export/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/9832-ts-enum-export/docgen.snapshot +16 -0
- package/template/stories/docgen-components/9832-ts-enum-export/input.tsx +8 -0
- package/template/stories/docgen-components/9832-ts-enum-export/properties.snapshot +7 -0
- package/template/stories/docgen-components/9922-ts-component-props/argTypes.snapshot +25 -0
- package/template/stories/docgen-components/9922-ts-component-props/docgen.snapshot +35 -0
- package/template/stories/docgen-components/9922-ts-component-props/input.tsx +24 -0
- package/template/stories/docgen-components/9922-ts-component-props/properties.snapshot +21 -0
- package/template/stories/docgen-components/imported.js +1 -0
- package/template/stories/docgen-components/js-class-component/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-class-component/docgen.snapshot +252 -0
- package/template/stories/docgen-components/js-class-component/input.jsx +57 -0
- package/template/stories/docgen-components/js-class-component/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-function-component/docgen.snapshot +236 -0
- package/template/stories/docgen-components/js-function-component/input.jsx +50 -0
- package/template/stories/docgen-components/js-function-component/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/argTypes.snapshot +386 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/docgen.snapshot +247 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/input.jsx +65 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults/properties.snapshot +286 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/argTypes.snapshot +237 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/docgen.snapshot +124 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/input.jsx +41 -0
- package/template/stories/docgen-components/js-function-component-inline-defaults-no-propTypes/properties.snapshot +151 -0
- package/template/stories/docgen-components/js-proptypes/docgen.snapshot +1770 -0
- package/template/stories/docgen-components/js-proptypes/ext.js +13 -0
- package/template/stories/docgen-components/js-proptypes/input.jsx +497 -0
- package/template/stories/docgen-components/jsdoc/argTypes.snapshot +969 -0
- package/template/stories/docgen-components/jsdoc/docgen.snapshot +548 -0
- package/template/stories/docgen-components/jsdoc/input.jsx +231 -0
- package/template/stories/docgen-components/jsdoc/properties.snapshot +857 -0
- package/template/stories/docgen-components/ts-function-component/argTypes.snapshot +396 -0
- package/template/stories/docgen-components/ts-function-component/docgen.snapshot +241 -0
- package/template/stories/docgen-components/ts-function-component/input.tsx +52 -0
- package/template/stories/docgen-components/ts-function-component/properties.snapshot +296 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/argTypes.snapshot +279 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/docgen.snapshot +151 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/input.tsx +80 -0
- package/template/stories/docgen-components/ts-function-component-inline-defaults/properties.snapshot +177 -0
- package/template/stories/docgen-components/ts-html/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/ts-html/docgen.snapshot +12 -0
- package/template/stories/docgen-components/ts-html/input.tsx +12 -0
- package/template/stories/docgen-components/ts-html/properties.snapshot +7 -0
- package/template/stories/docgen-components/ts-jsdoc/argTypes.snapshot +3 -0
- package/template/stories/docgen-components/ts-jsdoc/docgen.snapshot +21 -0
- package/template/stories/docgen-components/ts-jsdoc/input.tsx +27 -0
- package/template/stories/docgen-components/ts-jsdoc/properties.snapshot +7 -0
- package/template/stories/docgen-components/ts-types/argTypes.snapshot +656 -0
- package/template/stories/docgen-components/ts-types/docgen.snapshot +317 -0
- package/template/stories/docgen-components/ts-types/input.tsx +130 -0
- package/template/stories/docgen-components/ts-types/properties.snapshot +410 -0
- package/template/stories/errors.stories.tsx +37 -0
- package/template/stories/hooks.stories.tsx +17 -0
- package/template/stories/js-argtypes.stories.jsx +91 -0
- package/template/stories/react-mdx.stories.mdx +26 -0
- package/template/stories/ts-argtypes.stories.tsx +81 -0
- package/LICENSE +0 -21
- package/dist/cjs/config.js +0 -43
- package/dist/cjs/docs/config.js +0 -25
- package/dist/cjs/docs/extractArgTypes.js +0 -47
- package/dist/cjs/docs/extractProps.js +0 -57
- package/dist/cjs/docs/jsxDecorator.js +0 -210
- package/dist/cjs/docs/lib/captions.js +0 -18
- package/dist/cjs/docs/lib/componentTypes.js +0 -14
- package/dist/cjs/docs/lib/defaultValues/createDefaultValue.js +0 -86
- package/dist/cjs/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -206
- package/dist/cjs/docs/lib/defaultValues/generateArray.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/generateObject.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/index.js +0 -31
- package/dist/cjs/docs/lib/defaultValues/prettyIdentifier.js +0 -38
- package/dist/cjs/docs/lib/generateCode.js +0 -74
- package/dist/cjs/docs/lib/index.js +0 -57
- package/dist/cjs/docs/lib/inspection/acornParser.js +0 -230
- package/dist/cjs/docs/lib/inspection/index.js +0 -31
- package/dist/cjs/docs/lib/inspection/inspectValue.js +0 -24
- package/dist/cjs/docs/lib/inspection/types.js +0 -19
- package/dist/cjs/docs/lib/isHtmlTag.js +0 -14
- package/dist/cjs/docs/propTypes/createType.js +0 -458
- package/dist/cjs/docs/propTypes/generateFuncSignature.js +0 -68
- package/dist/cjs/docs/propTypes/handleProp.js +0 -52
- package/dist/cjs/docs/propTypes/rawDefaultPropResolvers.js +0 -43
- package/dist/cjs/docs/propTypes/sortProps.js +0 -21
- package/dist/cjs/docs/react-argtypes.stories.js +0 -67
- package/dist/cjs/docs/typeScript/handleProp.js +0 -38
- package/dist/cjs/index.js +0 -98
- package/dist/cjs/preview/config.js +0 -19
- package/dist/cjs/preview/globals.js +0 -13
- package/dist/cjs/preview/index.js +0 -44
- package/dist/cjs/preview/render.js +0 -166
- package/dist/cjs/preview/types-6-0.js +0 -5
- package/dist/cjs/preview/types-6-3.js +0 -18
- package/dist/cjs/preview/types-7-0.js +0 -5
- package/dist/cjs/preview/types.js +0 -5
- package/dist/cjs/testing/index.js +0 -113
- package/dist/esm/config.js +0 -6
- package/dist/esm/docs/config.js +0 -12
- package/dist/esm/docs/extractArgTypes.js +0 -37
- package/dist/esm/docs/extractProps.js +0 -42
- package/dist/esm/docs/jsxDecorator.js +0 -170
- package/dist/esm/docs/lib/captions.js +0 -6
- package/dist/esm/docs/lib/componentTypes.js +0 -2
- package/dist/esm/docs/lib/defaultValues/createDefaultValue.js +0 -72
- package/dist/esm/docs/lib/defaultValues/createFromRawDefaultProp.js +0 -183
- package/dist/esm/docs/lib/defaultValues/generateArray.js +0 -21
- package/dist/esm/docs/lib/defaultValues/generateObject.js +0 -21
- package/dist/esm/docs/lib/defaultValues/index.js +0 -2
- package/dist/esm/docs/lib/defaultValues/prettyIdentifier.js +0 -26
- package/dist/esm/docs/lib/generateCode.js +0 -59
- package/dist/esm/docs/lib/index.js +0 -4
- package/dist/esm/docs/lib/inspection/acornParser.js +0 -211
- package/dist/esm/docs/lib/inspection/index.js +0 -2
- package/dist/esm/docs/lib/inspection/inspectValue.js +0 -15
- package/dist/esm/docs/lib/inspection/types.js +0 -12
- package/dist/esm/docs/lib/isHtmlTag.js +0 -4
- package/dist/esm/docs/propTypes/createType.js +0 -447
- package/dist/esm/docs/propTypes/generateFuncSignature.js +0 -57
- package/dist/esm/docs/propTypes/handleProp.js +0 -39
- package/dist/esm/docs/propTypes/rawDefaultPropResolvers.js +0 -31
- package/dist/esm/docs/propTypes/sortProps.js +0 -14
- package/dist/esm/docs/react-argtypes.stories.js +0 -54
- package/dist/esm/docs/typeScript/handleProp.js +0 -28
- package/dist/esm/index.js +0 -5
- package/dist/esm/preview/config.js +0 -1
- package/dist/esm/preview/globals.js +0 -8
- package/dist/esm/preview/index.js +0 -21
- package/dist/esm/preview/render.js +0 -142
- package/dist/esm/preview/types-6-0.js +0 -1
- package/dist/esm/preview/types-6-3.js +0 -10
- package/dist/esm/preview/types-7-0.js +0 -1
- package/dist/esm/preview/types.js +0 -1
- package/dist/esm/testing/index.js +0 -97
- package/dist/types/config.d.ts +0 -10
- package/dist/types/docs/config.d.ts +0 -10
- package/dist/types/docs/extractArgTypes.d.ts +0 -2
- package/dist/types/docs/extractProps.d.ts +0 -9
- package/dist/types/docs/jsxDecorator.d.ts +0 -23
- package/dist/types/docs/lib/captions.d.ts +0 -6
- package/dist/types/docs/lib/componentTypes.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/createDefaultValue.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/createFromRawDefaultProp.d.ts +0 -11
- package/dist/types/docs/lib/defaultValues/generateArray.d.ts +0 -3
- package/dist/types/docs/lib/defaultValues/generateObject.d.ts +0 -3
- package/dist/types/docs/lib/defaultValues/index.d.ts +0 -2
- package/dist/types/docs/lib/defaultValues/prettyIdentifier.d.ts +0 -4
- package/dist/types/docs/lib/generateCode.d.ts +0 -3
- package/dist/types/docs/lib/index.d.ts +0 -4
- package/dist/types/docs/lib/inspection/acornParser.d.ts +0 -7
- package/dist/types/docs/lib/inspection/index.d.ts +0 -2
- package/dist/types/docs/lib/inspection/inspectValue.d.ts +0 -2
- package/dist/types/docs/lib/inspection/types.d.ts +0 -50
- package/dist/types/docs/lib/isHtmlTag.d.ts +0 -1
- package/dist/types/docs/propTypes/createType.d.ts +0 -2
- package/dist/types/docs/propTypes/generateFuncSignature.d.ts +0 -4
- package/dist/types/docs/propTypes/handleProp.d.ts +0 -5
- package/dist/types/docs/propTypes/rawDefaultPropResolvers.d.ts +0 -1
- package/dist/types/docs/propTypes/sortProps.d.ts +0 -4
- package/dist/types/docs/react-argtypes.stories.d.ts +0 -1
- package/dist/types/docs/typeScript/handleProp.d.ts +0 -3
- package/dist/types/index.d.ts +0 -4
- package/dist/types/preview/config.d.ts +0 -1
- package/dist/types/preview/globals.d.ts +0 -1
- package/dist/types/preview/index.d.ts +0 -25
- package/dist/types/preview/render.d.ts +0 -5
- package/dist/types/preview/types-6-0.d.ts +0 -35
- package/dist/types/preview/types-6-3.d.ts +0 -40
- package/dist/types/preview/types-7-0.d.ts +0 -21
- package/dist/types/preview/types.d.ts +0 -16
- package/dist/types/testing/index.d.ts +0 -84
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createDefaultValueFromRawDefaultProp = createDefaultValueFromRawDefaultProp;
|
|
7
|
-
exports.createTypeResolvers = createTypeResolvers;
|
|
8
|
-
exports.extractFunctionName = extractFunctionName;
|
|
9
|
-
|
|
10
|
-
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
|
|
11
|
-
|
|
12
|
-
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
13
|
-
|
|
14
|
-
var _isString = _interopRequireDefault(require("lodash/isString"));
|
|
15
|
-
|
|
16
|
-
var _reactElementToJsxString = _interopRequireDefault(require("react-element-to-jsx-string"));
|
|
17
|
-
|
|
18
|
-
var _docsTools = require("@storybook/docs-tools");
|
|
19
|
-
|
|
20
|
-
var _inspection = require("../inspection");
|
|
21
|
-
|
|
22
|
-
var _generateObject = require("./generateObject");
|
|
23
|
-
|
|
24
|
-
var _generateArray = require("./generateArray");
|
|
25
|
-
|
|
26
|
-
var _prettyIdentifier = require("./prettyIdentifier");
|
|
27
|
-
|
|
28
|
-
var _captions = require("../captions");
|
|
29
|
-
|
|
30
|
-
var _isHtmlTag = require("../isHtmlTag");
|
|
31
|
-
|
|
32
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
|
-
|
|
34
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
35
|
-
// @ts-ignore
|
|
36
|
-
function isReactElement(element) {
|
|
37
|
-
return element.$$typeof != null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function extractFunctionName(func, propName) {
|
|
41
|
-
const {
|
|
42
|
-
name
|
|
43
|
-
} = func; // Comparison with the prop name is to discard inferred function names.
|
|
44
|
-
|
|
45
|
-
if (name !== '' && name !== 'anonymous' && name !== propName) {
|
|
46
|
-
return name;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const stringResolver = rawDefaultProp => {
|
|
53
|
-
return (0, _docsTools.createSummaryValue)(JSON.stringify(rawDefaultProp));
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
function generateReactObject(rawDefaultProp) {
|
|
57
|
-
const {
|
|
58
|
-
type
|
|
59
|
-
} = rawDefaultProp;
|
|
60
|
-
const {
|
|
61
|
-
displayName
|
|
62
|
-
} = type;
|
|
63
|
-
const jsx = (0, _reactElementToJsxString.default)(rawDefaultProp, {});
|
|
64
|
-
|
|
65
|
-
if (displayName != null) {
|
|
66
|
-
const prettyIdentifier = (0, _prettyIdentifier.getPrettyElementIdentifier)(displayName);
|
|
67
|
-
return (0, _docsTools.createSummaryValue)(prettyIdentifier, jsx);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if ((0, _isString.default)(type)) {
|
|
71
|
-
// This is an HTML element.
|
|
72
|
-
if ((0, _isHtmlTag.isHtmlTag)(type)) {
|
|
73
|
-
const jsxCompact = (0, _reactElementToJsxString.default)(rawDefaultProp, {
|
|
74
|
-
tabStop: 0
|
|
75
|
-
});
|
|
76
|
-
const jsxSummary = jsxCompact.replace(/\r?\n|\r/g, '');
|
|
77
|
-
|
|
78
|
-
if (!(0, _docsTools.isTooLongForDefaultValueSummary)(jsxSummary)) {
|
|
79
|
-
return (0, _docsTools.createSummaryValue)(jsxSummary);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return (0, _docsTools.createSummaryValue)(_captions.ELEMENT_CAPTION, jsx);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const objectResolver = rawDefaultProp => {
|
|
88
|
-
if (isReactElement(rawDefaultProp) && rawDefaultProp.type != null) {
|
|
89
|
-
return generateReactObject(rawDefaultProp);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if ((0, _isPlainObject.default)(rawDefaultProp)) {
|
|
93
|
-
const inspectionResult = (0, _inspection.inspectValue)(JSON.stringify(rawDefaultProp));
|
|
94
|
-
return (0, _generateObject.generateObject)(inspectionResult);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (Array.isArray(rawDefaultProp)) {
|
|
98
|
-
const inspectionResult = (0, _inspection.inspectValue)(JSON.stringify(rawDefaultProp));
|
|
99
|
-
return (0, _generateArray.generateArray)(inspectionResult);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return (0, _docsTools.createSummaryValue)(_captions.OBJECT_CAPTION);
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
const functionResolver = (rawDefaultProp, propDef) => {
|
|
106
|
-
let isElement = false;
|
|
107
|
-
let inspectionResult; // Try to display the name of the component. The body of the component is omitted since the code has been transpiled.
|
|
108
|
-
|
|
109
|
-
if ((0, _isFunction.default)(rawDefaultProp.render)) {
|
|
110
|
-
isElement = true;
|
|
111
|
-
} else if (rawDefaultProp.prototype != null && (0, _isFunction.default)(rawDefaultProp.prototype.render)) {
|
|
112
|
-
isElement = true;
|
|
113
|
-
} else {
|
|
114
|
-
let innerElement;
|
|
115
|
-
|
|
116
|
-
try {
|
|
117
|
-
inspectionResult = (0, _inspection.inspectValue)(rawDefaultProp.toString());
|
|
118
|
-
const {
|
|
119
|
-
hasParams,
|
|
120
|
-
params
|
|
121
|
-
} = inspectionResult.inferredType;
|
|
122
|
-
|
|
123
|
-
if (hasParams) {
|
|
124
|
-
// It might be a functional component accepting props.
|
|
125
|
-
if (params.length === 1 && params[0].type === 'ObjectPattern') {
|
|
126
|
-
innerElement = rawDefaultProp({});
|
|
127
|
-
}
|
|
128
|
-
} else {
|
|
129
|
-
innerElement = rawDefaultProp();
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (innerElement != null) {
|
|
133
|
-
if (isReactElement(innerElement)) {
|
|
134
|
-
isElement = true;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
} catch (e) {// do nothing.
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const funcName = extractFunctionName(rawDefaultProp, propDef.name);
|
|
142
|
-
|
|
143
|
-
if (funcName != null) {
|
|
144
|
-
if (isElement) {
|
|
145
|
-
return (0, _docsTools.createSummaryValue)((0, _prettyIdentifier.getPrettyElementIdentifier)(funcName));
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (inspectionResult != null) {
|
|
149
|
-
inspectionResult = (0, _inspection.inspectValue)(rawDefaultProp.toString());
|
|
150
|
-
} // @ts-ignore
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const {
|
|
154
|
-
hasParams
|
|
155
|
-
} = inspectionResult.inferredType;
|
|
156
|
-
return (0, _docsTools.createSummaryValue)((0, _prettyIdentifier.getPrettyFuncIdentifier)(funcName, hasParams));
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
return (0, _docsTools.createSummaryValue)(isElement ? _captions.ELEMENT_CAPTION : _captions.FUNCTION_CAPTION);
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
const defaultResolver = rawDefaultProp => {
|
|
163
|
-
return (0, _docsTools.createSummaryValue)(rawDefaultProp.toString());
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
const DEFAULT_TYPE_RESOLVERS = {
|
|
167
|
-
string: stringResolver,
|
|
168
|
-
object: objectResolver,
|
|
169
|
-
function: functionResolver,
|
|
170
|
-
default: defaultResolver
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
function createTypeResolvers(customResolvers = {}) {
|
|
174
|
-
return Object.assign({}, DEFAULT_TYPE_RESOLVERS, customResolvers);
|
|
175
|
-
} // When react-docgen cannot provide a defaultValue we take it from the raw defaultProp.
|
|
176
|
-
// It works fine for types that are not transpiled. For the types that are transpiled, we can only provide partial support.
|
|
177
|
-
// This means that:
|
|
178
|
-
// - The detail might not be available.
|
|
179
|
-
// - Identifiers might not be "prettified" for all the types.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
function createDefaultValueFromRawDefaultProp(rawDefaultProp, propDef, typeResolvers = DEFAULT_TYPE_RESOLVERS) {
|
|
183
|
-
try {
|
|
184
|
-
// Keep the extra () otherwise it will fail for functions.
|
|
185
|
-
switch (typeof rawDefaultProp) {
|
|
186
|
-
case 'string':
|
|
187
|
-
return typeResolvers.string(rawDefaultProp, propDef);
|
|
188
|
-
|
|
189
|
-
case 'object':
|
|
190
|
-
return typeResolvers.object(rawDefaultProp, propDef);
|
|
191
|
-
|
|
192
|
-
case 'function':
|
|
193
|
-
{
|
|
194
|
-
return typeResolvers.function(rawDefaultProp, propDef);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
default:
|
|
198
|
-
return typeResolvers.default(rawDefaultProp, propDef);
|
|
199
|
-
}
|
|
200
|
-
} catch (e) {
|
|
201
|
-
// eslint-disable-next-line no-console
|
|
202
|
-
console.error(e);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateArray = generateArray;
|
|
7
|
-
|
|
8
|
-
var _docsTools = require("@storybook/docs-tools");
|
|
9
|
-
|
|
10
|
-
var _captions = require("../captions");
|
|
11
|
-
|
|
12
|
-
var _generateCode = require("../generateCode");
|
|
13
|
-
|
|
14
|
-
function generateArray({
|
|
15
|
-
inferredType,
|
|
16
|
-
ast
|
|
17
|
-
}) {
|
|
18
|
-
const {
|
|
19
|
-
depth
|
|
20
|
-
} = inferredType;
|
|
21
|
-
|
|
22
|
-
if (depth <= 2) {
|
|
23
|
-
const compactArray = (0, _generateCode.generateArrayCode)(ast, true);
|
|
24
|
-
|
|
25
|
-
if (!(0, _docsTools.isTooLongForDefaultValueSummary)(compactArray)) {
|
|
26
|
-
return (0, _docsTools.createSummaryValue)(compactArray);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return (0, _docsTools.createSummaryValue)(_captions.ARRAY_CAPTION, (0, _generateCode.generateArrayCode)(ast));
|
|
31
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateObject = generateObject;
|
|
7
|
-
|
|
8
|
-
var _docsTools = require("@storybook/docs-tools");
|
|
9
|
-
|
|
10
|
-
var _captions = require("../captions");
|
|
11
|
-
|
|
12
|
-
var _generateCode = require("../generateCode");
|
|
13
|
-
|
|
14
|
-
function generateObject({
|
|
15
|
-
inferredType,
|
|
16
|
-
ast
|
|
17
|
-
}) {
|
|
18
|
-
const {
|
|
19
|
-
depth
|
|
20
|
-
} = inferredType;
|
|
21
|
-
|
|
22
|
-
if (depth === 1) {
|
|
23
|
-
const compactObject = (0, _generateCode.generateObjectCode)(ast, true);
|
|
24
|
-
|
|
25
|
-
if (!(0, _docsTools.isTooLongForDefaultValueSummary)(compactObject)) {
|
|
26
|
-
return (0, _docsTools.createSummaryValue)(compactObject);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return (0, _docsTools.createSummaryValue)(_captions.OBJECT_CAPTION, (0, _generateCode.generateObjectCode)(ast));
|
|
31
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
var _createDefaultValue = require("./createDefaultValue");
|
|
8
|
-
|
|
9
|
-
Object.keys(_createDefaultValue).forEach(function (key) {
|
|
10
|
-
if (key === "default" || key === "__esModule") return;
|
|
11
|
-
if (key in exports && exports[key] === _createDefaultValue[key]) return;
|
|
12
|
-
Object.defineProperty(exports, key, {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _createDefaultValue[key];
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
var _createFromRawDefaultProp = require("./createFromRawDefaultProp");
|
|
21
|
-
|
|
22
|
-
Object.keys(_createFromRawDefaultProp).forEach(function (key) {
|
|
23
|
-
if (key === "default" || key === "__esModule") return;
|
|
24
|
-
if (key in exports && exports[key] === _createFromRawDefaultProp[key]) return;
|
|
25
|
-
Object.defineProperty(exports, key, {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function () {
|
|
28
|
-
return _createFromRawDefaultProp[key];
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getPrettyElementIdentifier = getPrettyElementIdentifier;
|
|
7
|
-
exports.getPrettyFuncIdentifier = getPrettyFuncIdentifier;
|
|
8
|
-
exports.getPrettyIdentifier = getPrettyIdentifier;
|
|
9
|
-
|
|
10
|
-
var _inspection = require("../inspection");
|
|
11
|
-
|
|
12
|
-
function getPrettyFuncIdentifier(identifier, hasArguments) {
|
|
13
|
-
return hasArguments ? `${identifier}( ... )` : `${identifier}()`;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function getPrettyElementIdentifier(identifier) {
|
|
17
|
-
return `<${identifier} />`;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function getPrettyIdentifier(inferredType) {
|
|
21
|
-
const {
|
|
22
|
-
type,
|
|
23
|
-
identifier
|
|
24
|
-
} = inferredType;
|
|
25
|
-
|
|
26
|
-
switch (type) {
|
|
27
|
-
case _inspection.InspectionType.FUNCTION:
|
|
28
|
-
// @ts-ignore
|
|
29
|
-
return getPrettyFuncIdentifier(identifier, inferredType.hasParams);
|
|
30
|
-
|
|
31
|
-
case _inspection.InspectionType.ELEMENT:
|
|
32
|
-
// @ts-ignore
|
|
33
|
-
return getPrettyElementIdentifier(identifier);
|
|
34
|
-
|
|
35
|
-
default:
|
|
36
|
-
return identifier;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.generateArrayCode = generateArrayCode;
|
|
7
|
-
exports.generateCode = generateCode;
|
|
8
|
-
exports.generateObjectCode = generateObjectCode;
|
|
9
|
-
|
|
10
|
-
var _escodegen = require("escodegen");
|
|
11
|
-
|
|
12
|
-
var _tsDedent = _interopRequireDefault(require("ts-dedent"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
const BASIC_OPTIONS = {
|
|
17
|
-
format: {
|
|
18
|
-
indent: {
|
|
19
|
-
style: ' '
|
|
20
|
-
},
|
|
21
|
-
semicolons: false
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
const COMPACT_OPTIONS = Object.assign({}, BASIC_OPTIONS, {
|
|
25
|
-
format: {
|
|
26
|
-
newline: ''
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
const PRETTY_OPTIONS = Object.assign({}, BASIC_OPTIONS);
|
|
30
|
-
|
|
31
|
-
function generateCode(ast, compact = false) {
|
|
32
|
-
return (0, _escodegen.generate)(ast, compact ? COMPACT_OPTIONS : PRETTY_OPTIONS);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function generateObjectCode(ast, compact = false) {
|
|
36
|
-
return !compact ? generateCode(ast) : generateCompactObjectCode(ast);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function generateCompactObjectCode(ast) {
|
|
40
|
-
let result = generateCode(ast, true); // Cannot get escodegen to add a space before the last } with the compact mode settings.
|
|
41
|
-
// Fix it until a better solution is found.
|
|
42
|
-
|
|
43
|
-
if (!result.endsWith(' }')) {
|
|
44
|
-
result = `${result.slice(0, -1)} }`;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function generateArrayCode(ast, compact = false) {
|
|
51
|
-
return !compact ? generateMultilineArrayCode(ast) : generateCompactArrayCode(ast);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function generateMultilineArrayCode(ast) {
|
|
55
|
-
let result = generateCode(ast); // escodegen add extra spacing before the closing bracket of a multiple line array with a nested object.
|
|
56
|
-
// Fix it until a better solution is found.
|
|
57
|
-
|
|
58
|
-
if (result.endsWith(' }]')) {
|
|
59
|
-
result = (0, _tsDedent.default)(result);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function generateCompactArrayCode(ast) {
|
|
66
|
-
let result = generateCode(ast, true); // escodegen add extra an extra before the opening bracket of a compact array that contains primitive values.
|
|
67
|
-
// Fix it until a better solution is found.
|
|
68
|
-
|
|
69
|
-
if (result.startsWith('[ ')) {
|
|
70
|
-
result = result.replace('[ ', '[');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
var _captions = require("./captions");
|
|
8
|
-
|
|
9
|
-
Object.keys(_captions).forEach(function (key) {
|
|
10
|
-
if (key === "default" || key === "__esModule") return;
|
|
11
|
-
if (key in exports && exports[key] === _captions[key]) return;
|
|
12
|
-
Object.defineProperty(exports, key, {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _captions[key];
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
var _isHtmlTag = require("./isHtmlTag");
|
|
21
|
-
|
|
22
|
-
Object.keys(_isHtmlTag).forEach(function (key) {
|
|
23
|
-
if (key === "default" || key === "__esModule") return;
|
|
24
|
-
if (key in exports && exports[key] === _isHtmlTag[key]) return;
|
|
25
|
-
Object.defineProperty(exports, key, {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function () {
|
|
28
|
-
return _isHtmlTag[key];
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
var _generateCode = require("./generateCode");
|
|
34
|
-
|
|
35
|
-
Object.keys(_generateCode).forEach(function (key) {
|
|
36
|
-
if (key === "default" || key === "__esModule") return;
|
|
37
|
-
if (key in exports && exports[key] === _generateCode[key]) return;
|
|
38
|
-
Object.defineProperty(exports, key, {
|
|
39
|
-
enumerable: true,
|
|
40
|
-
get: function () {
|
|
41
|
-
return _generateCode[key];
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
var _componentTypes = require("./componentTypes");
|
|
47
|
-
|
|
48
|
-
Object.keys(_componentTypes).forEach(function (key) {
|
|
49
|
-
if (key === "default" || key === "__esModule") return;
|
|
50
|
-
if (key in exports && exports[key] === _componentTypes[key]) return;
|
|
51
|
-
Object.defineProperty(exports, key, {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
get: function () {
|
|
54
|
-
return _componentTypes[key];
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
});
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parse = parse;
|
|
7
|
-
|
|
8
|
-
var _acorn = require("acorn");
|
|
9
|
-
|
|
10
|
-
var _acornJsx = _interopRequireDefault(require("acorn-jsx"));
|
|
11
|
-
|
|
12
|
-
var acornWalk = _interopRequireWildcard(require("acorn-walk"));
|
|
13
|
-
|
|
14
|
-
var _types = require("./types");
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
const ACORN_WALK_VISITORS = Object.assign({}, acornWalk.base, {
|
|
23
|
-
JSXElement: () => {}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
const acornParser = _acorn.Parser.extend((0, _acornJsx.default)()); // Cannot use "estree.Identifier" type because this function also support "JSXIdentifier".
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
function extractIdentifierName(identifierNode) {
|
|
30
|
-
return identifierNode != null ? identifierNode.name : null;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function filterAncestors(ancestors) {
|
|
34
|
-
return ancestors.filter(x => x.type === 'ObjectExpression' || x.type === 'ArrayExpression');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function calculateNodeDepth(node) {
|
|
38
|
-
const depths = [];
|
|
39
|
-
acornWalk.ancestor( // @ts-ignore
|
|
40
|
-
node, {
|
|
41
|
-
ObjectExpression(_, ancestors) {
|
|
42
|
-
depths.push(filterAncestors(ancestors).length);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
ArrayExpression(_, ancestors) {
|
|
46
|
-
depths.push(filterAncestors(ancestors).length);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
}, ACORN_WALK_VISITORS);
|
|
50
|
-
return Math.max(...depths);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function parseIdentifier(identifierNode) {
|
|
54
|
-
return {
|
|
55
|
-
inferredType: {
|
|
56
|
-
type: _types.InspectionType.IDENTIFIER,
|
|
57
|
-
identifier: extractIdentifierName(identifierNode)
|
|
58
|
-
},
|
|
59
|
-
ast: identifierNode
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function parseLiteral(literalNode) {
|
|
64
|
-
return {
|
|
65
|
-
inferredType: {
|
|
66
|
-
type: _types.InspectionType.LITERAL
|
|
67
|
-
},
|
|
68
|
-
ast: literalNode
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function parseFunction(funcNode) {
|
|
73
|
-
let innerJsxElementNode; // If there is at least a JSXElement in the body of the function, then it's a React component.
|
|
74
|
-
|
|
75
|
-
acornWalk.simple( // @ts-ignore
|
|
76
|
-
funcNode.body, {
|
|
77
|
-
JSXElement(node) {
|
|
78
|
-
innerJsxElementNode = node;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
}, ACORN_WALK_VISITORS);
|
|
82
|
-
const isJsx = innerJsxElementNode != null;
|
|
83
|
-
const inferredType = {
|
|
84
|
-
type: isJsx ? _types.InspectionType.ELEMENT : _types.InspectionType.FUNCTION,
|
|
85
|
-
params: funcNode.params,
|
|
86
|
-
hasParams: funcNode.params.length !== 0
|
|
87
|
-
};
|
|
88
|
-
const identifierName = extractIdentifierName(funcNode.id);
|
|
89
|
-
|
|
90
|
-
if (identifierName != null) {
|
|
91
|
-
inferredType.identifier = identifierName;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
return {
|
|
95
|
-
inferredType,
|
|
96
|
-
ast: funcNode
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function parseClass(classNode) {
|
|
101
|
-
let innerJsxElementNode; // If there is at least a JSXElement in the body of the class, then it's a React component.
|
|
102
|
-
|
|
103
|
-
acornWalk.simple( // @ts-ignore
|
|
104
|
-
classNode.body, {
|
|
105
|
-
JSXElement(node) {
|
|
106
|
-
innerJsxElementNode = node;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
}, ACORN_WALK_VISITORS);
|
|
110
|
-
const inferredType = {
|
|
111
|
-
type: innerJsxElementNode != null ? _types.InspectionType.ELEMENT : _types.InspectionType.CLASS,
|
|
112
|
-
identifier: extractIdentifierName(classNode.id)
|
|
113
|
-
};
|
|
114
|
-
return {
|
|
115
|
-
inferredType,
|
|
116
|
-
ast: classNode
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
function parseJsxElement(jsxElementNode) {
|
|
121
|
-
const inferredType = {
|
|
122
|
-
type: _types.InspectionType.ELEMENT
|
|
123
|
-
};
|
|
124
|
-
const identifierName = extractIdentifierName(jsxElementNode.openingElement.name);
|
|
125
|
-
|
|
126
|
-
if (identifierName != null) {
|
|
127
|
-
inferredType.identifier = identifierName;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return {
|
|
131
|
-
inferredType,
|
|
132
|
-
ast: jsxElementNode
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
function parseCall(callNode) {
|
|
137
|
-
const identifierNode = callNode.callee.type === 'MemberExpression' ? callNode.callee.property : callNode.callee;
|
|
138
|
-
const identifierName = extractIdentifierName(identifierNode);
|
|
139
|
-
|
|
140
|
-
if (identifierName === 'shape') {
|
|
141
|
-
return parseObject(callNode.arguments[0]);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
function parseObject(objectNode) {
|
|
148
|
-
return {
|
|
149
|
-
inferredType: {
|
|
150
|
-
type: _types.InspectionType.OBJECT,
|
|
151
|
-
depth: calculateNodeDepth(objectNode)
|
|
152
|
-
},
|
|
153
|
-
ast: objectNode
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function parseArray(arrayNode) {
|
|
158
|
-
return {
|
|
159
|
-
inferredType: {
|
|
160
|
-
type: _types.InspectionType.ARRAY,
|
|
161
|
-
depth: calculateNodeDepth(arrayNode)
|
|
162
|
-
},
|
|
163
|
-
ast: arrayNode
|
|
164
|
-
};
|
|
165
|
-
} // Cannot set "expression" type to "estree.Expression" because the type doesn't include JSX.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
function parseExpression(expression) {
|
|
169
|
-
switch (expression.type) {
|
|
170
|
-
case 'Identifier':
|
|
171
|
-
return parseIdentifier(expression);
|
|
172
|
-
|
|
173
|
-
case 'Literal':
|
|
174
|
-
return parseLiteral(expression);
|
|
175
|
-
|
|
176
|
-
case 'FunctionExpression':
|
|
177
|
-
case 'ArrowFunctionExpression':
|
|
178
|
-
return parseFunction(expression);
|
|
179
|
-
|
|
180
|
-
case 'ClassExpression':
|
|
181
|
-
return parseClass(expression);
|
|
182
|
-
|
|
183
|
-
case 'JSXElement':
|
|
184
|
-
return parseJsxElement(expression);
|
|
185
|
-
|
|
186
|
-
case 'CallExpression':
|
|
187
|
-
return parseCall(expression);
|
|
188
|
-
|
|
189
|
-
case 'ObjectExpression':
|
|
190
|
-
return parseObject(expression);
|
|
191
|
-
|
|
192
|
-
case 'ArrayExpression':
|
|
193
|
-
return parseArray(expression);
|
|
194
|
-
|
|
195
|
-
default:
|
|
196
|
-
return null;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function parse(value) {
|
|
201
|
-
const ast = acornParser.parse(`(${value})`);
|
|
202
|
-
let parsingResult = {
|
|
203
|
-
inferredType: {
|
|
204
|
-
type: _types.InspectionType.UNKNOWN
|
|
205
|
-
},
|
|
206
|
-
ast
|
|
207
|
-
};
|
|
208
|
-
|
|
209
|
-
if (ast.body[0] != null) {
|
|
210
|
-
const rootNode = ast.body[0];
|
|
211
|
-
|
|
212
|
-
switch (rootNode.type) {
|
|
213
|
-
case 'ExpressionStatement':
|
|
214
|
-
{
|
|
215
|
-
const expressionResult = parseExpression(rootNode.expression);
|
|
216
|
-
|
|
217
|
-
if (expressionResult != null) {
|
|
218
|
-
parsingResult = expressionResult;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
default:
|
|
225
|
-
break;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
return parsingResult;
|
|
230
|
-
}
|