UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

93 lines 3.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MethodDocumentation = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var FunctionArguments = function (_a) { var args = _a.args; return (React.createElement("span", { "data-hook": "auto-testkit-function-arguments" }, args.map(function (argument, i) { return (React.createElement("span", { key: argument.name }, React.createElement("span", { "data-hook": "auto-testkit-function-argument-name" }, argument.name), argument.type && (React.createElement("span", { "data-hook": "auto-testkit-function-argument-type" }, ": ", argument.type)), i < args.length - 1 && ', ')); }))); }; var paramDocumentation = function (_a, index) { var title = _a.title, name = _a.name, description = _a.description; return (React.createElement("li", { key: index }, React.createElement("b", null, title), " ", name, description && " - ".concat(description))); }; var returnsDocumentation = function (_a, index) { var title = _a.title, type = _a.type, description = _a.description; // No type if (!type) { return; } // Basic type if (!type.applications) { return (React.createElement("li", { key: index }, React.createElement("b", null, title), " ", type.name, description && " - ".concat(description))); } // Promise type var returnType = type.applications .map(function (app) { if (app.name) { return app.name; } if (app.type === 'UnionType') { return app.elements .map(function (element) { if (element.value) { return "'".concat(element.value, "'"); } if (element.type === 'NullLiteral') { return 'null'; } if (element.type === 'UndefinedLiteral') { return 'undefined'; } return element.name; }) .join(' | '); } }) .join(', '); return (React.createElement("li", { key: index }, React.createElement("b", null, title), " ", "Promise<".concat(returnType, ">"), description && " - ".concat(description))); }; var MethodDocumentation = function (_a) { var unit = _a.unit; var args = unit.args, name = unit.name, tags = unit.tags; return (React.createElement("tr", { className: "auto-testkit-field" }, React.createElement("td", null, React.createElement("span", { "data-hook": "auto-testkit-function-name" }, name), "(", React.createElement(FunctionArguments, { args: args }), ")"), React.createElement("td", { "data-hook": "auto-testkit-function-description" }, React.createElement("div", null, unit.description), tags && tags.length > 0 && (React.createElement("ul", null, tags.map(function (tag, index) { if (tag.title === 'param') { return paramDocumentation(tag, index); } if (tag.title === 'returns' || tag.title === 'return') { return returnsDocumentation(tag, index); } return (React.createElement("li", { key: index }, React.createElement("b", null, tag.title), " ", tag.description)); })))))); }; exports.MethodDocumentation = MethodDocumentation; //# sourceMappingURL=method-documentation.js.map