UNPKG

1.15 kBJavaScriptView Raw
1import normalizeTransformer from './normalize-transformer.js';
2import toArray from './to-array.js';
3
4const asyncMapObj = async (obj, fn) =>
5 Object.fromEntries(
6 await Promise.all(
7 Object.entries(obj ?? {}).map(async ([key, val]) => [
8 key,
9 await fn(val, key)
10 ])
11 )
12 );
13
14export default async config => {
15 const buffers = {};
16
17 config = await asyncMapObj(
18 config,
19 async ({ builds, transformers, manifestPath, requires }, name) => ({
20 builds: await asyncMapObj(
21 builds,
22 async ({ maxChunkSize, transformers, ...build }) => ({
23 ...build,
24 maxChunkSize: maxChunkSize || Infinity,
25 transformers: await Promise.all(
26 toArray(transformers).map(normalizeTransformer)
27 )
28 })
29 ),
30 cache: { buffers, files: {} },
31 manifestPath,
32 name,
33 requires: toArray(requires),
34 transformers: await Promise.all(
35 toArray(transformers).map(normalizeTransformer)
36 )
37 })
38 );
39
40 Object.values(config).forEach(
41 env => (env.requires = toArray(env.requires).map(name => config[name]))
42 );
43
44 return config;
45};