super-range
Advanced tools
+10
-15
@@ -26,18 +26,6 @@ "use strict"; | ||
| module.exports = __toCommonJS(src_exports); | ||
| var baseRange = function* (start = 0, end = 0, step = 1) { | ||
| let index = 0; | ||
| const length = Math.floor((end - start) / step) + 1; | ||
| while (index < length) { | ||
| yield start + index++ * step; | ||
| } | ||
| }; | ||
| function range(first, limit, interval) { | ||
| let start = first; | ||
| let end = limit; | ||
| let step = interval; | ||
| function* range(start, end, step) { | ||
| if (end === void 0) { | ||
| end = start - 1; | ||
| end = start; | ||
| start = 0; | ||
| } else { | ||
| end = start < end ? end - 1 : end + 1; | ||
| } | ||
@@ -47,4 +35,11 @@ if (step === void 0) { | ||
| } | ||
| return baseRange(start, end, step); | ||
| if (start < end && step < 0 || start > end && step > 0) { | ||
| return; | ||
| } | ||
| let current = start; | ||
| while (step > 0 && current < end || step < 0 && current > end) { | ||
| yield current; | ||
| current += step; | ||
| } | ||
| } | ||
| //# sourceMappingURL=index.cjs.map |
| { | ||
| "version": 3, | ||
| "sources": ["../src/index.ts"], | ||
| "sourcesContent": ["const baseRange = function* (start = 0, end = 0, step = 1) {\n let index = 0;\n const length = Math.floor((end - start) / step) + 1;\n while (index < length) {\n yield start + index++ * step;\n }\n};\n\nexport function range(\n first: number,\n limit?: number,\n interval?: number\n): Generator<number, void, unknown> {\n let start = first;\n let end = limit;\n let step = interval;\n\n if (end === undefined) {\n end = start - 1;\n start = 0;\n } else {\n end = start < end ? end - 1 : end + 1;\n }\n\n if (step === undefined) {\n step = start < end! ? 1 : -1;\n }\n return baseRange(start, end, step);\n}\n"], | ||
| "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,YAAY,WAAW,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG;AACzD,MAAI,QAAQ;AACZ,QAAM,SAAS,KAAK,OAAO,MAAM,SAAS,IAAI,IAAI;AAClD,SAAO,QAAQ,QAAQ;AACrB,UAAM,QAAQ,UAAU;AAAA,EAC1B;AACF;AAEO,SAAS,MACd,OACA,OACA,UACkC;AAClC,MAAI,QAAQ;AACZ,MAAI,MAAM;AACV,MAAI,OAAO;AAEX,MAAI,QAAQ,QAAW;AACrB,UAAM,QAAQ;AACd,YAAQ;AAAA,EACV,OAAO;AACL,UAAM,QAAQ,MAAM,MAAM,IAAI,MAAM;AAAA,EACtC;AAEA,MAAI,SAAS,QAAW;AACtB,WAAO,QAAQ,MAAO,IAAI;AAAA,EAC5B;AACA,SAAO,UAAU,OAAO,KAAK,IAAI;AACnC;", | ||
| "sourcesContent": ["export function* range(start: number, end?: number, step?: number) {\n if (end === undefined) {\n end = start;\n start = 0;\n }\n\n if (step === undefined) {\n step = start < end! ? 1 : -1;\n }\n\n if ((start < end && step < 0) || (start > end && step > 0)) {\n return; // Empty generator if start and end are going in opposite directions.\n }\n\n let current = start;\n while ((step > 0 && current < end) || (step < 0 && current > end)) {\n yield current;\n current += step;\n }\n}\n"], | ||
| "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,UAAU,MAAM,OAAe,KAAc,MAAe;AACjE,MAAI,QAAQ,QAAW;AACrB,UAAM;AACN,YAAQ;AAAA,EACV;AAEA,MAAI,SAAS,QAAW;AACtB,WAAO,QAAQ,MAAO,IAAI;AAAA,EAC5B;AAEA,MAAK,QAAQ,OAAO,OAAO,KAAO,QAAQ,OAAO,OAAO,GAAI;AAC1D;AAAA,EACF;AAEA,MAAI,UAAU;AACd,SAAQ,OAAO,KAAK,UAAU,OAAS,OAAO,KAAK,UAAU,KAAM;AACjE,UAAM;AACN,eAAW;AAAA,EACb;AACF;", | ||
| "names": [] | ||
| } |
+1
-1
@@ -1,2 +0,2 @@ | ||
| export declare function range(first: number, limit?: number, interval?: number): Generator<number, void, unknown>; | ||
| export declare function range(start: number, end?: number, step?: number): Generator<number, void, unknown>; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,wBAAgB,KAAK,CACnB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAgBlC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAiB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,oCAmBhE"} |
+10
-15
| // src/index.ts | ||
| var baseRange = function* (start = 0, end = 0, step = 1) { | ||
| let index = 0; | ||
| const length = Math.floor((end - start) / step) + 1; | ||
| while (index < length) { | ||
| yield start + index++ * step; | ||
| } | ||
| }; | ||
| function range(first, limit, interval) { | ||
| let start = first; | ||
| let end = limit; | ||
| let step = interval; | ||
| function* range(start, end, step) { | ||
| if (end === void 0) { | ||
| end = start - 1; | ||
| end = start; | ||
| start = 0; | ||
| } else { | ||
| end = start < end ? end - 1 : end + 1; | ||
| } | ||
@@ -22,3 +10,10 @@ if (step === void 0) { | ||
| } | ||
| return baseRange(start, end, step); | ||
| if (start < end && step < 0 || start > end && step > 0) { | ||
| return; | ||
| } | ||
| let current = start; | ||
| while (step > 0 && current < end || step < 0 && current > end) { | ||
| yield current; | ||
| current += step; | ||
| } | ||
| } | ||
@@ -25,0 +20,0 @@ export { |
| { | ||
| "version": 3, | ||
| "sources": ["../src/index.ts"], | ||
| "sourcesContent": ["const baseRange = function* (start = 0, end = 0, step = 1) {\n let index = 0;\n const length = Math.floor((end - start) / step) + 1;\n while (index < length) {\n yield start + index++ * step;\n }\n};\n\nexport function range(\n first: number,\n limit?: number,\n interval?: number\n): Generator<number, void, unknown> {\n let start = first;\n let end = limit;\n let step = interval;\n\n if (end === undefined) {\n end = start - 1;\n start = 0;\n } else {\n end = start < end ? end - 1 : end + 1;\n }\n\n if (step === undefined) {\n step = start < end! ? 1 : -1;\n }\n return baseRange(start, end, step);\n}\n"], | ||
| "mappings": ";AAAA,IAAM,YAAY,WAAW,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG;AACzD,MAAI,QAAQ;AACZ,QAAM,SAAS,KAAK,OAAO,MAAM,SAAS,IAAI,IAAI;AAClD,SAAO,QAAQ,QAAQ;AACrB,UAAM,QAAQ,UAAU;AAAA,EAC1B;AACF;AAEO,SAAS,MACd,OACA,OACA,UACkC;AAClC,MAAI,QAAQ;AACZ,MAAI,MAAM;AACV,MAAI,OAAO;AAEX,MAAI,QAAQ,QAAW;AACrB,UAAM,QAAQ;AACd,YAAQ;AAAA,EACV,OAAO;AACL,UAAM,QAAQ,MAAM,MAAM,IAAI,MAAM;AAAA,EACtC;AAEA,MAAI,SAAS,QAAW;AACtB,WAAO,QAAQ,MAAO,IAAI;AAAA,EAC5B;AACA,SAAO,UAAU,OAAO,KAAK,IAAI;AACnC;", | ||
| "sourcesContent": ["export function* range(start: number, end?: number, step?: number) {\n if (end === undefined) {\n end = start;\n start = 0;\n }\n\n if (step === undefined) {\n step = start < end! ? 1 : -1;\n }\n\n if ((start < end && step < 0) || (start > end && step > 0)) {\n return; // Empty generator if start and end are going in opposite directions.\n }\n\n let current = start;\n while ((step > 0 && current < end) || (step < 0 && current > end)) {\n yield current;\n current += step;\n }\n}\n"], | ||
| "mappings": ";AAAO,UAAU,MAAM,OAAe,KAAc,MAAe;AACjE,MAAI,QAAQ,QAAW;AACrB,UAAM;AACN,YAAQ;AAAA,EACV;AAEA,MAAI,SAAS,QAAW;AACtB,WAAO,QAAQ,MAAO,IAAI;AAAA,EAC5B;AAEA,MAAK,QAAQ,OAAO,OAAO,KAAO,QAAQ,OAAO,OAAO,GAAI;AAC1D;AAAA,EACF;AAEA,MAAI,UAAU;AACd,SAAQ,OAAO,KAAK,UAAU,OAAS,OAAO,KAAK,UAAU,KAAM;AACjE,UAAM;AACN,eAAW;AAAA,EACb;AACF;", | ||
| "names": [] | ||
| } |
+1
-1
| { | ||
| "name": "super-range", | ||
| "version": "0.0.2", | ||
| "version": "0.1.0", | ||
| "type": "module", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
5989
-12.99%65
-13.33%