-
-
Notifications
You must be signed in to change notification settings - Fork 616
Expand file tree
/
Copy pathprocessConfig.ts
More file actions
25 lines (20 loc) · 729 Bytes
/
processConfig.ts
File metadata and controls
25 lines (20 loc) · 729 Bytes
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
import type { Configuration } from 'webpack';
import { ConfigurationFactory } from '../WebpackConfig.js';
const trivialConfigurationFactory =
(config: Configuration): ConfigurationFactory =>
() =>
config;
export type ConfigProcessor = (
config: ConfigurationFactory,
) => Promise<Configuration>;
// Ensure processing logic is run for both `Configuration` and
// `ConfigurationFactory` config variants.
const processConfig = async (
processor: ConfigProcessor,
config: Configuration | ConfigurationFactory,
): Promise<Configuration> => {
const configFactory =
typeof config === 'function' ? config : trivialConfigurationFactory(config);
return processor(configFactory);
};
export default processConfig;