UNPKG

2.77 kBJavaScriptView Raw
1"use strict";
2
3require("core-js/modules/es.array.concat");
4
5require("core-js/modules/es.function.name");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.makeDecorator = void 0;
11
12var _utilDeprecate = _interopRequireDefault(require("util-deprecate"));
13
14function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
16var makeDecorator = function makeDecorator(_ref) {
17 var name = _ref.name,
18 parameterName = _ref.parameterName,
19 wrapper = _ref.wrapper,
20 _ref$skipIfNoParamete = _ref.skipIfNoParametersOrOptions,
21 skipIfNoParametersOrOptions = _ref$skipIfNoParamete === void 0 ? false : _ref$skipIfNoParamete,
22 _ref$allowDeprecatedU = _ref.allowDeprecatedUsage,
23 allowDeprecatedUsage = _ref$allowDeprecatedU === void 0 ? false : _ref$allowDeprecatedU;
24
25 var decorator = function decorator(options) {
26 return function (getStory, context) {
27 var parameters = context.parameters && context.parameters[parameterName];
28
29 if (parameters && parameters.disable) {
30 return getStory(context);
31 }
32
33 if (skipIfNoParametersOrOptions && !options && !parameters) {
34 return getStory(context);
35 }
36
37 return wrapper(getStory, context, {
38 options: options,
39 parameters: parameters
40 });
41 };
42 };
43
44 return function () {
45 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
46 args[_key] = arguments[_key];
47 }
48
49 // Used without options as .addDecorator(decorator)
50 if (typeof args[0] === 'function') {
51 return decorator().apply(void 0, args);
52 }
53
54 return function () {
55 for (var _len2 = arguments.length, innerArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
56 innerArgs[_key2] = arguments[_key2];
57 }
58
59 // Used as [.]addDecorator(decorator(options))
60 if (innerArgs.length > 1) {
61 return decorator.apply(void 0, args).apply(void 0, innerArgs);
62 }
63
64 if (allowDeprecatedUsage) {
65 // Used to wrap a story directly .add('story', decorator(options)(() => <Story />))
66 // This is now deprecated:
67 return (0, _utilDeprecate["default"])(function (context) {
68 return decorator.apply(void 0, args)(innerArgs[0], context);
69 }, "Passing stories directly into ".concat(name, "() is deprecated,\n instead use addDecorator(").concat(name, ") and pass options with the '").concat(parameterName, "' parameter"));
70 }
71
72 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"));
73 };
74 };
75};
76
77exports.makeDecorator = makeDecorator;
\No newline at end of file