hunk.code_window:  *
    * @param {S} initialState Initial state.
    * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false).
    * @param {function (state: S): S} iterate Iteration step function.
    * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence.
    * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately.
    * @returns {Observable<T>} The generated sequence.
    */
     export function generate<T, S>(initialState: S,
  
hunk.labels: keep keep keep keep replace keep keep keep keep
hunk.after_edit:  * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated)
  
hunk.file_path: src/internal/observable/generate.ts
hunk.type: replace
file: var _ = require('lodash');
  
  module.exports = function extractDecoratedClassesProcessor(EXPORT_DOC_TYPES) {
  
    // Add the "directive" docType into those that can be exported from a module
    EXPORT_DOC_TYPES.push('directive', 'pipe');
  
    return {
      $runAfter: ['processing-docs'],
      $runBefore: ['docs-processed'],
      decoratorTypes: ['Directive', 'Component', 'Pipe'],
      $process: function(docs) {
        var decoratorTypes = this.decoratorTypes;
  
        _.forEach(docs, function(doc) {
  
          _.forEach(doc.decorators, function(decorator) {
  
            if (decoratorTypes.indexOf(decorator.name) !== -1) {
              doc.docType = decorator.name.toLowerCase();
              doc[doc.docType + 'Options'] = decorator.argumentInfo[0];
            }
          });
        });
  
        return docs;
      }
    };
  };
  