@storybook/core-server 6.5.0-beta.1 → 6.5.0-beta.4
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/build-dev.js +67 -10
- package/dist/cjs/build-static.js +71 -16
- package/dist/cjs/cli/dev.js +2 -1
- package/dist/cjs/cli/prod.js +2 -1
- package/dist/cjs/dev-server.js +75 -7
- package/dist/cjs/presets/common-preset.js +46 -2
- package/dist/cjs/utils/get-preview-builder.js +1 -1
- package/dist/cjs/utils/metadata.js +28 -0
- package/dist/cjs/utils/stories-json.js +23 -47
- package/dist/cjs/utils/update-check.js +1 -1
- package/dist/esm/build-dev.js +65 -9
- package/dist/esm/build-static.js +69 -17
- package/dist/esm/cli/dev.js +2 -1
- package/dist/esm/cli/prod.js +2 -1
- package/dist/esm/dev-server.js +72 -8
- package/dist/esm/presets/common-preset.js +43 -1
- package/dist/esm/utils/get-preview-builder.js +1 -1
- package/dist/esm/utils/metadata.js +14 -0
- package/dist/esm/utils/stories-json.js +22 -44
- package/dist/esm/utils/update-check.js +1 -1
- package/dist/modern/build-dev.js +65 -9
- package/dist/modern/build-static.js +69 -17
- package/dist/modern/cli/dev.js +2 -1
- package/dist/modern/cli/prod.js +2 -1
- package/dist/modern/dev-server.js +72 -8
- package/dist/modern/presets/common-preset.js +43 -1
- package/dist/modern/utils/get-preview-builder.js +1 -1
- package/dist/modern/utils/metadata.js +14 -0
- package/dist/modern/utils/stories-json.js +22 -44
- package/dist/modern/utils/update-check.js +1 -1
- package/dist/ts3.4/dev-server.d.ts +1 -0
- package/dist/ts3.4/presets/common-preset.d.ts +9 -5
- package/dist/ts3.4/utils/metadata.d.ts +3 -0
- package/dist/ts3.4/utils/stories-json.d.ts +10 -8
- package/dist/ts3.9/build-dev.d.ts +1 -1
- package/dist/ts3.9/dev-server.d.ts +2 -1
- package/dist/ts3.9/presets/common-preset.d.ts +9 -5
- package/dist/ts3.9/utils/metadata.d.ts +3 -0
- package/dist/ts3.9/utils/stories-json.d.ts +10 -8
- package/package.json +12 -11
package/dist/cjs/build-dev.js
CHANGED
|
@@ -12,11 +12,13 @@ require("core-js/modules/es.promise.js");
|
|
|
12
12
|
|
|
13
13
|
var _nodeLogger = require("@storybook/node-logger");
|
|
14
14
|
|
|
15
|
+
var _prompts = _interopRequireDefault(require("prompts"));
|
|
16
|
+
|
|
15
17
|
var _coreCommon = require("@storybook/core-common");
|
|
16
18
|
|
|
17
|
-
var
|
|
19
|
+
var _telemetry = require("@storybook/telemetry");
|
|
18
20
|
|
|
19
|
-
var
|
|
21
|
+
var _tsDedent = _interopRequireDefault(require("ts-dedent"));
|
|
20
22
|
|
|
21
23
|
var _global = _interopRequireDefault(require("global"));
|
|
22
24
|
|
|
@@ -160,14 +162,16 @@ async function buildDevStandalone(options) {
|
|
|
160
162
|
async function buildDev(loadOptions) {
|
|
161
163
|
var cliOptions = await (0, _cli.getDevCli)(loadOptions.packageJson);
|
|
162
164
|
|
|
165
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, cliOptions), loadOptions), {}, {
|
|
166
|
+
configDir: loadOptions.configDir || cliOptions.configDir || './.storybook',
|
|
167
|
+
configType: 'DEVELOPMENT',
|
|
168
|
+
ignorePreview: !!cliOptions.previewUrl && !cliOptions.forceBuildPreview,
|
|
169
|
+
docsMode: !!cliOptions.docs,
|
|
170
|
+
cache: _coreCommon.cache
|
|
171
|
+
});
|
|
172
|
+
|
|
163
173
|
try {
|
|
164
|
-
await buildDevStandalone(
|
|
165
|
-
configDir: loadOptions.configDir || cliOptions.configDir || './.storybook',
|
|
166
|
-
configType: 'DEVELOPMENT',
|
|
167
|
-
ignorePreview: !!cliOptions.previewUrl && !cliOptions.forceBuildPreview,
|
|
168
|
-
docsMode: !!cliOptions.docs,
|
|
169
|
-
cache: _coreCommon.cache
|
|
170
|
-
}));
|
|
174
|
+
await buildDevStandalone(options);
|
|
171
175
|
} catch (error) {
|
|
172
176
|
var _error$compilation;
|
|
173
177
|
|
|
@@ -202,6 +206,59 @@ async function buildDev(loadOptions) {
|
|
|
202
206
|
|
|
203
207
|
_nodeLogger.logger.line();
|
|
204
208
|
|
|
209
|
+
var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
|
|
210
|
+
corePresets: [require.resolve('./presets/common-preset')],
|
|
211
|
+
overridePresets: []
|
|
212
|
+
}, options));
|
|
213
|
+
var core = await presets.apply('core');
|
|
214
|
+
|
|
215
|
+
if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
|
|
216
|
+
var enableCrashReports;
|
|
217
|
+
|
|
218
|
+
if (core.enableCrashReports !== undefined) {
|
|
219
|
+
enableCrashReports = core.enableCrashReports;
|
|
220
|
+
} else {
|
|
221
|
+
var valueFromCache = await _coreCommon.cache.get('enableCrashreports');
|
|
222
|
+
|
|
223
|
+
if (valueFromCache !== undefined) {
|
|
224
|
+
enableCrashReports = valueFromCache;
|
|
225
|
+
} else {
|
|
226
|
+
var valueFromPrompt = await promptCrashReports(options);
|
|
227
|
+
|
|
228
|
+
if (valueFromPrompt !== undefined) {
|
|
229
|
+
enableCrashReports = valueFromPrompt;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
await (0, _telemetry.telemetry)('error-dev', {
|
|
235
|
+
error: error
|
|
236
|
+
}, {
|
|
237
|
+
immediate: true,
|
|
238
|
+
configDir: options.configDir,
|
|
239
|
+
enableCrashReports: enableCrashReports
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
205
243
|
process.exit(1);
|
|
206
244
|
}
|
|
207
|
-
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
var promptCrashReports = async function ({
|
|
248
|
+
packageJson: packageJson
|
|
249
|
+
}) {
|
|
250
|
+
if (process.env.CI) {
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
var _await$prompts2 = await (0, _prompts.default)({
|
|
255
|
+
type: 'confirm',
|
|
256
|
+
name: 'enableCrashReports',
|
|
257
|
+
message: `Would you like to send crash reports to Storybook?`,
|
|
258
|
+
initial: true
|
|
259
|
+
}),
|
|
260
|
+
enableCrashReports = _await$prompts2.enableCrashReports;
|
|
261
|
+
|
|
262
|
+
await _coreCommon.cache.set('enableCrashreports', enableCrashReports);
|
|
263
|
+
return enableCrashReports;
|
|
264
|
+
};
|
package/dist/cjs/build-static.js
CHANGED
|
@@ -24,6 +24,8 @@ var _global = _interopRequireDefault(require("global"));
|
|
|
24
24
|
|
|
25
25
|
var _nodeLogger = require("@storybook/node-logger");
|
|
26
26
|
|
|
27
|
+
var _telemetry = require("@storybook/telemetry");
|
|
28
|
+
|
|
27
29
|
var _coreCommon = require("@storybook/core-common");
|
|
28
30
|
|
|
29
31
|
var _cli = require("./cli");
|
|
@@ -38,6 +40,10 @@ var _getManagerBuilder = require("./utils/get-manager-builder");
|
|
|
38
40
|
|
|
39
41
|
var _storiesJson = require("./utils/stories-json");
|
|
40
42
|
|
|
43
|
+
var _metadata = require("./utils/metadata");
|
|
44
|
+
|
|
45
|
+
var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
|
|
46
|
+
|
|
41
47
|
var _excluded = ["packageJson"];
|
|
42
48
|
|
|
43
49
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -124,17 +130,49 @@ async function buildStaticStandalone(options) {
|
|
|
124
130
|
|
|
125
131
|
var features = await presets.apply('features');
|
|
126
132
|
_global.default.FEATURES = features;
|
|
133
|
+
var extractTasks = [];
|
|
134
|
+
var initializedStoryIndexGenerator = Promise.resolve(undefined);
|
|
127
135
|
|
|
128
136
|
if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
|
|
137
|
+
var workingDir = process.cwd();
|
|
129
138
|
var directories = {
|
|
130
139
|
configDir: options.configDir,
|
|
131
|
-
workingDir:
|
|
140
|
+
workingDir: workingDir
|
|
132
141
|
};
|
|
133
|
-
var
|
|
134
|
-
|
|
142
|
+
var normalizedStories = (0, _coreCommon.normalizeStories)(await presets.apply('stories'), directories);
|
|
143
|
+
var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
|
|
135
144
|
storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
|
|
136
145
|
storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
|
|
137
146
|
}));
|
|
147
|
+
initializedStoryIndexGenerator = generator.initialize().then(function () {
|
|
148
|
+
return generator;
|
|
149
|
+
});
|
|
150
|
+
extractTasks.push((0, _storiesJson.extractStoriesJson)(_path.default.join(options.outputDir, 'stories.json'), initializedStoryIndexGenerator));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
var core = await presets.apply('core');
|
|
154
|
+
|
|
155
|
+
if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
|
|
156
|
+
initializedStoryIndexGenerator.then(async function (generator) {
|
|
157
|
+
if (!generator) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
var storyIndex = await generator.getIndex();
|
|
162
|
+
var payload = storyIndex ? {
|
|
163
|
+
storyIndex: {
|
|
164
|
+
storyCount: Object.keys(storyIndex.stories).length,
|
|
165
|
+
version: storyIndex.v
|
|
166
|
+
}
|
|
167
|
+
} : undefined;
|
|
168
|
+
(0, _telemetry.telemetry)('build', payload, {
|
|
169
|
+
configDir: options.configDir
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
|
|
175
|
+
extractTasks.push((0, _metadata.extractStorybookMetadata)(_path.default.join(options.outputDir, 'project.json'), options.configDir));
|
|
138
176
|
}
|
|
139
177
|
|
|
140
178
|
var fullOptions = _objectSpread(_objectSpread({}, options), {}, {
|
|
@@ -147,7 +185,6 @@ async function buildStaticStandalone(options) {
|
|
|
147
185
|
(0, _coreCommon.logConfig)('Manager webpack config', await managerBuilder.getConfig(fullOptions));
|
|
148
186
|
}
|
|
149
187
|
|
|
150
|
-
var core = await presets.apply('core');
|
|
151
188
|
var builderName = typeof (core === null || core === void 0 ? void 0 : core.builder) === 'string' ? core.builder : core === null || core === void 0 ? void 0 : (_core$builder = core.builder) === null || _core$builder === void 0 ? void 0 : _core$builder.name;
|
|
152
189
|
|
|
153
190
|
var _ref = builderName === 'webpack5' ? // eslint-disable-next-line import/no-extraneous-dependencies
|
|
@@ -184,7 +221,7 @@ async function buildStaticStandalone(options) {
|
|
|
184
221
|
}), preview.catch(async function (err) {
|
|
185
222
|
await managerBuilder.bail();
|
|
186
223
|
throw err;
|
|
187
|
-
})]),
|
|
224
|
+
}), ...extractTasks]),
|
|
188
225
|
_await$Promise$all2 = _slicedToArray(_await$Promise$all, 2),
|
|
189
226
|
managerStats = _await$Promise$all2[0],
|
|
190
227
|
previewStats = _await$Promise$all2[1];
|
|
@@ -203,18 +240,36 @@ async function buildStatic(_ref2) {
|
|
|
203
240
|
|
|
204
241
|
var cliOptions = (0, _cli.getProdCli)(packageJson);
|
|
205
242
|
|
|
243
|
+
var options = _objectSpread(_objectSpread(_objectSpread({}, cliOptions), loadOptions), {}, {
|
|
244
|
+
packageJson: packageJson,
|
|
245
|
+
configDir: loadOptions.configDir || cliOptions.configDir || './.storybook',
|
|
246
|
+
outputDir: loadOptions.outputDir || cliOptions.outputDir || './storybook-static',
|
|
247
|
+
ignorePreview: (!!loadOptions.ignorePreview || !!cliOptions.previewUrl) && !cliOptions.forceBuildPreview,
|
|
248
|
+
docsMode: !!cliOptions.docs,
|
|
249
|
+
configType: 'PRODUCTION',
|
|
250
|
+
cache: _coreCommon.cache
|
|
251
|
+
});
|
|
252
|
+
|
|
206
253
|
try {
|
|
207
|
-
await buildStaticStandalone(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
254
|
+
await buildStaticStandalone(options);
|
|
255
|
+
} catch (error) {
|
|
256
|
+
_nodeLogger.logger.error(error);
|
|
257
|
+
|
|
258
|
+
var presets = (0, _coreCommon.loadAllPresets)(_objectSpread({
|
|
259
|
+
corePresets: [require.resolve('./presets/common-preset')],
|
|
260
|
+
overridePresets: []
|
|
261
|
+
}, options));
|
|
262
|
+
var core = await presets.apply('core');
|
|
263
|
+
|
|
264
|
+
if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
|
|
265
|
+
await (0, _telemetry.telemetry)('error-build', {
|
|
266
|
+
error: error
|
|
267
|
+
}, {
|
|
268
|
+
immediate: true,
|
|
269
|
+
configDir: options.configDir,
|
|
270
|
+
enableCrashReports: options.enableCrashReports
|
|
271
|
+
});
|
|
272
|
+
}
|
|
218
273
|
|
|
219
274
|
process.exit(1);
|
|
220
275
|
}
|
package/dist/cjs/cli/dev.js
CHANGED
|
@@ -28,7 +28,8 @@ async function getDevCli(packageJson) {
|
|
|
28
28
|
|
|
29
29
|
_commander.default.version(packageJson.version).option('-p, --port <number>', 'Port to run Storybook', function (str) {
|
|
30
30
|
return parseInt(str, 10);
|
|
31
|
-
}).option('-h, --host <string>', 'Host to run Storybook').option('-s, --static-dir <dir-names>', 'Directory where to load static files from', _utils.parseList).option('-c, --config-dir <dir-name>', 'Directory where to load Storybook configurations from').option('--https', 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.').option('--ssl-ca <ca>', 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)', _utils.parseList).option('--ssl-cert <cert>', 'Provide an SSL certificate. (Required with --https)').option('--ssl-key <key>', 'Provide an SSL key. (Required with --https)').option('--smoke-test', 'Exit after successful start').option('--ci', "CI mode (skip interactive prompts, don't open browser)").option('--no-open', 'Do not open Storybook automatically in the browser').option('--loglevel <level>', 'Control level of logging during build').option('--quiet', 'Suppress verbose build output').option('--no-version-updates', 'Suppress update check', true).option('--
|
|
31
|
+
}).option('-h, --host <string>', 'Host to run Storybook').option('-s, --static-dir <dir-names>', 'Directory where to load static files from', _utils.parseList).option('-c, --config-dir <dir-name>', 'Directory where to load Storybook configurations from').option('--https', 'Serve Storybook over HTTPS. Note: You must provide your own certificate information.').option('--ssl-ca <ca>', 'Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)', _utils.parseList).option('--ssl-cert <cert>', 'Provide an SSL certificate. (Required with --https)').option('--ssl-key <key>', 'Provide an SSL key. (Required with --https)').option('--smoke-test', 'Exit after successful start').option('--ci', "CI mode (skip interactive prompts, don't open browser)").option('--no-open', 'Do not open Storybook automatically in the browser').option('--loglevel <level>', 'Control level of logging during build').option('--quiet', 'Suppress verbose build output').option('--no-version-updates', 'Suppress update check', true).option('--disable-telemetry', 'Disable sending telemetry', // default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true
|
|
32
|
+
process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false').option('--enable-crash-reports', 'enable sending crash reports to telemetry data').option('--no-release-notes', 'Suppress automatic redirects to the release notes after upgrading', true).option('--no-manager-cache', 'Do not cache the manager UI').option('--no-dll', 'Do not use dll references (no-op)').option('--docs-dll', 'Use Docs dll reference (legacy)').option('--ui-dll', 'Use UI dll reference (legacy)').option('--debug-webpack', 'Display final webpack configurations for debugging purposes').option('--webpack-stats-json [directory]', 'Write Webpack Stats JSON to disk').option('--preview-url <string>', 'Disables the default storybook preview and lets your use your own').option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url').option('--docs', 'Build a documentation-only site using addon-docs').option('--modern', 'Use modern browser modules').parse(process.argv);
|
|
32
33
|
|
|
33
34
|
_nodeLogger.logger.setLevel(_commander.default.loglevel); // Workaround the `-h` shorthand conflict.
|
|
34
35
|
// Output the help if `-h` is called without any value.
|
package/dist/cjs/cli/prod.js
CHANGED
|
@@ -24,7 +24,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
24
24
|
function getProdCli(packageJson) {
|
|
25
25
|
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
|
|
26
26
|
|
|
27
|
-
_commander.default.version(packageJson.version).option('-s, --static-dir <dir-names>', 'Directory where to load static files from', _utils.parseList).option('-o, --output-dir <dir-name>', 'Directory where to store built files').option('-c, --config-dir <dir-name>', 'Directory where to load Storybook configurations from').option('--quiet', 'Suppress verbose build output').option('--loglevel <level>', 'Control level of logging during build').option('--no-dll', 'Do not use dll reference (no-op)').option('--docs-dll', 'Use Docs dll reference (legacy)').option('--ui-dll', 'Use UI dll reference (legacy)').option('--debug-webpack', 'Display final webpack configurations for debugging purposes').option('--webpack-stats-json [directory]', 'Write Webpack Stats JSON to disk').option('--preview-url <string>', 'Disables the default storybook preview and lets your use your own').option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url').option('--docs', 'Build a documentation-only site using addon-docs').option('--modern', 'Use modern browser modules').option('--no-manager-cache', 'Do not cache the manager UI').
|
|
27
|
+
_commander.default.version(packageJson.version).option('-s, --static-dir <dir-names>', 'Directory where to load static files from', _utils.parseList).option('-o, --output-dir <dir-name>', 'Directory where to store built files').option('-c, --config-dir <dir-name>', 'Directory where to load Storybook configurations from').option('--quiet', 'Suppress verbose build output').option('--loglevel <level>', 'Control level of logging during build').option('--no-dll', 'Do not use dll reference (no-op)').option('--docs-dll', 'Use Docs dll reference (legacy)').option('--ui-dll', 'Use UI dll reference (legacy)').option('--debug-webpack', 'Display final webpack configurations for debugging purposes').option('--webpack-stats-json [directory]', 'Write Webpack Stats JSON to disk').option('--preview-url <string>', 'Disables the default storybook preview and lets your use your own').option('--force-build-preview', 'Build the preview iframe even if you are using --preview-url').option('--docs', 'Build a documentation-only site using addon-docs').option('--modern', 'Use modern browser modules').option('--no-manager-cache', 'Do not cache the manager UI').option('--disable-telemetry', 'Disable sending telemetry', // default value is false, but if the user sets STORYBOOK_DISABLE_TELEMETRY, it can be true
|
|
28
|
+
process.env.STORYBOOK_DISABLE_TELEMETRY && process.env.STORYBOOK_DISABLE_TELEMETRY !== 'false').option('--enable-crash-reports', 'enable sending crash reports to telemetry data').parse(process.argv);
|
|
28
29
|
|
|
29
30
|
_nodeLogger.logger.setLevel(_commander.default.loglevel);
|
|
30
31
|
|
package/dist/cjs/dev-server.js
CHANGED
|
@@ -5,7 +5,7 @@ require("core-js/modules/es.symbol.description.js");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.router = void 0;
|
|
8
|
+
exports.router = exports.DEBOUNCE = void 0;
|
|
9
9
|
exports.storybookDevServer = storybookDevServer;
|
|
10
10
|
|
|
11
11
|
require("core-js/modules/es.promise.js");
|
|
@@ -16,6 +16,8 @@ var _compression = _interopRequireDefault(require("compression"));
|
|
|
16
16
|
|
|
17
17
|
var _coreCommon = require("@storybook/core-common");
|
|
18
18
|
|
|
19
|
+
var _telemetry = require("@storybook/telemetry");
|
|
20
|
+
|
|
19
21
|
var _middleware = require("./utils/middleware");
|
|
20
22
|
|
|
21
23
|
var _serverAddress = require("./utils/server-address");
|
|
@@ -26,6 +28,8 @@ var _serverStatics = require("./utils/server-statics");
|
|
|
26
28
|
|
|
27
29
|
var _storiesJson = require("./utils/stories-json");
|
|
28
30
|
|
|
31
|
+
var _metadata = require("./utils/metadata");
|
|
32
|
+
|
|
29
33
|
var _getServerChannel = require("./utils/get-server-channel");
|
|
30
34
|
|
|
31
35
|
var _openInBrowser = require("./utils/open-in-browser");
|
|
@@ -34,6 +38,8 @@ var _getPreviewBuilder = require("./utils/get-preview-builder");
|
|
|
34
38
|
|
|
35
39
|
var _getManagerBuilder = require("./utils/get-manager-builder");
|
|
36
40
|
|
|
41
|
+
var _StoryIndexGenerator = require("./utils/StoryIndexGenerator");
|
|
42
|
+
|
|
37
43
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
38
44
|
|
|
39
45
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -52,20 +58,86 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
52
58
|
|
|
53
59
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
54
60
|
|
|
61
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
62
|
+
|
|
63
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
64
|
+
|
|
65
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
66
|
+
|
|
55
67
|
// @ts-ignore
|
|
56
68
|
var router = new _express.Router();
|
|
57
69
|
exports.router = router;
|
|
70
|
+
var DEBOUNCE = 100;
|
|
71
|
+
exports.DEBOUNCE = DEBOUNCE;
|
|
58
72
|
|
|
59
73
|
async function storybookDevServer(options) {
|
|
60
74
|
var startTime = process.hrtime();
|
|
61
75
|
var app = (0, _express.default)();
|
|
62
76
|
var server = await (0, _serverInit.getServer)(app, options);
|
|
63
77
|
var serverChannel = (0, _getServerChannel.getServerChannel)(server);
|
|
78
|
+
var features = await options.presets.apply('features');
|
|
79
|
+
var core = await options.presets.apply('core'); // try get index generator, if failed, send telemetry without storyCount, then rethrow the error
|
|
80
|
+
|
|
81
|
+
var initializedStoryIndexGenerator = Promise.resolve(undefined);
|
|
82
|
+
|
|
83
|
+
if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
|
|
84
|
+
try {
|
|
85
|
+
var workingDir = process.cwd();
|
|
86
|
+
var directories = {
|
|
87
|
+
configDir: options.configDir,
|
|
88
|
+
workingDir: workingDir
|
|
89
|
+
};
|
|
90
|
+
var normalizedStories = (0, _coreCommon.normalizeStories)(await options.presets.apply('stories'), directories);
|
|
91
|
+
var generator = new _StoryIndexGenerator.StoryIndexGenerator(normalizedStories, _objectSpread(_objectSpread({}, directories), {}, {
|
|
92
|
+
workingDir: workingDir,
|
|
93
|
+
storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
|
|
94
|
+
storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
|
|
95
|
+
}));
|
|
96
|
+
initializedStoryIndexGenerator = generator.initialize().then(function () {
|
|
97
|
+
return generator;
|
|
98
|
+
});
|
|
99
|
+
(0, _storiesJson.useStoriesJson)({
|
|
100
|
+
router: router,
|
|
101
|
+
initializedStoryIndexGenerator: initializedStoryIndexGenerator,
|
|
102
|
+
normalizedStories: normalizedStories,
|
|
103
|
+
serverChannel: serverChannel,
|
|
104
|
+
workingDir: workingDir
|
|
105
|
+
});
|
|
106
|
+
} catch (err) {
|
|
107
|
+
if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
|
|
108
|
+
(0, _telemetry.telemetry)('start');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (!(core !== null && core !== void 0 && core.disableTelemetry)) {
|
|
116
|
+
initializedStoryIndexGenerator.then(async function (generator) {
|
|
117
|
+
if (!generator) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
var storyIndex = await generator.getIndex();
|
|
122
|
+
var payload = storyIndex ? {
|
|
123
|
+
storyIndex: {
|
|
124
|
+
storyCount: Object.keys(storyIndex.stories).length,
|
|
125
|
+
version: storyIndex.v
|
|
126
|
+
}
|
|
127
|
+
} : undefined;
|
|
128
|
+
(0, _telemetry.telemetry)('start', payload, {
|
|
129
|
+
configDir: options.configDir
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (!(core !== null && core !== void 0 && core.disableProjectJson)) {
|
|
135
|
+
(0, _metadata.useStorybookMetadata)(router, options.configDir);
|
|
136
|
+
}
|
|
137
|
+
|
|
64
138
|
app.use((0, _compression.default)({
|
|
65
139
|
level: 1
|
|
66
140
|
}));
|
|
67
|
-
var features = await options.presets.apply('features');
|
|
68
|
-
var core = await options.presets.apply('core');
|
|
69
141
|
|
|
70
142
|
if (typeof options.extendServer === 'function') {
|
|
71
143
|
options.extendServer(server);
|
|
@@ -87,10 +159,6 @@ async function storybookDevServer(options) {
|
|
|
87
159
|
res.header('Cross-Origin-Embedder-Policy', 'require-corp');
|
|
88
160
|
next();
|
|
89
161
|
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (features !== null && features !== void 0 && features.buildStoriesJson || features !== null && features !== void 0 && features.storyStoreV7) {
|
|
93
|
-
await (0, _storiesJson.useStoriesJson)(router, serverChannel, options);
|
|
94
162
|
} // User's own static files
|
|
95
163
|
|
|
96
164
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.typescript = exports.previewMainTemplate = exports.previewHead = exports.previewEntries = exports.previewBody = exports.managerMainTemplate = exports.logLevel = exports.features = exports.env = exports.config = exports.babel = void 0;
|
|
6
|
+
exports.typescript = exports.previewMainTemplate = exports.previewHead = exports.previewEntries = exports.previewBody = exports.managerMainTemplate = exports.logLevel = exports.features = exports.env = exports.core = exports.config = exports.babel = void 0;
|
|
7
7
|
|
|
8
8
|
require("core-js/modules/es.promise.js");
|
|
9
9
|
|
|
@@ -105,6 +105,42 @@ var typescript = function () {
|
|
|
105
105
|
|
|
106
106
|
exports.typescript = typescript;
|
|
107
107
|
|
|
108
|
+
var optionalEnvToBoolean = function (input) {
|
|
109
|
+
if (input === undefined) {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (input.toUpperCase() === 'FALSE') {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (input.toUpperCase() === 'TRUE') {
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (typeof input === 'string') {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return undefined;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* If for some reason this config is not applied, the reason is that
|
|
129
|
+
* likely there is an addon that does `export core = () => ({ someConfig })`,
|
|
130
|
+
* instead of `export core = (existing) => ({ ...existing, someConfig })`,
|
|
131
|
+
* just overwriting everything and not merging with the existing values.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
var core = async function (existing, options) {
|
|
136
|
+
return _objectSpread(_objectSpread({}, existing), {}, {
|
|
137
|
+
disableTelemetry: options.disableTelemetry === true,
|
|
138
|
+
enableCrashReports: options.enableCrashReports || optionalEnvToBoolean(process.env.STORYBOOK_ENABLE_CRASH_REPORTS)
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
exports.core = core;
|
|
143
|
+
|
|
108
144
|
var config = async function (base, options) {
|
|
109
145
|
return [...(await options.presets.apply('previewAnnotations', [], options)), ...base];
|
|
110
146
|
};
|
|
@@ -116,7 +152,15 @@ var features = async function (existing) {
|
|
|
116
152
|
postcss: true,
|
|
117
153
|
emotionAlias: false,
|
|
118
154
|
// TODO remove in 7.0, this no longer does anything
|
|
119
|
-
warnOnLegacyHierarchySeparator: true
|
|
155
|
+
warnOnLegacyHierarchySeparator: true,
|
|
156
|
+
buildStoriesJson: false,
|
|
157
|
+
storyStoreV7: false,
|
|
158
|
+
modernInlineRender: false,
|
|
159
|
+
breakingChangesV7: false,
|
|
160
|
+
interactionsDebugger: false,
|
|
161
|
+
babelModeV7: false,
|
|
162
|
+
argTypeTargetsV7: false,
|
|
163
|
+
previewMdx2: false
|
|
120
164
|
});
|
|
121
165
|
};
|
|
122
166
|
|
|
@@ -29,7 +29,7 @@ async function getPreviewBuilder(configDir) {
|
|
|
29
29
|
|
|
30
30
|
var builderPackage;
|
|
31
31
|
|
|
32
|
-
if (core) {
|
|
32
|
+
if (core !== null && core !== void 0 && core.builder) {
|
|
33
33
|
var _core$builder;
|
|
34
34
|
|
|
35
35
|
var builderName = typeof core.builder === 'string' ? core.builder : (_core$builder = core.builder) === null || _core$builder === void 0 ? void 0 : _core$builder.name;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.extractStorybookMetadata = extractStorybookMetadata;
|
|
7
|
+
exports.useStorybookMetadata = useStorybookMetadata;
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.promise.js");
|
|
10
|
+
|
|
11
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
12
|
+
|
|
13
|
+
var _telemetry = require("@storybook/telemetry");
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
async function extractStorybookMetadata(outputFile, configDir) {
|
|
18
|
+
var storybookMetadata = await (0, _telemetry.getStorybookMetadata)(configDir);
|
|
19
|
+
await _fsExtra.default.writeJson(outputFile, storybookMetadata);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function useStorybookMetadata(router, configDir) {
|
|
23
|
+
router.use('/project.json', async function (req, res) {
|
|
24
|
+
var storybookMetadata = await (0, _telemetry.getStorybookMetadata)(configDir);
|
|
25
|
+
res.header('Content-Type', 'application/json');
|
|
26
|
+
res.send(JSON.stringify(storybookMetadata));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -11,13 +11,9 @@ require("core-js/modules/es.promise.js");
|
|
|
11
11
|
|
|
12
12
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _lodash = require("lodash");
|
|
15
15
|
|
|
16
|
-
var _coreEvents =
|
|
17
|
-
|
|
18
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
19
|
-
|
|
20
|
-
var _StoryIndexGenerator = require("./StoryIndexGenerator");
|
|
16
|
+
var _coreEvents = require("@storybook/core-events");
|
|
21
17
|
|
|
22
18
|
var _watchStorySpecifiers = require("./watch-story-specifiers");
|
|
23
19
|
|
|
@@ -26,54 +22,34 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
26
22
|
var DEBOUNCE = 100;
|
|
27
23
|
exports.DEBOUNCE = DEBOUNCE;
|
|
28
24
|
|
|
29
|
-
async function extractStoriesJson(outputFile,
|
|
30
|
-
var generator =
|
|
31
|
-
await generator.
|
|
32
|
-
|
|
33
|
-
await _fsExtra.default.writeJson(outputFile, index);
|
|
25
|
+
async function extractStoriesJson(outputFile, initializedStoryIndexGenerator) {
|
|
26
|
+
var generator = await initializedStoryIndexGenerator;
|
|
27
|
+
var storyIndex = await generator.getIndex();
|
|
28
|
+
await _fsExtra.default.writeJson(outputFile, storyIndex);
|
|
34
29
|
}
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
storiesV2Compatibility: !(features !== null && features !== void 0 && features.breakingChangesV7) && !(features !== null && features !== void 0 && features.storyStoreV7),
|
|
46
|
-
storyStoreV7: features === null || features === void 0 ? void 0 : features.storyStoreV7
|
|
47
|
-
}); // Wait until someone actually requests `stories.json` before we start generating/watching.
|
|
48
|
-
// This is mainly for testing purposes.
|
|
49
|
-
|
|
50
|
-
var maybeInvalidate = (0, _debounce.default)(function () {
|
|
51
|
-
return serverChannel.emit(_coreEvents.default.STORY_INDEX_INVALIDATED);
|
|
31
|
+
function useStoriesJson({
|
|
32
|
+
router: router,
|
|
33
|
+
initializedStoryIndexGenerator: initializedStoryIndexGenerator,
|
|
34
|
+
workingDir = process.cwd(),
|
|
35
|
+
serverChannel: serverChannel,
|
|
36
|
+
normalizedStories: normalizedStories
|
|
37
|
+
}) {
|
|
38
|
+
var maybeInvalidate = (0, _lodash.debounce)(function () {
|
|
39
|
+
return serverChannel.emit(_coreEvents.STORY_INDEX_INVALIDATED);
|
|
52
40
|
}, DEBOUNCE, {
|
|
53
41
|
leading: true
|
|
54
42
|
});
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
async function
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}, function (specifier, path, removed) {
|
|
63
|
-
generator.invalidate(specifier, path, removed);
|
|
64
|
-
maybeInvalidate();
|
|
65
|
-
});
|
|
66
|
-
await generator.initialize();
|
|
67
|
-
}();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return startedPromise;
|
|
71
|
-
}
|
|
72
|
-
|
|
43
|
+
(0, _watchStorySpecifiers.watchStorySpecifiers)(normalizedStories, {
|
|
44
|
+
workingDir: workingDir
|
|
45
|
+
}, async function (specifier, path, removed) {
|
|
46
|
+
var generator = await initializedStoryIndexGenerator;
|
|
47
|
+
generator.invalidate(specifier, path, removed);
|
|
48
|
+
maybeInvalidate();
|
|
49
|
+
});
|
|
73
50
|
router.use('/stories.json', async function (req, res) {
|
|
74
|
-
await ensureStarted();
|
|
75
|
-
|
|
76
51
|
try {
|
|
52
|
+
var generator = await initializedStoryIndexGenerator;
|
|
77
53
|
var index = await generator.getIndex();
|
|
78
54
|
res.header('Content-Type', 'application/json');
|
|
79
55
|
res.send(JSON.stringify(index));
|
|
@@ -76,7 +76,7 @@ function createUpdateMessage(updateInfo, version) {
|
|
|
76
76
|
|
|
77
77
|
${_chalk.default.gray('Upgrade now:')} ${_nodeLogger.colors.green(upgradeCommand)}
|
|
78
78
|
|
|
79
|
-
${_chalk.default.gray('Read full changelog:')} ${_chalk.default.gray.underline('https://
|
|
79
|
+
${_chalk.default.gray('Read full changelog:')} ${_chalk.default.gray.underline('https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md')}
|
|
80
80
|
` : '';
|
|
81
81
|
} catch (e) {
|
|
82
82
|
updateMessage = '';
|