wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
38 lines • 2.54 kB
JavaScript
;
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