UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

155 lines 7.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDriverDocumentationDriver = exports.createAutoTestkitDriver = exports.createFieldsDocumentationDriver = exports.createMethodDocumentationDriver = exports.createPrimitiveDocumentationDriver = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var driver_1 = require("./driver"); var primitive_documentation_1 = require("./primitive-documentation"); var method_documentation_1 = require("./method-documentation"); var fields_documentation_1 = require("./fields-documentation"); var driver_documentation_1 = require("./driver-documentation"); var index_1 = require("./index"); var Markdown_1 = tslib_1.__importDefault(require("../Markdown")); var DriverDocumentationDriver = /** @class */ (function (_super) { tslib_1.__extends(DriverDocumentationDriver, _super); function DriverDocumentationDriver() { var _this = _super.call(this, driver_documentation_1.DriverDocumentation, 'driver-') || this; _this.get = { name: function () { return _this.select('name').text(); }, descriptor: function () { return _this.select('descriptor').text(); }, fields: function () { var component = _this.select('descriptor').childAt(0); return (0, exports.createFieldsDocumentationDriver)().reuse(component); }, allFields: function () { var components = _this.select('fields'); var allFields = components.reduce(function (fields, component) { var field = (0, exports.createFieldsDocumentationDriver)().reuse(component); var count = field.get.count(); var i = 0; while (i < count) { fields.push(field.get.at(i)); i++; } return fields; }, []); return allFields; }, tag: function (hook) { return _this.select(hook).name(); }, importCode: function () { return _this.find('[data-hook="metadata-import-markdown"]').prop('source'); }, }; return _this; } return DriverDocumentationDriver; }(driver_1.Driver)); var AutoTestkitDriver = /** @class */ (function (_super) { tslib_1.__extends(AutoTestkitDriver, _super); function AutoTestkitDriver() { var _this = _super.call(this, index_1.AutoTestkit, '') || this; _this.get = { driverAt: function (index) { var driverDoc = _this.select('driver').at(index); return driverDoc.length === 0 ? null : (0, exports.createDriverDocumentationDriver)().reuse(driverDoc); }, heading: function () { return _this.select('heading').text(); }, tag: function (hook) { return _this.select(hook).name(); }, rootClass: function () { return _this.selectRoot().props().className; }, warning: function () { return _this.select('warning') .find(Markdown_1.default) .prop('source'); }, }; return _this; } return AutoTestkitDriver; }(driver_1.Driver)); var FieldsDocumentationDriver = /** @class */ (function (_super) { tslib_1.__extends(FieldsDocumentationDriver, _super); function FieldsDocumentationDriver() { var _this = _super.call(this, fields_documentation_1.FieldsDocumentation, '') || this; _this.get = { content: function () { return _this.select('fields').text(); }, at: function (index) { var component = _this.select('field').at(index); switch (component.props().unit.type) { case 'value': case 'error': case 'object': return (0, exports.createPrimitiveDocumentationDriver)().reuse(component); case 'function': return (0, exports.createMethodDocumentationDriver)().reuse(component); default: return _this; } }, count: function () { return _this.find('tbody tr').length; }, header: function (hook) { var header = _this.select("".concat(hook, "-header")); return { tag: function () { return header.name(); }, text: function () { return header.text(); }, }; }, }; return _this; } return FieldsDocumentationDriver; }(driver_1.Driver)); var MethodDocumentationDriver = /** @class */ (function (_super) { tslib_1.__extends(MethodDocumentationDriver, _super); function MethodDocumentationDriver() { var _this = _super.call(this, MethodDocumentationDriver.Component, 'function-') || this; _this.get = { name: function () { return _this.select('name').text(); }, arguments: function () { return _this.select('arguments').text(); }, argumentNames: function () { return _this.select('argument-name').map(function (name) { return name.text(); }); }, argumentTypes: function () { return _this.select('argument-type').map(function (type) { return type.text(); }); }, description: function () { return _this.select('description').text(); }, }; return _this; } MethodDocumentationDriver.Component = function (props) { return (React.createElement("table", null, React.createElement("tbody", null, React.createElement(method_documentation_1.MethodDocumentation, tslib_1.__assign({}, props))))); }; return MethodDocumentationDriver; }(driver_1.Driver)); var PrimitiveDocumentationDriver = /** @class */ (function (_super) { tslib_1.__extends(PrimitiveDocumentationDriver, _super); function PrimitiveDocumentationDriver() { var _this = _super.call(this, PrimitiveDocumentationDriver.Component, 'primitive-') || this; _this.get = { name: function () { return _this.select('name').text(); }, description: function () { return _this.select('description').text(); }, tag: function (hook) { return _this.select(hook).name(); }, }; return _this; } PrimitiveDocumentationDriver.Component = function (props) { return (React.createElement("table", null, React.createElement("tbody", null, React.createElement(primitive_documentation_1.PrimitiveDocumentation, tslib_1.__assign({}, props))))); }; return PrimitiveDocumentationDriver; }(driver_1.Driver)); var createPrimitiveDocumentationDriver = function () { return (0, driver_1.r)(new PrimitiveDocumentationDriver()); }; exports.createPrimitiveDocumentationDriver = createPrimitiveDocumentationDriver; var createMethodDocumentationDriver = function () { return (0, driver_1.r)(new MethodDocumentationDriver()); }; exports.createMethodDocumentationDriver = createMethodDocumentationDriver; var createFieldsDocumentationDriver = function () { return (0, driver_1.r)(new FieldsDocumentationDriver()); }; exports.createFieldsDocumentationDriver = createFieldsDocumentationDriver; var createAutoTestkitDriver = function () { return (0, driver_1.r)(new AutoTestkitDriver()); }; exports.createAutoTestkitDriver = createAutoTestkitDriver; var createDriverDocumentationDriver = function () { return (0, driver_1.r)(new DriverDocumentationDriver()); }; exports.createDriverDocumentationDriver = createDriverDocumentationDriver; //# sourceMappingURL=drivers.js.map