forked from daren.hsu/line_push
34 lines
716 B
JavaScript
34 lines
716 B
JavaScript
const join = require('path').join;
|
|
|
|
const pluginCompat = require('./util/plugin-compat');
|
|
|
|
let JsonSerializer;
|
|
|
|
class SerializerJsonPlugin {
|
|
apply(compiler) {
|
|
pluginCompat.tap(
|
|
compiler,
|
|
'hardSourceCacheFactory',
|
|
'JsonSerializer',
|
|
factory => info => {
|
|
if (info.type === 'data') {
|
|
return SerializerJsonPlugin.createSerializer(info);
|
|
}
|
|
return factory(info);
|
|
},
|
|
);
|
|
}
|
|
}
|
|
|
|
SerializerJsonPlugin.createSerializer = ({ cacheDirPath, name }) => {
|
|
if (!JsonSerializer) {
|
|
JsonSerializer = require('./SerializerJson');
|
|
}
|
|
|
|
return new JsonSerializer({
|
|
cacheDirPath: join(cacheDirPath, name),
|
|
});
|
|
};
|
|
|
|
module.exports = SerializerJsonPlugin;
|