All files / src/apps/gbs-music-web/lang musicWebLocalesPlugin.js

0% Statements 0/14
0% Branches 0/3
0% Functions 0/5
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                                                 
/* eslint-disable @typescript-eslint/no-var-requires */
const {
  defaultManifestPath,
  defaultOutputDir,
  generateMusicWebLocales,
  listLocaleFiles,
  removeGeneratedMusicWebLocales,
} = require("./musicWebLocales");
 
class MusicWebLocalesPlugin {
  apply(compiler) {
    const generate = async () => {
      await Promise.resolve(
        generateMusicWebLocales({
          logger: { warn: () => {} },
        }),
      );
    };
 
    compiler.hooks.beforeRun.tapPromise("MusicWebLocalesPlugin", generate);
    compiler.hooks.watchRun.tapPromise("MusicWebLocalesPlugin", generate);
 
    compiler.hooks.afterCompile.tap("MusicWebLocalesPlugin", (compilation) => {
      compilation.fileDependencies.add(defaultManifestPath);
      for (const localeFile of listLocaleFiles()) {
        compilation.fileDependencies.add(localeFile);
      }
    });
 
    compiler.hooks.done.tap("MusicWebLocalesPlugin", (stats) => {
      Iif (compiler.watchMode || stats.hasErrors()) {
        return;
      }
 
      removeGeneratedMusicWebLocales(defaultOutputDir);
    });
  }
}
 
module.exports = MusicWebLocalesPlugin;