{"id":21567523,"url":"https://github.com/alcidesqueiroz/power-range","last_synced_at":"2025-08-11T07:07:20.389Z","repository":{"id":55927928,"uuid":"83336816","full_name":"alcidesqueiroz/power-range","owner":"alcidesqueiroz","description":"🏋🏻 A small and powerful library for creating ranges of almost anything: numbers, letters, dates and even strings! Yay!","archived":false,"fork":false,"pushed_at":"2020-12-07T00:00:12.000Z","size":122,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T09:24:40.980Z","etag":null,"topics":["dates","letters","numbers","ranges","strings"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alcidesqueiroz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-27T17:18:56.000Z","updated_at":"2020-12-06T17:56:58.000Z","dependencies_parsed_at":"2022-08-15T09:40:27.022Z","dependency_job_id":null,"html_url":"https://github.com/alcidesqueiroz/power-range","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcidesqueiroz%2Fpower-range","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcidesqueiroz%2Fpower-range/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcidesqueiroz%2Fpower-range/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alcidesqueiroz%2Fpower-range/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alcidesqueiroz","download_url":"https://codeload.github.com/alcidesqueiroz/power-range/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225664,"owners_count":21068078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dates","letters","numbers","ranges","strings"],"created_at":"2024-11-24T10:31:27.366Z","updated_at":"2025-04-10T13:22:14.802Z","avatar_url":"https://github.com/alcidesqueiroz.png","language":"JavaScript","readme":"# power-range [![Build status](https://travis-ci.com/alcidesqueiroz/power-range.svg?branch=master)](https://travis-ci.com/alcidesqueiroz/power-range)\n\n\u003e 🏋🏻 A small and powerful library for creating ranges of almost anything: numbers, letters, dates and even strings! Yay!\n\n![It's morphing time!](https://gist.githubusercontent.com/alcidesqueiroz/c3d6c6edc559194bc37a2c464a21768d/raw/ef5e0b9ddb81de6eba46761a39226d4e242cf3fa/power-range.gif)\n\n## Install\n\n```\n$ npm install power-range\n```\n\n## Usage\n\n### create(from, to[, options])\n\nCreates an array with the range between two values.\n\n```js\nconst pr = require('power-range');\n\n// Number ranges\npr.create(0, 5);\n//=\u003e [0, 1, 2, 3, 4 ,5]\n\npr.create(-2, 5);\n//=\u003e [-2, -1, 0, 1 , 2, 3, 4, 5]\n\npr.create(100, 100);\n//=\u003e [100]\n\n// Options\n/**\n * increment: The interval between the range values\n */\npr.create(2, 10, { increment: 2 });\n//=\u003e [2, 4, 6, 8, 10]\n\npr.create(-2, 13, { increment: 3 });\n//=\u003e [-2, 1, 4, 7, 13]\n\n\n// Date ranges\npr.create(new Date(2001, 2, 30, 4, 5, 6), new Date(2001, 3, 2, 6, 7, 8));\n/**\n * =\u003e [ Fri Mar 30 2001 04:05:06 GMT-0300 (BRT),\n *      Sat Mar 31 2001 04:05:06 GMT-0300 (BRT),\n *      Sun Apr 01 2001 04:05:06 GMT-0300 (BRT),\n *      Mon Apr 02 2001 04:05:06 GMT-0300 (BRT) ]\n */\n\n// Options\n/**\n * increment: The interval between the range values\n */\npr.create(new Date(2001, 2, 30, 4, 5, 6), new Date(2001, 3, 2, 6, 7, 8), { increment: 2 });\n/**\n * =\u003e [ Fri Mar 30 2001 04:05:06 GMT-0300 (BRT),\n *      Sun Apr 01 2001 04:05:06 GMT-0300 (BRT) ]\n */\n\n/**\n * unit: The unit of time used to build the range (second, minute, hour, day, week, month)\n */\npr.create(new Date(2001, 2, 30, 4, 5, 6), new Date(2001, 6, 30, 4, 5, 6), { unit: 'month' });\n/**\n * =\u003e [ Fri Mar 30 2001 04:05:06 GMT-0300 (BRT),\n *      Mon Apr 30 2001 04:05:06 GMT-0300 (BRT),\n *      Wed May 30 2001 04:05:06 GMT-0300 (BRT),\n *      Sat Jun 30 2001 04:05:06 GMT-0300 (BRT),\n *      Mon Jul 30 2001 04:05:06 GMT-0300 (BRT) ]\n */\n\n// String ranges\npr.create('A', 'G');\n//=\u003e ['A', 'B', 'C', 'D', 'E', 'F', 'G']\n\npr.create('X', 'd');\n//=\u003e ['X', 'Y', 'Z', 'a', 'b', 'c', 'd']\n\npr.create('DA', 'DD');\n//=\u003e ['DA', 'DB', 'DC', 'DD']\n\npr.create('AZ', 'BA');\n//=\u003e ['AZ', 'BA']\n\npr.create('6', 'B');\n//=\u003e ['6', '7', '8', '9', 'A', 'B']\n\npr.create('6', 'b');\n//=\u003e ['6', '7', '8', '9', 'a', 'b']\n\npr.create('z', 'ab');\n//=\u003e ['z', 'aa', 'ab']\n\npr.create('ZY', 'AAB');\n//=\u003e ['ZY', 'ZZ', 'AAA', 'AAB']\n\npr.create('98', '002');\n//=\u003e ['98', '99', '000', '001', '002']\n\n\n// Options\n/**\n * numbers: Enables numbers (if one of the limit values has a number,\n *          this option is enabled automatically)\n */\npr.create('AZ', 'BA', { numbers: true });\n//=\u003e ['AZ', 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA']\n\n/**\n * upperCaseLetters: Enables uppercase letters (if one of the limit values\n *                   has an uppercase letter, this option is enabled automatically)\n */\npr.create('6', 'b', { upperCaseLetters: true });\n//=\u003e ['6', '7', '8', '9', 'A', 'B', ..., 'X', 'Y', 'Z', 'a', 'b'])\n\n/**\n * lowerCaseLetters: Enables lowercase letters (if one of the limit values\n *                   has a lowercase letter, this option is enabled automatically)\n */\npr.create('Z', 'AB', { lowerCaseLetters: true });\n//=\u003e ['Z', 'a', 'b', 'c', 'd', 'e', ..., 'x', 'y', 'z', 'AA', 'AB'])\n\n/**\n * chars: Customizes the characters used to build the string range\n */\npr.create('$', '%#', { chars: '$%#' });\n//=\u003e ['$', '%', '#', '$$', '$%', '$#', '%$', '%%', '%#']\n```\n\n## Author\n\nAlcides Queiroz Aguiar\n\n- Website: [www.alcidesqueiroz.com](https://www.alcidesqueiroz.com)\n- Medium: [@alcidesqueiroz](https://medium.com/@alcidesqueiroz)\n- Twitter: [alcidesqueiroz](https://twitter.com/alcidesqueiroz)\n- Behance [alcidesqueiroz](https://behance.net/alcidesqueiroz)\n- Stack Overflow: [http://is.gd/aqanso](http://stackoverflow.com/users/1295666/alcides-queiroz-aguiar)\n- E-mail: alcidesqueiroz \u0026lt;at\u0026gt; gmail\n\n## License\n\nThis code is free to use under the terms of the [MIT License](LICENSE.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falcidesqueiroz%2Fpower-range","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falcidesqueiroz%2Fpower-range","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falcidesqueiroz%2Fpower-range/lists"}