# ScriptPack

Avoid duplicate codes, Quick, High Quality

## Installation

- `npm install scriptpack`

## Functions

- `Database`
- `Persian DateTime`
- `Push Notification`
- `Color Detect`
- `UUID`
- `Device Detect`
- `Currency Format`
- `Object Equal`

---

##Database

```
const db = new Database('Hubiti'); // creates a table called 'Hubiti'
```

###Create
```
db.create('token', 'sample_token');

db.create('products', [{id: 1, title: 'Phone'}, {id: 2, title: 'Laptop'}]);
db.create('products', {id: 3, title: 'Tablet'}); // Append new product

db.create('members', { username: 'faridkarami', role: 8 } );
db.create('members', { username: 'karami', role: 2 } ); 
```

###Read
```
db.get();
/*
{
    "token": 'sample_token',
    "products": [
        {
            id: 1,
            title: 'Phone'
        },
        {
            id: 2,
            title: 'Laptop'
        },
        {
            id: 3,
            title: 'Tablet'
        }
    ],
    "members": [
        {
            username: 'faridkarami',
            role: 8
        },
        {
            username: 'karami',
            role: 2
        },
    ]
}
*/

db.get('products');
/*
[
    {
        id: 1,
        title: 'Phone'
    },
    {
        id: 2,
        title: 'Laptop'
    },
    {
        id: 3,
        title: 'Tablet'
    }
]
*/

db.get('products', 1);
/*
    {
        id: 2,
        title: 'Laptop'
    }
*/
```

###Update
```
db.update( {id: 8, title: 'PC'}, 'products' , 1);
/*
"products": [
    {
        id: 1,
        title: 'Phone'
    },
    {
        id: 8,
        title: 'PC'
    },
    {
        id: 3,
        title: 'Tablet'
    }
]
*/

db.update( [], 'members'); // Assigns an empty array to the members
```

###Delete
```
db.remove('members'); // remove the members table from the database

db.remove('products', 0);
/*
"products": [
    {
        id: 8,
        title: 'PC'
    },
    {
        id: 3,
        title: 'Tablet'
    }
]
*/

db.remove(); // remove all tables

```

###Drop
```
db.drop('Hubiti'); // removes a table called 'Hubiti'
```

##Persian DateTime
```
DateTime.gregorianToPersian('1992-10-24'); // returns: '1371-08-02'
DateTime.persianToGregorian('1371-08-02'); // returns: '1992-10-24'
```

##Color Detect
This tool is used to recognize the color name from the color code

```
const match  = ColorDetect.name("#E40227");
rgb        = match[0]; // This is the RGB value of the closest matching color
name       = match[1]; // This is the text string for the name of the match
exactmatch = match[2]; // True if exact color match, False if close-match
```

##Helper - UUID
This function is used to generate the uuid

```
const uuid  = Helper.uuid();
```

##Helper - Device Detect
This function is used to recognize the device

```
const isMobile  = Helper.isMobile(); // returns true or false
```

##Helper - Currency Format
This function is used to set separator to currency

```
const currency  = Helper.toCurrencyFormat('1880006000'); // returns 1,880,006,000
```
