From f73e87dfc5ea4743b4a586f8306dfee919dcba62 Mon Sep 17 00:00:00 2001 From: abouthiroppy Date: Thu, 29 Dec 2016 13:51:24 +0900 Subject: [PATCH] refactor(BannerPlugin): update BannerPlugin to es2015 --- lib/BannerPlugin.js | 71 ++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/lib/BannerPlugin.js b/lib/BannerPlugin.js index 06b832c0e..16566b233 100644 --- a/lib/BannerPlugin.js +++ b/lib/BannerPlugin.js @@ -1,40 +1,51 @@ /* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -var ConcatSource = require("webpack-sources").ConcatSource; -var ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra + */ + +"use strict"; + +const ConcatSource = require("webpack-sources").ConcatSource; +const ModuleFilenameHelpers = require("./ModuleFilenameHelpers"); function wrapComment(str) { - if(str.indexOf("\n") < 0) return "/*! " + str + " */"; - return "/*!\n * " + str.split("\n").join("\n * ") + "\n */"; + if(!str.includes("\n")) return `/*! ${str} */`; + return `/*!\n * ${str.split("\n").join("\n * ")}\n */`; } -function BannerPlugin(options) { - if(arguments.length > 1) - throw new Error("BannerPlugin only takes one argument (pass an options object)"); - if(typeof options === "string") - options = { - banner: options - }; - this.options = options || {}; - this.banner = this.options.raw ? options.banner : wrapComment(options.banner); -} -module.exports = BannerPlugin; +class BannerPlugin { + constructor(options) { + if(arguments.length > 1) + throw new Error("BannerPlugin only takes one argument (pass an options object)"); + if(typeof options === "string") + options = { + banner: options + }; + this.options = options || {}; + this.banner = this.options.raw ? options.banner : wrapComment(options.banner); + } -BannerPlugin.prototype.apply = function(compiler) { - var options = this.options; - var banner = this.banner; + apply(compiler) { + let options = this.options; + let banner = this.banner; - compiler.plugin("compilation", function(compilation) { - compilation.plugin("optimize-chunk-assets", function(chunks, callback) { - chunks.forEach(function(chunk) { - if(options.entryOnly && !chunk.isInitial()) return; - chunk.files.filter(ModuleFilenameHelpers.matchObject.bind(undefined, options)).forEach(function(file) { - compilation.assets[file] = new ConcatSource(banner, "\n", compilation.assets[file]); + compiler.plugin("compilation", (compilation) => { + compilation.plugin("optimize-chunk-assets", (chunks, callback) => { + chunks.forEach((chunk) => { + if(options.entryOnly && !chunk.isInitial()) return; + + chunk.files + .filter(ModuleFilenameHelpers.matchObject.bind(undefined, options)) + .forEach((file) => + compilation.assets[file] = new ConcatSource( + banner, "\n", compilation.assets[file] + ) + ); }); + callback(); }); - callback(); }); - }); -}; + } +} + +module.exports = BannerPlugin;