1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* eslint-env node */
const path = require("path");
const projectRoot = path.resolve(__dirname, "../../../../");
// ./mach environment --format json
// topobjdir should be the build location
module.exports = {
stories: [
"../stories/**/*.stories.mdx",
"../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)",
`${projectRoot}/toolkit/**/*.stories.@(js|jsx|mjs|ts|tsx)`,
],
// Additions to the staticDirs might also need to get added to
// MozXULElement.importCss in preview.mjs to enable auto-reloading.
staticDirs: [
`${projectRoot}/toolkit/content/widgets/`,
`${projectRoot}/browser/themes/shared/`,
],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-a11y",
],
framework: "@storybook/web-components",
webpackFinal: async (config, { configType }) => {
// `configType` has a value of 'DEVELOPMENT' or 'PRODUCTION'
// You can change the configuration based on that.
// 'PRODUCTION' is used when building the static version of storybook.
// Make whatever fine-grained changes you need
config.resolve.alias.browser = `${projectRoot}/browser`;
config.resolve.alias.toolkit = `${projectRoot}/toolkit`;
config.resolve.alias[
"toolkit-widgets"
] = `${projectRoot}/toolkit/content/widgets/`;
config.module.rules.push({
test: /\.ftl$/,
type: "asset/source",
});
config.module.rules.push({
test: /\.mjs/,
loader: path.resolve(__dirname, "./chrome-uri-loader.js"),
});
config.optimization = {
splitChunks: false,
runtimeChunk: false,
sideEffects: false,
usedExports: false,
concatenateModules: false,
minimizer: [],
};
// Return the altered config
return config;
},
core: {
builder: "webpack5",
},
};
|