console-prefix-webpack-plugin
Version:
Add a prefix before the console method for Webpack plugin.
2 lines (1 loc) • 3.82 kB
JavaScript
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _create_class(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}var ConsolePrefixWebpackPlugin=function(){"use strict";function ConsolePrefixWebpackPlugin(options){_class_call_check(this,ConsolePrefixWebpackPlugin);var _ref=options||{},prefix=_ref.prefix,methodList=_ref.methodList,webpack=_ref.webpack;this.prefix=prefix||"";this.methodList=methodList||["log"];this.webpack=webpack}_create_class(ConsolePrefixWebpackPlugin,[{key:"modifySource",value:function modifySource(source){var methodList=this.methodList;var newSource=source;if(Array.isArray(methodList)){var reg=new RegExp("console\\.(".concat(methodList.join("|"),")\\((['\"`])"),"g");newSource=newSource.replace(reg,"console.$1($2".concat(this.prefix))}return newSource}},{key:"apply",value:function apply(compiler){var _this=this;if(!this.webpack){console.log("ConsolePrefixWebpackPlugin: webpack is required.");return}compiler.hooks.compilation.tap("ConsolePrefixWebpackPlugin",function(compilation){compilation.hooks.processAssets.tap({name:"ConsolePrefixWebpackPlugin",stage:_this.webpack.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},function(assets){var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=Object.entries(assets)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _step_value=_sliced_to_array(_step.value,2),name=_step_value[0],source=_step_value[1];if(name.endsWith(".js")){var modifiedSource=_this.modifySource(source.source());assets[name]=new _this.webpack.sources.RawSource(modifiedSource)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}})})}}]);return ConsolePrefixWebpackPlugin}();export default ConsolePrefixWebpackPlugin;