code: function gulpSassMonster (opts = {}, sync = false) {
  	/**
  	 * Read buffer and transform
  	 * @param {Buffer} file
  	 * @param {...*} args
  	 */
  	function readBuffer (file, ...args) {
  		let cb = args[1];
  		let notSupported = notSupportedFile(file, pluginError, {
  			silent: true
  		});
  
  		if (Array.isArray(notSupported)) {
  			let status = notSupported.shift();
  			if (status === 'isEmpty') {
  				file.extname = '.css';
  				return cb(null, file);
  			}
  			return cb(notSupported[0], notSupported[1]);
  		}
  
  		// get render options;
  		const options = setupOptions(opts, file);
  
  		if (sync) {
  			try {
  				let result = sass.renderSync(options);
  				pushFile(file, result, options, cb);
  			} catch (error) {
  				return cb(errorHandler(error, file));
  			}
  		} else {
  			sass.render(options, (error, result) => {
  				if (error) {
  					error = errorHandler(error, file);
  					return cb(error);
  				}
  				pushFile(file, result, options, cb);
  			});
  		}
  	}
  
  	return through2.obj(readBuffer);
  }
docs: ---------------------------------------- Public ---------------------------------------- 
  Core plugin method
  @param {Object} [opts={}] - user options
  @param {boolean} [sync=false]
  @returns {DestroyableTransform}
  @sourceCode