docs: function getOptions(opts, cb) {
    if (typeof opts !== 'object') {
      throw new Error('Invalid: options is not an object.');
    }
    var options = clonedeep(opts || {});
  
    options.sourceComments = options.sourceComments || false;
    if (options.hasOwnProperty('file')) {
      options.file = getInputFile(options);
    }
    options.outFile = getOutputFile(options);
    options.includePaths = buildIncludePaths(options);
    options.precision = parseInt(options.precision) || 5;
    options.sourceMap = getSourceMap(options);
    options.style = getStyle(options);
    options.indentWidth = getIndentWidth(options);
    options.indentType = getIndentType(options);
    options.linefeed = getLinefeed(options);
  
    // context object represents node-sass environment
    options.context = { options: options, callback: cb };
  
    options.result = {
      stats: getStats(options)
    };
  
    return options;
  }