| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | "use strict";Object.defineProperty(exports, "__esModule", {  value: true});exports.default = void 0;var _path = _interopRequireDefault(require("path"));var _schemaUtils = _interopRequireDefault(require("schema-utils"));var _webpackLog = _interopRequireDefault(require("webpack-log"));var _options = _interopRequireDefault(require("./options.json"));var _preProcessPattern = _interopRequireDefault(require("./preProcessPattern"));var _processPattern = _interopRequireDefault(require("./processPattern"));var _postProcessPattern = _interopRequireDefault(require("./postProcessPattern"));function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }class CopyPlugin {  constructor(patterns = [], options = {}) {    (0, _schemaUtils.default)(_options.default, patterns, this.constructor.name);    this.patterns = patterns;    this.options = options;  }  apply(compiler) {    const fileDependencies = new Set();    const contextDependencies = new Set();    const written = {};    let context;    if (!this.options.context) {      ({        context      } = compiler.options);    } else if (!_path.default.isAbsolute(this.options.context)) {      context = _path.default.join(compiler.options.context, this.options.context);    } else {      ({        context      } = this.options);    }    const logger = (0, _webpackLog.default)({      name: 'copy-webpack-plugin',      level: this.options.logLevel || 'warn'    });    const plugin = {      name: 'CopyPlugin'    };    compiler.hooks.emit.tapAsync(plugin, (compilation, callback) => {      logger.debug('starting emit');      const globalRef = {        logger,        compilation,        written,        fileDependencies,        contextDependencies,        context,        inputFileSystem: compiler.inputFileSystem,        output: compiler.options.output.path,        ignore: this.options.ignore || [],        copyUnmodified: this.options.copyUnmodified,        concurrency: this.options.concurrency      };      if (globalRef.output === '/' && compiler.options.devServer && compiler.options.devServer.outputPath) {        globalRef.output = compiler.options.devServer.outputPath;      }      const {        patterns      } = this;      Promise.all(patterns.map(pattern => Promise.resolve().then(() => (0, _preProcessPattern.default)(globalRef, pattern)) // Every source (from) is assumed to exist here      // eslint-disable-next-line no-shadow      .then(pattern => (0, _processPattern.default)(globalRef, pattern).then(files => {        if (!files) {          return Promise.resolve();        }        return Promise.all(files.filter(Boolean).map(file => (0, _postProcessPattern.default)(globalRef, pattern, file)));      })))).catch(error => {        compilation.errors.push(error);      }).then(() => {        logger.debug('finishing emit');        callback();      });    });    compiler.hooks.afterEmit.tapAsync(plugin, (compilation, callback) => {      logger.debug('starting after-emit'); // Add file dependencies      if ('addAll' in compilation.fileDependencies) {        compilation.fileDependencies.addAll(fileDependencies);      } else {        for (const fileDependency of fileDependencies) {          compilation.fileDependencies.add(fileDependency);        }      } // Add context dependencies      if ('addAll' in compilation.contextDependencies) {        compilation.contextDependencies.addAll(contextDependencies);      } else {        for (const contextDependency of contextDependencies) {          compilation.contextDependencies.add(contextDependency);        }      }      logger.debug('finishing after-emit');      callback();    });  }}var _default = CopyPlugin;exports.default = _default;
 |