code: func NewSource(opts ...SrcOption) (*Source, error) {
  	s := &Source{
  		records: make(chan record, 100),
  	}
  	for _, opt := range opts {
  		err := opt(s)
  		if err != nil {
  			return nil, err
  		}
  	}
  	go s.run()
  	return s, nil
  }
docs: // NewSource gets a new file source which will index json data from a file or
  // all files in a directory.