const includesAF = function (searchItem, fromIndex = 0) {
  return this.then(arrOrStr => {
    // eslint-disable-next-line curly
    if (arrOrStr == null || arrOrStr.length == null || typeof arrOrStr === 'function')
      throw TypeError(
        `includesAF cannot be called on ${arrOrStr}, only on an Array, String, or array-like Object`,
      );
    return (typeof arrOrStr === 'string' ? String : Array)
      .prototype.includes.call(arrOrStr, searchItem, fromIndex);
  });
};

export default includesAF;

@@ -1,8 +1,1571 @@
+/**%0A * determines whether an array, string, or array-like object includes a certain element or string, returning true or false as appropriate%0A *%0A * @param %7B?%7D searchItem the element or string to search for%0A * @param %7BNumber=%7D fromIndex the index at which to begin searching for %60searchItem%60; a negative value searches from the index of %60array/string.length - fromIndex%60; defaults to 0%0A * @returns %7BPromise.%3CBoolean%3E%7D %60Promise%60 that resolves to %60true%60 if %60searchItem%60 is found; otherwise, %60false%60%0A * @example%0A *%0A * // includesAF on an array of promises%0A * const nums = %5B1, 2, 3%5D.map(n =%3E Promise.resolve(n));%0A *%0A * AsyncAF(nums).includesAF(2); // Promise that resolves to true%0A *%0A * AsyncAF(nums).includesAF(5); // Promise that resolves to false%0A *%0A * AsyncAF(nums).includesAF(1, 1); // Promise that resolves to false%0A *%0A * AsyncAF(nums).includesAF(3, -1); // Promise that resolves to true%0A *%0A * // includesAF on a promise-wrapped string%0A * const string = Promise.resolve('test string');%0A *%0A * AsyncAF(string).includesAF('test'); // Promise that resolves to true%0A *%0A * AsyncAF(string).includesAF('nope'); // Promise that resolves to false%0A *%0A * AsyncAF(string).includesAF('test', 5); // Promise that resolves to false%0A *%0A * AsyncAF(string).includesAF('string', -6); // Promise that resolves to true%0A *%0A * // includesAF on an array-like object%0A * (async function () %7B%0A *   if (await AsyncAF(arguments).includesAF(2)) %7B%0A *     console.log('2 is included');%0A *   %7D%0A * %7D)(1, 2, 3); // logs '2 is included'%0A *%0A * @since 3.4.0%0A * @see includes%0A * @memberof AsyncAF#%0A */%0A
 const in

add jsdoc for includesAF method