保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
const join = require('path').join;
 
const pluginCompat = require('./util/plugin-compat');
 
let AppendSerializer;
 
const _blockSizeByName = {
  data: 4 * 1024,
  md5: 128,
  'missing-resolve': 256,
  module: 4 * 1024,
  'module-resolve': 1024,
  resolver: 256,
};
 
class SerializerAppendPlugin {
  apply(compiler) {
    pluginCompat.tap(
      compiler,
      'hardSourceCacheFactory',
      'AppendSerializer',
      factory => info => {
        if (info.type === 'data') {
          return SerializerAppendPlugin.createSerializer(info);
        }
        return factory(info);
      },
    );
  }
}
 
SerializerAppendPlugin.createSerializer = ({
  cacheDirPath,
  name,
  autoParse,
}) => {
  if (!AppendSerializer) {
    AppendSerializer = require('./SerializerAppend');
  }
 
  return new AppendSerializer({
    cacheDirPath: join(cacheDirPath, name),
    blockSize: _blockSizeByName[name],
    autoParse: autoParse,
  });
};
 
module.exports = SerializerAppendPlugin;