Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

rangegen

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rangegen

Generate a range between two numbers or letters. Examples: 1-100, a-z, A-Z, a-zz or even A-ZZZZZ.

  • 0.2.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

RangeGen (v0.2.0)

Install: npm install rangegen

This project is Unlicensed. In other words, I don't care what you do with it. However, if you make something interesting, I would like to check it out.

Information:

Generate a range between two numbers or letters. Examples: 1-100, a-z, A-Z, a-zz or even A-ZZZZZ.

Usage:

*WARNING* Running range on a big letter gap causes MANY loops!
          For instance, a-zzzzz creates an array with 12,356,630
          indexes and does 73,645,526 while and for loops!

-- Array generator (See "examples.js" for usage) --
var array = RangeGen(<from>,<to>,[<step>[,<exceptions>]]);

    From         - The letter or number to start the range at. (numbers/letters)
    To           - The letter or number to end on/near. (numbers/letters)
    Step*        - The amount to increment or decrement by. Default, 1. (true/false, number)
    exceptions*  - Throw error messages. Default, return an empty array. (true/false);
       * Optional.

-- Iterators (See "examples2.js" for usage) --
var iterator = RangeGen.iterator(<from>,<to>[,<step>[,<exceptions>]]);
               RangeGen.iter(<from>,<to>[,<step>[,<exceptions>]])

    hasNext()    - Returns true if the iteration has more elements.
    next()       - Returns the next element in the iteration, or false if `exceptions` is not set.
                   Otherwise throws a `NoSuchElement` exception.
    length       - The total number of iterations.

Examples:

var RangeGen = require('rangegen');
try {
   var a = RangeGen("a","z");
   console.log("[a-z] "+a.join(",")+"\n");
   var b = RangeGen("z","a");
   console.log("[z-a] "+b.join(",")+"\n");
   var c = RangeGen("A","ZZ",10);
   console.log("[A-ZZ,10] "+c.join(",")+"\n");
   var d = RangeGen("ZZ","A",10);
   console.log("[ZZ-A,10] "+d.join(",")+"\n");
   var e = RangeGen(0,100,10);
   console.log("[0-100,10] "+e.join(",")+"\n");
   var f = RangeGen(100,0,10);
   console.log("[100-0,10] "+f.join(",")+"\n");
 } catch (e) {
   console.log(e);
};
console.log("\n--- Throw errors! ---");
try {
   RangeGen("a",100,1,true);
 } catch (e) {
   console.log("[a-100] "+e+"\n");
};
try {
   RangeGen(100,"z",1,true);
 } catch (e) {
   console.log("[100-a] "+e+"\n");
};
try {
   console.log(RangeGen("@","!",1,true));
 } catch (e) {
   console.log("[@-!] "+e+"\n");
};
try {
   console.log(RangeGen("a","!",1,true));
 } catch (e) {
   console.log("[a-!] "+e+"\n");
};
console.log("\n--- Return empty arrays! ---");
console.log(RangeGen("a","100"));
console.log(RangeGen("100","z"));
console.log(RangeGen("@","!"));
console.log(RangeGen("a","!"));
var RangeGen = require('rangegen');
try {
   var iterator = RangeGen.iter(-30,30,1,true);
   console.log("Iterations: "+iterator.length);
   var range = [];
   while (iterator.hasNext()) {
         range.push(iterator.next());
   };
   console.log(range.join(','));
 } catch (e) {
   console.log(e);
};
console.log("\n--- Throw errors! ---");
try {
   console.log("- Invalid next() call. -");
   var iterator = RangeGen.iterator(-30,30,1,true);
   console.log("Iterations: "+iterator.length);
   var range = [];
   while (iterator.hasNext()) {
         range.push(iterator.next());
   };
   iterator.next();
 } catch (e) {
   console.log(e);
};
try {
   console.log("\n- Inalid range. [a-30] -");
   var iterator = RangeGen.iterator("a",30,1,true);
 } catch (e) {
   console.log(e);
};
console.log("\n--- Return false! ---");
try {
   var iterator = RangeGen.iterator("a",30,1);
   if (!iterator) {
      console.log("`iterator` is false!");
   }
 } catch (e) {
   console.log(e);
};
<html>
<head>
<title>RangeGen test</title>
<script src="./rangegen.js"></script>
<script>
try {
   var a = RangeGen("a","z");
   alert("[a-z] "+a.join(",")+"\n");
   var b = RangeGen("z","a");
   alert("[z-a] "+b.join(",")+"\n");
   var c = RangeGen("A","ZZ",10);
   alert("[A-ZZ,10] "+c.join(",")+"\n");
   var d = RangeGen("ZZ","A",10);
   alert("[ZZ-A,10] "+d.join(",")+"\n");
   var e = RangeGen(0,100,10);
   alert("[0-100,10] "+e.join(",")+"\n");
   var f = RangeGen(100,0,10);
   alert("[100-0,10] "+f.join(",")+"\n");
 } catch (e) {
   alert(e);
};
window.onload = function () {
     try {
        var iterator = RangeGen.iter(-30,30,5,true);
        alert("Iterations: "+iterator.length);
        var range = [];
        while (iterator.hasNext()) {
              range.push(iterator.next());
        };
        document.getElementById('iter').innerHTML = range.join(',');
      } catch (e) {
        document.getElementById('iter').innerHTML = e;
     };
};
</script>
</head>
<body>
<div id="iter">
</div>
</body>
</html>

Keywords

FAQs

Package last updated on 20 Sep 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc