text: 'use strict';
  
  Object.defineProperty(exports, "__esModule", {
      value: true
  });
  
  var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  var _fs = require('fs');
  
  var _fs2 = _interopRequireDefault(_fs);
  
  var _gulpUtil = require('gulp-util');
  
  var _gulpUtil2 = _interopRequireDefault(_gulpUtil);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  var Logger = function () {
      function Logger() {
          _classCallCheck(this, Logger);
      }
  
      _createClass(Logger, null, [{
          key: 'heading',
  
  
          /**
           * Log a heading to the console.
           *
           * @param  {string} heading
           * @return {Logger}
           */
          value: function heading(_heading) {
              console.log(''); // line break
  
              console.log(_gulpUtil2.default.colors.black(_gulpUtil2.default.colors.bgGreen(_heading)));
  
              return Logger;
          }
      }, {
          key: 'message',
  
  
          /**
           * Log a general message to the console.
           *
           * @param  {string} message
           * @return {Logger}
           */
          value: function message(_message) {
              console.log(_message);
  
              return Logger;
          }
      }, {
          key: 'files',
  
  
          /**
           * Log a set of files to the console.
           *
           * @param  {string|Array} files
           * @param  {boolean}      checkForFiles
           * @return {Logger}
           */
          value: function files(_files, checkForFiles) {
              _files = Array.isArray(_files) ? _files : [_files];
              var spacer = '   - ';
  
              _files.forEach(function (file) {
                  if (!checkForFiles || assertFileExists(file)) {
                      console.log(spacer + file);
                  } else {
                      console.log(spacer + _gulpUtil2.default.colors.bgRed(file) + ' <-- Not Found');
                  }
              });
  
              console.log(); // For a line break.
  
              return Logger;
          }
      }]);
  
      return Logger;
  }();
  
  /**
   * Assert that the given file exists.
   *
   * @param  {string} file
   * @return {boolean}
   */
  
  
  exports.default = Logger;
  var assertFileExists = function assertFileExists(file) {
      // If this file begins with a !, then the
      // user intends to exclude it from the
      // src set; we're free to ignore it.
      if (file.indexOf('!') == 0) {
          return true;
      }
  
      return file.match(/\*/) || _fs2.default.existsSync(file);
  };