UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

38 lines 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DriverDocumentation = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var Markdown_1 = tslib_1.__importDefault(require("../Markdown")); var fields_documentation_1 = require("./fields-documentation"); var Code_1 = require("../Sections/views/import-example/Code"); var flatten_1 = require("./flatten"); var make_import_code_1 = require("./make-import-code"); var extractNested = function (descriptors) { return descriptors.reduce(function (acc, descriptor) { descriptor.type === 'object' ? acc.nested.push(descriptor) : acc.flat.push(descriptor); return acc; }, { flat: [], nested: [] }); }; var DriverDocumentation = function (_a) { var dataHook = _a.dataHook, descriptor = _a.descriptor, metadata = _a.metadata, testkitConfig = _a.testkitConfig, title = _a.title, unidriver = _a.unidriver, hideImport = _a.hideImport; var _b = extractNested(descriptor), nested = _b.nested, flat = _b.flat; return (React.createElement("div", { "data-hook": dataHook }, React.createElement("h2", { "data-hook": "auto-testkit-driver-name" }, title), testkitConfig && !hideImport && (React.createElement(Code_1.Code, { dataHook: "auto-testkit-driver-import-code" }, (0, make_import_code_1.makeImportCode)({ testkit: testkitConfig, metadata: metadata }))), unidriver && (React.createElement(Markdown_1.default, { source: "> **NOTE**: All UniDriver methods are asynchronous, use them with `async`/`await`!" })), flat.length > 0 && (React.createElement("div", { "data-hook": "auto-testkit-driver-descriptor" }, React.createElement(fields_documentation_1.FieldsDocumentation, { units: flat }))), nested.length > 0 && (React.createElement("div", null, React.createElement("h4", null, "This Testkit has nested API"), nested.map(function (_a) { var name = _a.name, props = _a.props; return (React.createElement("div", { key: props, "data-hook": "auto-testkit-driver-descriptor" }, React.createElement(Markdown_1.default, { source: "Access these methods through `".concat(name, "` namespace ") }), React.createElement(fields_documentation_1.FieldsDocumentation, { units: (0, flatten_1.flatten)(props, name) }))); }))))); }; exports.DriverDocumentation = DriverDocumentation; //# sourceMappingURL=driver-documentation.js.map