<commit_before>import {AsyncAfWrapperProto as AsyncAfProto} from './AsyncAfWrapper';

import logAF from './methods/other/logAF';
import forEachAF from './methods/combined/forEachAF';
import mapAF from './methods/combined/mapAF';
import filterAF from './methods/combined/filterAF';

class AsyncAF extends AsyncAfProto {
  constructor(promises) {
    super();
    this.innerVal = promises;
  }
}

const AsyncAfCreator = AsyncAF;
// eslint-disable-next-line no-class-assign, no-shadow
AsyncAF = function AsyncAF(...args) {
  return new AsyncAfCreator(...args);
};
<commit_msg>(refactor) simplify AsyncAF class by moving logic to AsyncAfProto<commit_after>import {AsyncAfWrapperProto as AsyncAfProto} from './AsyncAfWrapper';

import logAF from './methods/other/logAF';
import forEachAF from './methods/combined/forEachAF';
import mapAF from './methods/combined/mapAF';
import filterAF from './methods/combined/filterAF';

class AsyncAF extends AsyncAfProto {}

const AsyncAfCreator = AsyncAF;
// eslint-disable-next-line no-class-assign
AsyncAF = function AsyncAF(...args) {
  return new AsyncAfCreator(...args);
};

{'fraction_non_alphanumeric': 0.1275831087151842, 'fraction_numerical': 0.0, 'mean_word_length': 4.863157894736842, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4575099', 'n_tokens_mistral': 335, 'n_tokens_neox': 333, 'n_words': 87}