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