custom-random-id
Version:
A highly customizable JavaScript library that generates random IDs based on the required format. It uses the {{id_specification}} format to generate the kind of ID with varying length number or string or alpha-numeric string
147 lines (108 loc) • 4 kB
Markdown
# custom-random-id
A highly customizable JavaScript library that generates random IDs based on the required format. It uses the `{{id_specification}}` format to generate the kind of ID with varying length number or string or alpha-numeric string
> Solves the problem of writing custom algorithms of generating random IDs of numbers or strings or alpha-numeric string. You can even generate a random phone number like `+1-541-754-3010` or random anything in your desired format!
## Installation
`npm install custom-random-id`
- **Small in size.**
- **Fast.** Better performance than most of the other ID generators.
- **URL safe characters.** it uses only URL safe characters as it uses only numbers or capital letters or uuids to generate the IDs.
- **Client & Server.** Can be used in client side and server side JavaScript applications.
## Usage
```javascript
const { IdGenerator } = require("custom-random-id");
// To generate a 5 digit random number
const ID = new IdGenerator("{{ number_5 }}");
let id = ID.getFinalExpression();
console.log(id); // => 56412
// To generate a 10 character random string
const ID = new IdGenerator("{{ string_10 }}");
let id = ID.getFinalExpression(); // => HYIOMNTRSJ
// To generate a 8 character random alpha numeric
const ID = new IdGenerator("{{ alpha_number_10 }}");
let id = ID.getFinalExpression(); // => JU78BH98
// To generate a uuid
const ID = new IdGenerator("{{ uuid }}");
let id = ID.getFinalExpression(); // => 5bc787b8-00ac-49ea-a970-2fca9ec737af
```
## Format
> Format: `"{{ type_count }}"` where `type` and `count` are 2 separate entities. The whole expression has to be provided in string format only. Eg: `"{{ number_10 }}"`
- **type**
- **string:** Generates a string of the specified length.
- **number:** Generates a number (integer) of a specified length.
- **alpha_number:** Generates an alpha-numeric string (string of numbers and characters in caps) of a specified length.
- **uuid:** Generates an uuid.
- **count:** An integer number for the number of digits/characters to be present in the generated string.
##### Examples:
```javascript
"{{ string_10 }}";
// output: VVMTINCMBC
```
```javascript
"{{ string_50 }}";
// output: OTXITFCVIPNFTIERWXPOURNUSMDOFPCAUHJBIVZFWPEQWTMMPW
```
```javascript
"{{ string_1 }}";
// output: K
// Single random Char
```
```javascript
"{{ number_15 }}";
// output: 234112942672429
```
```javascript
"{{ number_1 }}";
// output: 4
// This can be used to get a single random number
```
```javascript
"{{ alpha_number_10 }}";
// output: KHT5N52J36
// To get a string having upper case characters and integer numbers
```
```javascript
"{{ alpha_number_10 }}";
// output: KHT5N52J36
// To get a string having upper case characters and integer numbers
```
```javascript
"{{ uuid }}";
// output: 43a629cf-661b-4d4c-b66e-16e6714f8732
// To get an unique string every time.
```
### Creative Usage
Unlock your creativity by using the custom-random-id generator to generate strings of any required format by using multiple expressions in a string.
###### Generate an American Phone number
```javascript
"+1 {{number_3}}-{{number_3}}-{{number_4}}";
// output: +1 941-626-2929
```
###### Generate phone numbers starting with only '7'
```javascript
"+1 7{{number_2}}-{{number_3}}-{{number_4}}";
// output: +1 785-587-6616
```
###### Generate a string with 5 characters in the start and 5 numbers in the end
```javascript
"{{string_5}}{{number_5}}";
// output: LPDZW86423
```
###### Generate a string like a gun name
```javascript
"AK-{{number_2}}";
// output: AK-35
// output: AK-87
// output: AK-47
// .. etc
```
###### Generate a string with alternating character, number of length 5
```javascript
"{{string_1}}{{number_1}}{{string_1}}{{number_1}}{{string_1}}";
// output: X9K5L
// output: E6S4W
```
###### Or any random combination like
```javascript
"{{uuid}}---{{number_5}}---{{string_10}}";
// output: c1ed245a-18cb-4e8b-ad2f-db67f8fa4e09---68864---ULXCAKACQE
```