code: function startline(opt) {
  
    var options = opt || Object.create(null);
  
    // file
    var file;
    if (Boolean(options.file)) {
      file = require('path').resolve(String(options.file));
      if (!fs.existsSync(file)) {
        throw new Error('file does not exist');
      }
      if (!fs.statSync(file).isFile()) {
        throw new Error('path is not a file');
      }
    } else {
      throw new Error('"file" is required');
    }
  
    // clean
    var my = {
      file: file,
      encoding: options.encoding,
      flag: String(options.flag || 'r'),
      mode: Number(options.mode) || 444,
      autoClose: options.autoClose === false ? false : true,
      start: Number(options.start) || 0,
      end: Number(options.end),
      rc4: options.rc4,
      autokey: options.autokey,
      lodash: Boolean(options.autokey),
    };
  
    return new Startline(my);
  }
docs: /*
  class
   
  export class
  
  @exports startline
  @function startline
  @param {Object} opt - various options. Check README.md
  @return {Startline}