@storybook/core-common 6.5.0-alpha.52 → 6.5.0-alpha.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/presets.js +67 -56
- package/dist/cjs/utils/safeResolve.js +30 -0
- package/dist/esm/presets.js +66 -55
- package/dist/esm/utils/safeResolve.js +15 -0
- package/dist/modern/presets.js +66 -55
- package/dist/modern/utils/safeResolve.js +15 -0
- package/dist/ts3.4/presets.d.ts +16 -5
- package/dist/ts3.4/types.d.ts +6 -0
- package/dist/ts3.4/utils/safeResolve.d.ts +2 -0
- package/dist/ts3.9/presets.d.ts +16 -5
- package/dist/ts3.9/types.d.ts +6 -0
- package/dist/ts3.9/utils/safeResolve.d.ts +2 -0
- package/package.json +3 -3
package/dist/cjs/presets.js
CHANGED
|
@@ -17,12 +17,12 @@ var _path = require("path");
|
|
|
17
17
|
|
|
18
18
|
var _nodeLogger = require("@storybook/node-logger");
|
|
19
19
|
|
|
20
|
-
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
|
21
|
-
|
|
22
20
|
var _loadCustomPresets = require("./utils/load-custom-presets");
|
|
23
21
|
|
|
24
22
|
var _interpretRequire = require("./utils/interpret-require");
|
|
25
23
|
|
|
24
|
+
var _safeResolve = require("./utils/safeResolve");
|
|
25
|
+
|
|
26
26
|
var _excluded = ["type", "name"],
|
|
27
27
|
_excluded2 = ["addons", "presets", "framework"],
|
|
28
28
|
_excluded3 = ["corePresets", "frameworkPresets", "overridePresets"];
|
|
@@ -71,8 +71,8 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
71
71
|
* Parse an addon into either a managerEntries or a preset. Throw on invalid input.
|
|
72
72
|
*
|
|
73
73
|
* Valid inputs:
|
|
74
|
-
* - '@storybook/addon-actions/
|
|
75
|
-
* => { type: '
|
|
74
|
+
* - '@storybook/addon-actions/manager'
|
|
75
|
+
* => { type: 'virtual', item }
|
|
76
76
|
*
|
|
77
77
|
* - '@storybook/addon-docs/preset'
|
|
78
78
|
* => { type: 'presets', item }
|
|
@@ -85,43 +85,69 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
85
85
|
*/
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
var resolveAddonName = function (configDir, name) {
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
if (name.startsWith('.')) {
|
|
92
|
-
path = (0, _resolveFrom.default)(configDir, name);
|
|
93
|
-
} else if (name.startsWith('/')) {
|
|
94
|
-
path = name;
|
|
95
|
-
} else if (name.match(/\/(preset|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
96
|
-
path = name;
|
|
97
|
-
} // when user provides full path, we don't need to do anything
|
|
98
|
-
|
|
88
|
+
var resolveAddonName = function (configDir, name, options) {
|
|
89
|
+
var r = name.startsWith('/') ? _safeResolve.safeResolve : _safeResolve.safeResolveFrom.bind(null, configDir);
|
|
90
|
+
var resolved = r(name);
|
|
99
91
|
|
|
100
|
-
if (
|
|
92
|
+
if (name.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
101
93
|
return {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
94
|
+
type: 'virtual',
|
|
95
|
+
name: name,
|
|
96
|
+
managerEntries: [resolved]
|
|
105
97
|
};
|
|
106
98
|
}
|
|
107
99
|
|
|
108
|
-
|
|
100
|
+
if (name.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/)) {
|
|
109
101
|
return {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
};
|
|
113
|
-
}
|
|
102
|
+
type: 'presets',
|
|
103
|
+
name: resolved
|
|
104
|
+
};
|
|
105
|
+
}
|
|
114
106
|
|
|
115
|
-
|
|
107
|
+
var path = name; // when user provides full path, we don't need to do anything!
|
|
108
|
+
|
|
109
|
+
var managerFile = (0, _safeResolve.safeResolve)(`${path}/manager`);
|
|
110
|
+
var registerFile = (0, _safeResolve.safeResolve)(`${path}/register`) || (0, _safeResolve.safeResolve)(`${path}/register-panel`);
|
|
111
|
+
var previewFile = (0, _safeResolve.safeResolve)(`${path}/preview`);
|
|
112
|
+
var presetFile = (0, _safeResolve.safeResolve)(`${path}/preset`);
|
|
113
|
+
|
|
114
|
+
if (!(managerFile || previewFile) && presetFile) {
|
|
116
115
|
return {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
};
|
|
120
|
-
}
|
|
116
|
+
type: 'presets',
|
|
117
|
+
name: presetFile
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (managerFile || registerFile || previewFile || presetFile) {
|
|
122
|
+
var managerEntries = [];
|
|
123
|
+
|
|
124
|
+
if (managerFile) {
|
|
125
|
+
managerEntries.push(managerFile);
|
|
126
|
+
} // register file is the old way of registering addons
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
if (!managerFile && registerFile && !presetFile) {
|
|
130
|
+
managerEntries.push(registerFile);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return _objectSpread(_objectSpread(_objectSpread({
|
|
134
|
+
type: 'virtual',
|
|
135
|
+
name: path
|
|
136
|
+
}, managerEntries.length ? {
|
|
137
|
+
managerEntries: managerEntries
|
|
138
|
+
} : {}), previewFile ? {
|
|
139
|
+
previewAnnotations: [previewFile]
|
|
140
|
+
} : {}), presetFile ? {
|
|
141
|
+
presets: [{
|
|
142
|
+
name: presetFile,
|
|
143
|
+
options: options
|
|
144
|
+
}]
|
|
145
|
+
} : {});
|
|
146
|
+
}
|
|
121
147
|
|
|
122
148
|
return {
|
|
123
|
-
|
|
124
|
-
|
|
149
|
+
type: 'presets',
|
|
150
|
+
name: resolved
|
|
125
151
|
};
|
|
126
152
|
};
|
|
127
153
|
|
|
@@ -131,31 +157,16 @@ var map = function ({
|
|
|
131
157
|
configDir: configDir
|
|
132
158
|
}) {
|
|
133
159
|
return function (item) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var _resolveAddonName = resolveAddonName(configDir, item.name),
|
|
137
|
-
_name = _resolveAddonName.name;
|
|
160
|
+
var options = isObject(item) ? item.options || undefined : undefined;
|
|
161
|
+
var name = isObject(item) ? item.name : item;
|
|
138
162
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var _resolveAddonName2 = resolveAddonName(configDir, item),
|
|
145
|
-
name = _resolveAddonName2.name,
|
|
146
|
-
type = _resolveAddonName2.type;
|
|
147
|
-
|
|
148
|
-
if (type === 'managerEntries') {
|
|
149
|
-
return {
|
|
150
|
-
name: `${name}_additionalManagerEntries`,
|
|
151
|
-
type: type,
|
|
152
|
-
managerEntries: [name]
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return resolveAddonName(configDir, name);
|
|
163
|
+
try {
|
|
164
|
+
var resolved = resolveAddonName(configDir, name, options);
|
|
165
|
+
return _objectSpread(_objectSpread({}, options ? {
|
|
166
|
+
options: options
|
|
167
|
+
} : {}), resolved);
|
|
157
168
|
} catch (err) {
|
|
158
|
-
_nodeLogger.logger.error(`Addon value should end in /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
169
|
+
_nodeLogger.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
159
170
|
}
|
|
160
171
|
|
|
161
172
|
return undefined;
|
|
@@ -171,9 +182,9 @@ function interopRequireDefault(filePath) {
|
|
|
171
182
|
}
|
|
172
183
|
|
|
173
184
|
function getContent(input) {
|
|
174
|
-
if (input.type === '
|
|
185
|
+
if (input.type === 'virtual') {
|
|
175
186
|
var type = input.type,
|
|
176
|
-
|
|
187
|
+
_name = input.name,
|
|
177
188
|
rest = _objectWithoutProperties(input, _excluded);
|
|
178
189
|
|
|
179
190
|
return rest;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.safeResolveFrom = exports.safeResolve = void 0;
|
|
7
|
+
|
|
8
|
+
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
var safeResolveFrom = function (path, file) {
|
|
13
|
+
try {
|
|
14
|
+
return (0, _resolveFrom.default)(path, file);
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.safeResolveFrom = safeResolveFrom;
|
|
21
|
+
|
|
22
|
+
var safeResolve = function (file) {
|
|
23
|
+
try {
|
|
24
|
+
return require.resolve(file);
|
|
25
|
+
} catch (e) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.safeResolve = safeResolve;
|
package/dist/esm/presets.js
CHANGED
|
@@ -16,9 +16,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
16
16
|
import dedent from 'ts-dedent';
|
|
17
17
|
import { resolve } from 'path';
|
|
18
18
|
import { logger } from '@storybook/node-logger';
|
|
19
|
-
import resolveFrom from 'resolve-from';
|
|
20
19
|
import { loadCustomPresets } from './utils/load-custom-presets';
|
|
21
20
|
import { serverRequire } from './utils/interpret-require';
|
|
21
|
+
import { safeResolve, safeResolveFrom } from './utils/safeResolve';
|
|
22
22
|
|
|
23
23
|
var isObject = function (val) {
|
|
24
24
|
return val != null && typeof val === 'object' && Array.isArray(val) === false;
|
|
@@ -52,8 +52,8 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
52
52
|
* Parse an addon into either a managerEntries or a preset. Throw on invalid input.
|
|
53
53
|
*
|
|
54
54
|
* Valid inputs:
|
|
55
|
-
* - '@storybook/addon-actions/
|
|
56
|
-
* => { type: '
|
|
55
|
+
* - '@storybook/addon-actions/manager'
|
|
56
|
+
* => { type: 'virtual', item }
|
|
57
57
|
*
|
|
58
58
|
* - '@storybook/addon-docs/preset'
|
|
59
59
|
* => { type: 'presets', item }
|
|
@@ -66,43 +66,69 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
66
66
|
*/
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
export var resolveAddonName = function (configDir, name) {
|
|
70
|
-
var
|
|
69
|
+
export var resolveAddonName = function (configDir, name, options) {
|
|
70
|
+
var r = name.startsWith('/') ? safeResolve : safeResolveFrom.bind(null, configDir);
|
|
71
|
+
var resolved = r(name);
|
|
71
72
|
|
|
72
|
-
if (name.
|
|
73
|
-
path = resolveFrom(configDir, name);
|
|
74
|
-
} else if (name.startsWith('/')) {
|
|
75
|
-
path = name;
|
|
76
|
-
} else if (name.match(/\/(preset|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
77
|
-
path = name;
|
|
78
|
-
} // when user provides full path, we don't need to do anything
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (path) {
|
|
73
|
+
if (name.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
82
74
|
return {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
type: 'virtual',
|
|
76
|
+
name: name,
|
|
77
|
+
managerEntries: [resolved]
|
|
86
78
|
};
|
|
87
79
|
}
|
|
88
80
|
|
|
89
|
-
|
|
81
|
+
if (name.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/)) {
|
|
90
82
|
return {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
};
|
|
94
|
-
}
|
|
83
|
+
type: 'presets',
|
|
84
|
+
name: resolved
|
|
85
|
+
};
|
|
86
|
+
}
|
|
95
87
|
|
|
96
|
-
|
|
88
|
+
var path = name; // when user provides full path, we don't need to do anything!
|
|
89
|
+
|
|
90
|
+
var managerFile = safeResolve(`${path}/manager`);
|
|
91
|
+
var registerFile = safeResolve(`${path}/register`) || safeResolve(`${path}/register-panel`);
|
|
92
|
+
var previewFile = safeResolve(`${path}/preview`);
|
|
93
|
+
var presetFile = safeResolve(`${path}/preset`);
|
|
94
|
+
|
|
95
|
+
if (!(managerFile || previewFile) && presetFile) {
|
|
97
96
|
return {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
};
|
|
101
|
-
}
|
|
97
|
+
type: 'presets',
|
|
98
|
+
name: presetFile
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (managerFile || registerFile || previewFile || presetFile) {
|
|
103
|
+
var managerEntries = [];
|
|
104
|
+
|
|
105
|
+
if (managerFile) {
|
|
106
|
+
managerEntries.push(managerFile);
|
|
107
|
+
} // register file is the old way of registering addons
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if (!managerFile && registerFile && !presetFile) {
|
|
111
|
+
managerEntries.push(registerFile);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return _objectSpread(_objectSpread(_objectSpread({
|
|
115
|
+
type: 'virtual',
|
|
116
|
+
name: path
|
|
117
|
+
}, managerEntries.length ? {
|
|
118
|
+
managerEntries: managerEntries
|
|
119
|
+
} : {}), previewFile ? {
|
|
120
|
+
previewAnnotations: [previewFile]
|
|
121
|
+
} : {}), presetFile ? {
|
|
122
|
+
presets: [{
|
|
123
|
+
name: presetFile,
|
|
124
|
+
options: options
|
|
125
|
+
}]
|
|
126
|
+
} : {});
|
|
127
|
+
}
|
|
102
128
|
|
|
103
129
|
return {
|
|
104
|
-
|
|
105
|
-
|
|
130
|
+
type: 'presets',
|
|
131
|
+
name: resolved
|
|
106
132
|
};
|
|
107
133
|
};
|
|
108
134
|
|
|
@@ -110,31 +136,16 @@ var map = function ({
|
|
|
110
136
|
configDir: configDir
|
|
111
137
|
}) {
|
|
112
138
|
return function (item) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var _resolveAddonName = resolveAddonName(configDir, item.name),
|
|
116
|
-
_name = _resolveAddonName.name;
|
|
139
|
+
var options = isObject(item) ? item.options || undefined : undefined;
|
|
140
|
+
var name = isObject(item) ? item.name : item;
|
|
117
141
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var _resolveAddonName2 = resolveAddonName(configDir, item),
|
|
124
|
-
name = _resolveAddonName2.name,
|
|
125
|
-
type = _resolveAddonName2.type;
|
|
126
|
-
|
|
127
|
-
if (type === 'managerEntries') {
|
|
128
|
-
return {
|
|
129
|
-
name: `${name}_additionalManagerEntries`,
|
|
130
|
-
type: type,
|
|
131
|
-
managerEntries: [name]
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return resolveAddonName(configDir, name);
|
|
142
|
+
try {
|
|
143
|
+
var resolved = resolveAddonName(configDir, name, options);
|
|
144
|
+
return _objectSpread(_objectSpread({}, options ? {
|
|
145
|
+
options: options
|
|
146
|
+
} : {}), resolved);
|
|
136
147
|
} catch (err) {
|
|
137
|
-
logger.error(`Addon value should end in /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
148
|
+
logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
138
149
|
}
|
|
139
150
|
|
|
140
151
|
return undefined;
|
|
@@ -150,9 +161,9 @@ function interopRequireDefault(filePath) {
|
|
|
150
161
|
}
|
|
151
162
|
|
|
152
163
|
function getContent(input) {
|
|
153
|
-
if (input.type === '
|
|
164
|
+
if (input.type === 'virtual') {
|
|
154
165
|
var type = input.type,
|
|
155
|
-
|
|
166
|
+
_name = input.name,
|
|
156
167
|
rest = _objectWithoutProperties(input, _excluded);
|
|
157
168
|
|
|
158
169
|
return rest;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import resolveFrom from 'resolve-from';
|
|
2
|
+
export var safeResolveFrom = function (path, file) {
|
|
3
|
+
try {
|
|
4
|
+
return resolveFrom(path, file);
|
|
5
|
+
} catch (e) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export var safeResolve = function (file) {
|
|
10
|
+
try {
|
|
11
|
+
return require.resolve(file);
|
|
12
|
+
} catch (e) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
};
|
package/dist/modern/presets.js
CHANGED
|
@@ -16,9 +16,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
16
16
|
import dedent from 'ts-dedent';
|
|
17
17
|
import { resolve } from 'path';
|
|
18
18
|
import { logger } from '@storybook/node-logger';
|
|
19
|
-
import resolveFrom from 'resolve-from';
|
|
20
19
|
import { loadCustomPresets } from './utils/load-custom-presets';
|
|
21
20
|
import { serverRequire } from './utils/interpret-require';
|
|
21
|
+
import { safeResolve, safeResolveFrom } from './utils/safeResolve';
|
|
22
22
|
|
|
23
23
|
var isObject = function (val) {
|
|
24
24
|
return val != null && typeof val === 'object' && Array.isArray(val) === false;
|
|
@@ -52,8 +52,8 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
52
52
|
* Parse an addon into either a managerEntries or a preset. Throw on invalid input.
|
|
53
53
|
*
|
|
54
54
|
* Valid inputs:
|
|
55
|
-
* - '@storybook/addon-actions/
|
|
56
|
-
* => { type: '
|
|
55
|
+
* - '@storybook/addon-actions/manager'
|
|
56
|
+
* => { type: 'virtual', item }
|
|
57
57
|
*
|
|
58
58
|
* - '@storybook/addon-docs/preset'
|
|
59
59
|
* => { type: 'presets', item }
|
|
@@ -66,43 +66,69 @@ function resolvePresetFunction(input, presetOptions, framework, storybookOptions
|
|
|
66
66
|
*/
|
|
67
67
|
|
|
68
68
|
|
|
69
|
-
export var resolveAddonName = function (configDir, name) {
|
|
70
|
-
var
|
|
69
|
+
export var resolveAddonName = function (configDir, name, options) {
|
|
70
|
+
var r = name.startsWith('/') ? safeResolve : safeResolveFrom.bind(null, configDir);
|
|
71
|
+
var resolved = r(name);
|
|
71
72
|
|
|
72
|
-
if (name.
|
|
73
|
-
path = resolveFrom(configDir, name);
|
|
74
|
-
} else if (name.startsWith('/')) {
|
|
75
|
-
path = name;
|
|
76
|
-
} else if (name.match(/\/(preset|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
77
|
-
path = name;
|
|
78
|
-
} // when user provides full path, we don't need to do anything
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (path) {
|
|
73
|
+
if (name.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/)) {
|
|
82
74
|
return {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
type: 'virtual',
|
|
76
|
+
name: name,
|
|
77
|
+
managerEntries: [resolved]
|
|
86
78
|
};
|
|
87
79
|
}
|
|
88
80
|
|
|
89
|
-
|
|
81
|
+
if (name.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/)) {
|
|
90
82
|
return {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
};
|
|
94
|
-
}
|
|
83
|
+
type: 'presets',
|
|
84
|
+
name: resolved
|
|
85
|
+
};
|
|
86
|
+
}
|
|
95
87
|
|
|
96
|
-
|
|
88
|
+
var path = name; // when user provides full path, we don't need to do anything!
|
|
89
|
+
|
|
90
|
+
var managerFile = safeResolve(`${path}/manager`);
|
|
91
|
+
var registerFile = safeResolve(`${path}/register`) || safeResolve(`${path}/register-panel`);
|
|
92
|
+
var previewFile = safeResolve(`${path}/preview`);
|
|
93
|
+
var presetFile = safeResolve(`${path}/preset`);
|
|
94
|
+
|
|
95
|
+
if (!(managerFile || previewFile) && presetFile) {
|
|
97
96
|
return {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
};
|
|
101
|
-
}
|
|
97
|
+
type: 'presets',
|
|
98
|
+
name: presetFile
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (managerFile || registerFile || previewFile || presetFile) {
|
|
103
|
+
var managerEntries = [];
|
|
104
|
+
|
|
105
|
+
if (managerFile) {
|
|
106
|
+
managerEntries.push(managerFile);
|
|
107
|
+
} // register file is the old way of registering addons
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if (!managerFile && registerFile && !presetFile) {
|
|
111
|
+
managerEntries.push(registerFile);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return _objectSpread(_objectSpread(_objectSpread({
|
|
115
|
+
type: 'virtual',
|
|
116
|
+
name: path
|
|
117
|
+
}, managerEntries.length ? {
|
|
118
|
+
managerEntries: managerEntries
|
|
119
|
+
} : {}), previewFile ? {
|
|
120
|
+
previewAnnotations: [previewFile]
|
|
121
|
+
} : {}), presetFile ? {
|
|
122
|
+
presets: [{
|
|
123
|
+
name: presetFile,
|
|
124
|
+
options: options
|
|
125
|
+
}]
|
|
126
|
+
} : {});
|
|
127
|
+
}
|
|
102
128
|
|
|
103
129
|
return {
|
|
104
|
-
|
|
105
|
-
|
|
130
|
+
type: 'presets',
|
|
131
|
+
name: resolved
|
|
106
132
|
};
|
|
107
133
|
};
|
|
108
134
|
|
|
@@ -110,31 +136,16 @@ var map = function ({
|
|
|
110
136
|
configDir: configDir
|
|
111
137
|
}) {
|
|
112
138
|
return function (item) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
var _resolveAddonName = resolveAddonName(configDir, item.name),
|
|
116
|
-
_name = _resolveAddonName.name;
|
|
139
|
+
var options = isObject(item) ? item.options || undefined : undefined;
|
|
140
|
+
var name = isObject(item) ? item.name : item;
|
|
117
141
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var _resolveAddonName2 = resolveAddonName(configDir, item),
|
|
124
|
-
name = _resolveAddonName2.name,
|
|
125
|
-
type = _resolveAddonName2.type;
|
|
126
|
-
|
|
127
|
-
if (type === 'managerEntries') {
|
|
128
|
-
return {
|
|
129
|
-
name: `${name}_additionalManagerEntries`,
|
|
130
|
-
type: type,
|
|
131
|
-
managerEntries: [name]
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return resolveAddonName(configDir, name);
|
|
142
|
+
try {
|
|
143
|
+
var resolved = resolveAddonName(configDir, name, options);
|
|
144
|
+
return _objectSpread(_objectSpread({}, options ? {
|
|
145
|
+
options: options
|
|
146
|
+
} : {}), resolved);
|
|
136
147
|
} catch (err) {
|
|
137
|
-
logger.error(`Addon value should end in /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
148
|
+
logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/\n${item}`);
|
|
138
149
|
}
|
|
139
150
|
|
|
140
151
|
return undefined;
|
|
@@ -150,9 +161,9 @@ function interopRequireDefault(filePath) {
|
|
|
150
161
|
}
|
|
151
162
|
|
|
152
163
|
function getContent(input) {
|
|
153
|
-
if (input.type === '
|
|
164
|
+
if (input.type === 'virtual') {
|
|
154
165
|
var type = input.type,
|
|
155
|
-
|
|
166
|
+
_name = input.name,
|
|
156
167
|
rest = _objectWithoutProperties(input, _excluded);
|
|
157
168
|
|
|
158
169
|
return rest;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import resolveFrom from 'resolve-from';
|
|
2
|
+
export var safeResolveFrom = function (path, file) {
|
|
3
|
+
try {
|
|
4
|
+
return resolveFrom(path, file);
|
|
5
|
+
} catch (e) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export var safeResolve = function (file) {
|
|
10
|
+
try {
|
|
11
|
+
return require.resolve(file);
|
|
12
|
+
} catch (e) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
};
|
package/dist/ts3.4/presets.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export declare function filterPresetsConfig(presetsConfig: PresetConfig[]): Pres
|
|
|
4
4
|
* Parse an addon into either a managerEntries or a preset. Throw on invalid input.
|
|
5
5
|
*
|
|
6
6
|
* Valid inputs:
|
|
7
|
-
* - '@storybook/addon-actions/
|
|
8
|
-
* => { type: '
|
|
7
|
+
* - '@storybook/addon-actions/manager'
|
|
8
|
+
* => { type: 'virtual', item }
|
|
9
9
|
*
|
|
10
10
|
* - '@storybook/addon-docs/preset'
|
|
11
11
|
* => { type: 'presets', item }
|
|
@@ -16,10 +16,21 @@ export declare function filterPresetsConfig(presetsConfig: PresetConfig[]): Pres
|
|
|
16
16
|
* - { name: '@storybook/addon-docs(/preset)?', options: { ... } }
|
|
17
17
|
* => { type: 'presets', item: { name: '@storybook/addon-docs/preset', options } }
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
interface ResolvedAddonPreset {
|
|
20
|
+
type: 'presets';
|
|
20
21
|
name: string;
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
}
|
|
23
|
+
interface ResolvedAddonVirtual {
|
|
24
|
+
type: 'virtual';
|
|
25
|
+
name: string;
|
|
26
|
+
managerEntries?: string[];
|
|
27
|
+
previewAnnotations?: string[];
|
|
28
|
+
presets?: (string | {
|
|
29
|
+
name: string;
|
|
30
|
+
options?: any;
|
|
31
|
+
})[];
|
|
32
|
+
}
|
|
33
|
+
export declare const resolveAddonName: (configDir: string, name: string, options: any) => ResolvedAddonPreset | ResolvedAddonVirtual;
|
|
23
34
|
export declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): LoadedPreset[];
|
|
24
35
|
declare type InterPresetOptions = Pick<CLIOptions & LoadOptions & BuilderOptions, Exclude<keyof (CLIOptions & LoadOptions & BuilderOptions), 'frameworkPresets'>>;
|
|
25
36
|
export declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Presets;
|
package/dist/ts3.4/types.d.ts
CHANGED
|
@@ -354,7 +354,13 @@ export interface StorybookConfig {
|
|
|
354
354
|
webpackFinal?: (config: Configuration, options: Options) => Configuration | Promise<Configuration>;
|
|
355
355
|
/**
|
|
356
356
|
* Add additional scripts to run in the preview a la `.storybook/preview.js`
|
|
357
|
+
*
|
|
358
|
+
* @deprecated use `previewAnnotations` or `/preview.js` file instead
|
|
357
359
|
*/
|
|
358
360
|
config?: (entries: Entry[], options: Options) => Entry[];
|
|
361
|
+
/**
|
|
362
|
+
* Add additional scripts to run in the preview a la `.storybook/preview.js`
|
|
363
|
+
*/
|
|
364
|
+
previewAnnotations?: (entries: Entry[], options: Options) => Entry[];
|
|
359
365
|
}
|
|
360
366
|
export {};
|
package/dist/ts3.9/presets.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export declare function filterPresetsConfig(presetsConfig: PresetConfig[]): Pres
|
|
|
4
4
|
* Parse an addon into either a managerEntries or a preset. Throw on invalid input.
|
|
5
5
|
*
|
|
6
6
|
* Valid inputs:
|
|
7
|
-
* - '@storybook/addon-actions/
|
|
8
|
-
* => { type: '
|
|
7
|
+
* - '@storybook/addon-actions/manager'
|
|
8
|
+
* => { type: 'virtual', item }
|
|
9
9
|
*
|
|
10
10
|
* - '@storybook/addon-docs/preset'
|
|
11
11
|
* => { type: 'presets', item }
|
|
@@ -16,10 +16,21 @@ export declare function filterPresetsConfig(presetsConfig: PresetConfig[]): Pres
|
|
|
16
16
|
* - { name: '@storybook/addon-docs(/preset)?', options: { ... } }
|
|
17
17
|
* => { type: 'presets', item: { name: '@storybook/addon-docs/preset', options } }
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
interface ResolvedAddonPreset {
|
|
20
|
+
type: 'presets';
|
|
20
21
|
name: string;
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
}
|
|
23
|
+
interface ResolvedAddonVirtual {
|
|
24
|
+
type: 'virtual';
|
|
25
|
+
name: string;
|
|
26
|
+
managerEntries?: string[];
|
|
27
|
+
previewAnnotations?: string[];
|
|
28
|
+
presets?: (string | {
|
|
29
|
+
name: string;
|
|
30
|
+
options?: any;
|
|
31
|
+
})[];
|
|
32
|
+
}
|
|
33
|
+
export declare const resolveAddonName: (configDir: string, name: string, options: any) => ResolvedAddonPreset | ResolvedAddonVirtual;
|
|
23
34
|
export declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): LoadedPreset[];
|
|
24
35
|
declare type InterPresetOptions = Omit<CLIOptions & LoadOptions & BuilderOptions, 'frameworkPresets'>;
|
|
25
36
|
export declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Presets;
|
package/dist/ts3.9/types.d.ts
CHANGED
|
@@ -350,7 +350,13 @@ export interface StorybookConfig {
|
|
|
350
350
|
webpackFinal?: (config: Configuration, options: Options) => Configuration | Promise<Configuration>;
|
|
351
351
|
/**
|
|
352
352
|
* Add additional scripts to run in the preview a la `.storybook/preview.js`
|
|
353
|
+
*
|
|
354
|
+
* @deprecated use `previewAnnotations` or `/preview.js` file instead
|
|
353
355
|
*/
|
|
354
356
|
config?: (entries: Entry[], options: Options) => Entry[];
|
|
357
|
+
/**
|
|
358
|
+
* Add additional scripts to run in the preview a la `.storybook/preview.js`
|
|
359
|
+
*/
|
|
360
|
+
previewAnnotations?: (entries: Entry[], options: Options) => Entry[];
|
|
355
361
|
}
|
|
356
362
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/core-common",
|
|
3
|
-
"version": "6.5.0-alpha.
|
|
3
|
+
"version": "6.5.0-alpha.53",
|
|
4
4
|
"description": "Storybook framework-agnostic API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"@babel/preset-react": "^7.12.10",
|
|
63
63
|
"@babel/preset-typescript": "^7.12.7",
|
|
64
64
|
"@babel/register": "^7.12.1",
|
|
65
|
-
"@storybook/node-logger": "6.5.0-alpha.
|
|
65
|
+
"@storybook/node-logger": "6.5.0-alpha.53",
|
|
66
66
|
"@storybook/semver": "^7.3.2",
|
|
67
67
|
"@types/node": "^14.0.10 || ^16.0.0",
|
|
68
68
|
"@types/pretty-hrtime": "^1.0.0",
|
|
@@ -111,6 +111,6 @@
|
|
|
111
111
|
"publishConfig": {
|
|
112
112
|
"access": "public"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "652768b3ff83a355651d5636ccc4d78bee2cdbf9",
|
|
115
115
|
"sbmodern": "dist/modern/index.js"
|
|
116
116
|
}
|