/
common-preset.ts
62 lines (51 loc) · 1.89 KB
/
common-preset.ts
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
import {
getPreviewBodyTemplate,
getPreviewHeadTemplate,
getManagerMainTemplate,
getPreviewMainTemplate,
loadCustomBabelConfig,
babelConfig,
loadEnvs,
Options,
} from '@storybook/core-common';
export const babel = async (_: unknown, options: Options) => {
const { configDir, presets } = options;
return loadCustomBabelConfig(
configDir,
() => presets.apply('babelDefault', babelConfig(), options) as any
);
};
export const logLevel = (previous: any, options: Options) => previous || options.loglevel || 'info';
export const previewHeadTemplate = async (base: any, { configDir, presets }: Options) => {
const interpolations = await presets.apply<Record<string, string>>('env');
return getPreviewHeadTemplate(configDir, interpolations);
};
export const env = async () => {
return loadEnvs({ production: true }).raw;
};
export const previewBodyTemplate = async (base: any, { configDir, presets }: Options) => {
const interpolations = await presets.apply<Record<string, string>>('env');
return getPreviewBodyTemplate(configDir, interpolations);
};
export const previewMainTemplate = () => getPreviewMainTemplate();
export const managerMainTemplate = () => getManagerMainTemplate();
export const previewEntries = () => [
require.resolve('../globals/polyfills'),
require.resolve('../globals/globals'),
];
export const typescript = () => ({
check: false,
// 'react-docgen' faster but produces lower quality typescript results
reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {
shouldExtractLiteralValuesFromEnum: true,
shouldRemoveUndefinedFromOptional: true,
propFilter: (prop: any) => (prop.parent ? !/node_modules/.test(prop.parent.fileName) : true),
// NOTE: this default cannot be changed
savePropValueAsString: true,
},
});
export const features = async (existing: Record<string, boolean>) => ({
...existing,
postcss: true,
});