{"version":3,"file":"args-to-arr.mjs","sources":["../src/index.ts"],"sourcesContent":["import isArrayLike from 'is-array-like';\r\n\r\nfunction toArray<T>(\r\n  args: IArguments | T[] | string | ArrayLike<T>,\r\n  start?: number | null,\r\n): T[] {\r\n\r\n  if (!isArrayLike(args) && args !== '') {\r\n    // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\r\n    throw new TypeError(`${args} can't be converted to array.`);\r\n  }\r\n\r\n  if (start == null) {\r\n    start = 0;\r\n  }\r\n\r\n  if (typeof start !== 'number' || !Number.isFinite(start)) {\r\n    throw new TypeError(`${start} is not a valid start point.`);\r\n  }\r\n\r\n  const { length: len } = args;\r\n\r\n  if (start < 0) {\r\n    start += len;\r\n  }\r\n\r\n  const argsObj = Object(args) as Record<number, T>;\r\n  const result = new Array<T>(len - start);\r\n\r\n  for (let i = start; i < len; i++) {\r\n    if (i in argsObj) {\r\n      result[i - start] = argsObj[i];\r\n    }\r\n  }\r\n\r\n  return result;\r\n\r\n}\r\n\r\nexport default toArray;\r\n"],"names":["toArray","args","start","isArrayLike","TypeError","Number","isFinite","len","length","argsObj","Object","result","Array","i"],"mappings":";;AAEA,SAASA,OAAT,CACEC,IADF,EAEEC,KAFF;AAKE,MAAI,CAACC,WAAW,CAACF,IAAD,CAAZ,IAAsBA,IAAI,KAAK,EAAnC,EAAuC;AACrC;AACA,UAAM,IAAIG,SAAJ,WAAiBH,IAAjB,mCAAN;AACD;;AAED,MAAIC,KAAK,IAAI,IAAb,EAAmB;AACjBA,IAAAA,KAAK,GAAG,CAAR;AACD;;AAED,MAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAACG,MAAM,CAACC,QAAP,CAAgBJ,KAAhB,CAAlC,EAA0D;AACxD,UAAM,IAAIE,SAAJ,WAAiBF,KAAjB,kCAAN;AACD;;MAEeK,MAAQN,KAAhBO;;AAER,MAAIN,KAAK,GAAG,CAAZ,EAAe;AACbA,IAAAA,KAAK,IAAIK,GAAT;AACD;;AAED,MAAME,OAAO,GAAGC,MAAM,CAACT,IAAD,CAAtB;AACA,MAAMU,MAAM,GAAG,IAAIC,KAAJ,CAAaL,GAAG,GAAGL,KAAnB,CAAf;;AAEA,OAAK,IAAIW,CAAC,GAAGX,KAAb,EAAoBW,CAAC,GAAGN,GAAxB,EAA6BM,CAAC,EAA9B,EAAkC;AAChC,QAAIA,CAAC,IAAIJ,OAAT,EAAkB;AAChBE,MAAAA,MAAM,CAACE,CAAC,GAAGX,KAAL,CAAN,GAAoBO,OAAO,CAACI,CAAD,CAA3B;AACD;AACF;;AAED,SAAOF,MAAP;AAED;;;;"}