UNPKG

4.83 kBJavaScriptView Raw
1"use strict";
2
3function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
5require("core-js/modules/es.array.iterator.js");
6
7require("core-js/modules/es.string.iterator.js");
8
9require("core-js/modules/es.weak-map.js");
10
11require("core-js/modules/web.dom-collections.iterator.js");
12
13require("core-js/modules/es.object.get-own-property-descriptor.js");
14
15require("core-js/modules/es.symbol.js");
16
17require("core-js/modules/es.symbol.description.js");
18
19require("core-js/modules/es.symbol.iterator.js");
20
21Object.defineProperty(exports, "__esModule", {
22 value: true
23});
24exports.addons = addons;
25
26require("core-js/modules/es.array.join.js");
27
28require("core-js/modules/es.array.find.js");
29
30require("core-js/modules/es.object.to-string.js");
31
32require("core-js/modules/es.function.name.js");
33
34require("core-js/modules/es.string.starts-with.js");
35
36require("core-js/modules/es.array.map.js");
37
38require("core-js/modules/es.array.filter.js");
39
40var _path = _interopRequireWildcard(require("path"));
41
42var _nodeLogger = require("@storybook/node-logger");
43
44var _coreCommon = require("@storybook/core-common");
45
46function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
48function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
49
50var requireMain = function requireMain(configDir) {
51 var _serverRequire;
52
53 var absoluteConfigDir = _path.default.isAbsolute(configDir) ? configDir : _path.default.join(process.cwd(), configDir);
54
55 var mainFile = _path.default.join(absoluteConfigDir, 'main');
56
57 return (_serverRequire = (0, _coreCommon.serverRequire)(mainFile)) !== null && _serverRequire !== void 0 ? _serverRequire : {};
58};
59
60function addons() {
61 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
63 var checkInstalled = function checkInstalled(addon, main) {
64 var _main$addons;
65
66 var existingAddon = (_main$addons = main.addons) === null || _main$addons === void 0 ? void 0 : _main$addons.find(function (entry) {
67 var name = typeof entry === 'string' ? entry : entry.name;
68 return name === null || name === void 0 ? void 0 : name.startsWith(addon);
69 });
70
71 if (existingAddon) {
72 _nodeLogger.logger.info("Found existing addon ".concat(JSON.stringify(existingAddon), ", skipping."));
73 }
74
75 return !!existingAddon;
76 };
77
78 var main = requireMain(options.configDir);
79 return ['docs', 'controls', 'actions', 'backgrounds', 'viewport', 'toolbars', 'measure', 'outline'].filter(function (key) {
80 return options[key] !== false;
81 }).map(function (key) {
82 return "@storybook/addon-".concat(key);
83 }).filter(function (addon) {
84 return !checkInstalled(addon, main);
85 }) // Use `require.resolve` to ensure Yarn PnP compatibility
86 // Files of various addons should be resolved in the context of `addon-essentials` as they are listed as deps here
87 // and not in `@storybook/core` nor in SB user projects. If `@storybook/core` make the require itself Yarn 2 will
88 // throw an error saying that the package to require must be added as a dependency. Doing `require.resolve` will
89 // allow `@storybook/core` to work with absolute path directly, no more require of dep no more issue.
90 // File to load can be `preset.js`, `register.js`, or the package entry point, so we need to check all these cases
91 // as it's done in `lib/core/src/server/presets.js`.
92 .map(function (addon) {
93 try {
94 return (0, _path.dirname)(require.resolve((0, _path.join)(addon, 'package.json'))); // eslint-disable-next-line no-empty
95 } catch (err) {}
96
97 return require.resolve(addon);
98 });
99}
\No newline at end of file