UNPKG

1.95 kBJavaScriptView Raw
1"use strict";
2
3require("core-js/modules/es.array.concat.js");
4
5require("core-js/modules/es.function.name.js");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.makeDecorator = void 0;
11
12var makeDecorator = function makeDecorator(_ref) {
13 var name = _ref.name,
14 parameterName = _ref.parameterName,
15 wrapper = _ref.wrapper,
16 _ref$skipIfNoParamete = _ref.skipIfNoParametersOrOptions,
17 skipIfNoParametersOrOptions = _ref$skipIfNoParamete === void 0 ? false : _ref$skipIfNoParamete;
18
19 var decorator = function decorator(options) {
20 return function (getStory, context) {
21 var parameters = context.parameters && context.parameters[parameterName];
22
23 if (parameters && parameters.disable) {
24 return getStory(context);
25 }
26
27 if (skipIfNoParametersOrOptions && !options && !parameters) {
28 return getStory(context);
29 }
30
31 return wrapper(getStory, context, {
32 options: options,
33 parameters: parameters
34 });
35 };
36 };
37
38 return function () {
39 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40 args[_key] = arguments[_key];
41 }
42
43 // Used without options as .addDecorator(decorator)
44 if (typeof args[0] === 'function') {
45 return decorator().apply(void 0, args);
46 }
47
48 return function () {
49 // Used as [.]addDecorator(decorator(options))
50 if (arguments.length > 1) {
51 // Used as [.]addDecorator(decorator(option1, option2))
52 if (args.length > 1) {
53 return decorator(args).apply(void 0, arguments);
54 }
55
56 return decorator.apply(void 0, args).apply(void 0, arguments);
57 }
58
59 throw new Error("Passing stories directly into ".concat(name, "() is not allowed,\n instead use addDecorator(").concat(name, ") and pass options with the '").concat(parameterName, "' parameter"));
60 };
61 };
62};
63
64exports.makeDecorator = makeDecorator;
\No newline at end of file