1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- const join = require('path').join;
- const pluginCompat = require('./util/plugin-compat');
- let LevelDbSerializer;
- let AppendSerializerPlugin;
- class HardSourceLevelDbSerializerPlugin {
- apply(compiler) {
- pluginCompat.tap(
- compiler,
- 'hardSourceCacheFactory',
- 'LevelDbSerializer',
- factory => info => {
- if (info.type === 'data') {
- return HardSourceLevelDbSerializerPlugin.createSerializer(info);
- }
- return factory(info);
- },
- );
- }
- }
- HardSourceLevelDbSerializerPlugin.createSerializer = info => {
- if (!LevelDbSerializer) {
- try {
- LevelDbSerializer = require('./SerializerLeveldb');
- } catch (e) {}
- }
- if (LevelDbSerializer) {
- return new LevelDbSerializer({
- cacheDirPath: join(info.cacheDirPath, info.name),
- });
- } else {
- if (!AppendSerializerPlugin) {
- AppendSerializerPlugin = require('./SerializerAppendPlugin');
- }
- return AppendSerializerPlugin.createSerializer(info);
- }
- };
- module.exports = HardSourceLevelDbSerializerPlugin;
|