UNPKG

args-to-arr

Version:

converts arguments or any other array-like object into an array starting from specific index.

1 lines 1.98 kB
{"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;;;;"}