UNPKG

@storybook/react

Version:

Storybook for React: Develop React Component in isolation with Hot Reloading.

81 lines (58 loc) 2.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDefaultValue = createDefaultValue; var _docsTools = require("@storybook/docs-tools"); var _captions = require("../captions"); var _inspection = require("../inspection"); var _isHtmlTag = require("../isHtmlTag"); var _generateCode = require("../generateCode"); var _generateObject = require("./generateObject"); var _generateArray = require("./generateArray"); var _prettyIdentifier = require("./prettyIdentifier"); function generateFunc(_ref) { var inferredType = _ref.inferredType, ast = _ref.ast; var _ref2 = inferredType, identifier = _ref2.identifier; if (identifier != null) { return (0, _docsTools.createSummaryValue)((0, _prettyIdentifier.getPrettyIdentifier)(inferredType), (0, _generateCode.generateCode)(ast)); } var prettyCaption = (0, _generateCode.generateCode)(ast, true); return !(0, _docsTools.isTooLongForDefaultValueSummary)(prettyCaption) ? (0, _docsTools.createSummaryValue)(prettyCaption) : (0, _docsTools.createSummaryValue)(_captions.FUNCTION_CAPTION, (0, _generateCode.generateCode)(ast)); } // All elements are JSX elements. // JSX elements are not supported by escodegen. function generateElement(defaultValue, inspectionResult) { var inferredType = inspectionResult.inferredType; var _ref3 = inferredType, identifier = _ref3.identifier; if (identifier != null) { if (!(0, _isHtmlTag.isHtmlTag)(identifier)) { var prettyIdentifier = (0, _prettyIdentifier.getPrettyIdentifier)(inferredType); return (0, _docsTools.createSummaryValue)(prettyIdentifier, defaultValue); } } return !(0, _docsTools.isTooLongForDefaultValueSummary)(defaultValue) ? (0, _docsTools.createSummaryValue)(defaultValue) : (0, _docsTools.createSummaryValue)(_captions.ELEMENT_CAPTION, defaultValue); } function createDefaultValue(defaultValue) { try { var inspectionResult = (0, _inspection.inspectValue)(defaultValue); switch (inspectionResult.inferredType.type) { case _inspection.InspectionType.OBJECT: return (0, _generateObject.generateObject)(inspectionResult); case _inspection.InspectionType.FUNCTION: return generateFunc(inspectionResult); case _inspection.InspectionType.ELEMENT: return generateElement(defaultValue, inspectionResult); case _inspection.InspectionType.ARRAY: return (0, _generateArray.generateArray)(inspectionResult); default: return null; } } catch (e) { // eslint-disable-next-line no-console console.error(e); } return null; }