open-index/open-npm huggingface dataset:
npm package: @pak11273/monorepo
Description: CLI for monorepos
Author: Isaac Pak
Latest version: 3.10.0

# Scaffold a MONOREPO with this Node CLI

![npm (scoped)](https://img.shields.io/npm/v/@pak11273/monorepo)

## Build a monorepo with Lerna, Yarn Workspaces, and options for clients, servers, website, mobile

### Current Options:

- servers: "express"
- templating engines: "hbs", "ejs", "pug"
- clients: "react", "create-react-app 3.3.1"

### Features

- Custom options for a javascript-based fullstack repo
- Automatic github repository setup
- Adds a typescript option support for your client module
- Webpack dev server w/hot reloading for react apps

## Requirements

- [Lerna v3.18.4](https://lerna.js.org/)
- [Yarn v1.19.1](https://classic.yarnpkg.com/en/docs/install#windows-stable)
- [Node v12.4.0](http://nodejs.org/)
- [Git v2.11.0](https://git-scm.com/)
- [GitHub account](https://github.com/) OR [Bitbuck accout](https://bitbucket.org)
- [Create-react-app v3.3.1](https://create-react-app.dev/)

\*May or may not work with lower versions

## Installation Steps (if applicable)

1. Install the module globally with `npm install @pak11273/monorepo -g` from within the project directory
2. Create a directory `mkdir <your monorepo name> && cd <your monorepo name>`
3. Run `repo <your monorepo name> <description>`
4. Follow the instructions
5. cd into the root folder after the setup is completed and run `yarn bootstrap`
6. cd into shared package and run `yarn build`
7. cd into packages/client and run `yarn start` to test react clients

## Notes

- Frontend packages (eg. web, client, mobile) are installed with styled-components for styling. You can `yarn remove styled-components` inside each package to remove it and use your own css styling.

* Ports for packages:
  - web: 8080
  - client: 3000
  - server: 5000

## RoadMap

- ~~Add react option for client~~
- ~~Add a basic setup for react clients only~~
- ~~Add webpack option for bundler~~
- ~~Add create-react-app option for client~~
- Add a documentation website
- Add typeorm option for orms
- Add apollo option for graphql
- Add gatsby option for web
- ~~Add nextJS option for web~~
- Add rollup option for bundler
- Add nextJS option for client
- Add gatsby option for client
- Add react-native option for mobile
- Add create-react-native-app option for mobile
- Add basic user authentication for express
- Add basic user authentication for graphql
- Add github-actions option for ci
- Add circleci option for ci
- Add travisci option for ci
- Add knex option for orms
- Add sequelize option for orms
- Add relay option for graphql

## License

The MIT License (MIT)
npm package: @pakal/-all
Description: All is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-all
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-all)
[![Version](https://img.shields.io/npm/v/@pakal/-all.svg)](https://www.npmjs.com/package/@pakal/-all)
[![MIT License](https://img.shields.io/npm/l/@pakal/-all.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-all.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-all)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**All is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-all
```
Or
```sh
$ npm install --save @pakal/-all
```

## Use
**Module**
```typescript
import {
  arity,
  assertify,
  assign,
  curry,
  __,
  CurriedFn,
  CurriedFn2,
  CurriedFn3,
  CurriedFn4,
  CurriedFn5,
  IPlaceholder,
  forEach,
  getGlobal,
  isKindOf,
  isNative,
  isTypeOf,
  keys,
  kindOf,
  reduce,
  safify,
  tagOf,
  toPrimitive,
  tryify,
  typeOf,
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined,
  ITypeKeys,
  uniqueId,
  uniqueKey
} from '@pakal/-all';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-all/bundle.umd.min.js"></script>
```
```typescript
let {
  arity,
  assertify,
  assign,
  curry,
  __,
  forEach,
  getGlobal,
  isKindOf,
  isNative,
  isTypeOf,
  keys,
  kindOf,
  reduce,
  safify,
  tagOf,
  toPrimitive,
  tryify,
  typeOf,
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined,
  uniqueId,
  uniqueKey
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/-collection
Description: Collection is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-collection
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-collection)
[![Version](https://img.shields.io/npm/v/@pakal/-collection.svg)](https://www.npmjs.com/package/@pakal/-collection)
[![MIT License](https://img.shields.io/npm/l/@pakal/-collection.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-collection.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-collection)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Collection is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-collection
```
Or
```sh
$ npm install --save @pakal/-collection
```

## Use
**Module**
```typescript
import {
  forEach,
  reduce
} from '@pakal/-collection';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-collection/bundle.umd.min.js"></script>
```
```typescript
let {
  forEach,
  reduce
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/-function
Description: Function is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-function
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-function)
[![Version](https://img.shields.io/npm/v/@pakal/-function.svg)](https://www.npmjs.com/package/@pakal/-function)
[![MIT License](https://img.shields.io/npm/l/@pakal/-function.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-function.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-function)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Function is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-function
```
Or
```sh
$ npm install --save @pakal/-function
```

## Use
**Module**
```typescript
import {
  arity,
  assertify,
  curry,
  __,
  CurriedFn,
  CurriedFn2,
  CurriedFn3,
  CurriedFn4,
  CurriedFn5,
  IPlaceholder,
  safify,
  tryify
} from '@pakal/-function';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-function/bundle.umd.min.js"></script>
```
```typescript
let {
  arity,
  assertify,
  curry,
  __,
  safify,
  tryify
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/-object
Description: Object is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-object
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-object)
[![Version](https://img.shields.io/npm/v/@pakal/-object.svg)](https://www.npmjs.com/package/@pakal/-object)
[![MIT License](https://img.shields.io/npm/l/@pakal/-object.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-object.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-object)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Object is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-object
```
Or
```sh
$ npm install --save @pakal/-object
```

## Use
**Module**
```typescript
import {
  assign,
  keys
} from '@pakal/-object';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-object/bundle.umd.min.js"></script>
```
```typescript
let {
  assign,
  keys
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/-type
Description: Type is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-type
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-type)
[![Version](https://img.shields.io/npm/v/@pakal/-type.svg)](https://www.npmjs.com/package/@pakal/-type)
[![MIT License](https://img.shields.io/npm/l/@pakal/-type.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-type.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-type)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Type is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-type
```
Or
```sh
$ npm install --save @pakal/-type
```

## Use
**Module**
```typescript
import {
  isKindOf,
  isNative,
  isTypeOf,
  kindOf,
  tagOf,
  toPrimitive,
  typeOf,
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined,
  ITypeKeys
} from '@pakal/-type';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-type/bundle.umd.min.js"></script>
```
```typescript
let {
  isKindOf,
  isNative,
  isTypeOf,
  kindOf,
  tagOf,
  toPrimitive,
  typeOf,
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/-util
Description: Util is a group of packages of Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/-util
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/-util)
[![Version](https://img.shields.io/npm/v/@pakal/-util.svg)](https://www.npmjs.com/package/@pakal/-util)
[![MIT License](https://img.shields.io/npm/l/@pakal/-util.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/-util.svg?color=green)](https://bundlephobia.com/result?p=@pakal/-util)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Util is a group of packages of Pakal library**

## Install
```sh
$ yarn add @pakal/-util
```
Or
```sh
$ npm install --save @pakal/-util
```

## Use
**Module**
```typescript
import {
  getGlobal,
  uniqueId,
  uniqueKey
} from '@pakal/-util';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/-util/bundle.umd.min.js"></script>
```
```typescript
let {
  getGlobal,
  uniqueId,
  uniqueKey
} = _;
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/arity
Description: Arity is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/arity
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/arity)
[![Version](https://img.shields.io/npm/v/@pakal/arity.svg)](https://www.npmjs.com/package/@pakal/arity)
[![MIT License](https://img.shields.io/npm/l/@pakal/arity.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/arity.svg?color=green)](https://bundlephobia.com/result?p=@pakal/arity)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Arity is package from Pakal library**

## Install
```sh
$ yarn add @pakal/arity
```
Or
```sh
$ npm install --save @pakal/arity
```

## Use
**Module**
```typescript
import {
  default as arity
} from '@pakal/arity';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/arity/bundle.umd.min.js"></script>
```
```typescript
let {
  arity
} = _;
```

**Examples**
```typescript
 let fn = arity((...args) => args, 3);

 fn('a', 'b', 'c', 'd'); // => ['a', 'b', 'c', 'd']
 fn('a', 'b', 'c'); // => ['a', 'b', 'c']
 fn('a', 'b'); // => ['a', 'b']
 fn.length; // => 3
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/assertify
Description: Assertify is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/assertify
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/assertify)
[![Version](https://img.shields.io/npm/v/@pakal/assertify.svg)](https://www.npmjs.com/package/@pakal/assertify)
[![MIT License](https://img.shields.io/npm/l/@pakal/assertify.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/assertify.svg?color=green)](https://bundlephobia.com/result?p=@pakal/assertify)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Assertify is package from Pakal library**

## Install
```sh
$ yarn add @pakal/assertify
```
Or
```sh
$ npm install --save @pakal/assertify
```

## Use
**Module**
```typescript
import {
  default as assertify
} from '@pakal/assertify';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/assertify/bundle.umd.min.js"></script>
```
```typescript
let {
  assertify
} = _;
```

**Examples**
```typescript
 let isFoo = (value: string) => value === 'bar';

 let assertFoo = assertify(isFoo, 'The value is not foo');

 assertFoo('bar'); // => 'bar'
 assertFoo('some'); // throw Error('The value is not foo')
```
```typescript
 let isEquals = (value: any, other: any) => value === other;

 let assertEquals = assertify(isEquals, (value: any, other: any) => {
     return `${value} !== ${other}`;
 }, false);

 assertEquals(true, true); // => void
 assertEquals(0, 2); // throw Error('0 !== 2')
```
```typescript
 let isString = (value: any) => typeof value === 'string';
 let assertString = assertify(isString, (value) => TypeError(`type of '${value}' is not string.`), 0);

 assertString('some'); // => 'some'
 assertString(true); // throw TypeError(`type of 'true' is not string`)
```
```typescript
 let contains = (items: any[], value: any) => items.indexOf(value) > -1;
 let assertContains = assertify(contains, (items, value) => ({message: (`'${value}' not in ['${items.join(', ')}']`}), contains), 1);


 assertContains(['red', 'black', 'green'], 'black'); // => 'black'
 assertContains(['tea', 'beer'], 'coffee'); // throw {message: `'coffee' not in ['tea', 'beer']`}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/assign
Description: Assign is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/assign
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/assign)
[![Version](https://img.shields.io/npm/v/@pakal/assign.svg)](https://www.npmjs.com/package/@pakal/assign)
[![MIT License](https://img.shields.io/npm/l/@pakal/assign.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/assign.svg?color=green)](https://bundlephobia.com/result?p=@pakal/assign)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Assign is package from Pakal library**

## Install
```sh
$ yarn add @pakal/assign
```
Or
```sh
$ npm install --save @pakal/assign
```

## Use
**Module**
```typescript
import {
  default as assign
} from '@pakal/assign';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/assign/bundle.umd.min.js"></script>
```
```typescript
let {
  assign
} = _;
```

**Examples**
```typescript
 let target = {};
 let a = {length: 4,3: 'c', 5: 'e'};
 let b = 'foo';
 let c = [55, 33];
 let d = {1: 'a', foo: 'bar'};"

 assign(target, a, b, c, d) === target; // => true
 console.log(target);
 // => {
 //  0: 55
 //  1: "a"
 //  2: "o"
 //  3: "c"
 //  foo: "bar"
 // }
```
```typescript
 let target = {a: 2, c: 3};
 let source = {a: 1, b: 2};

 assign(target, source); // => {a: 1, b: 2, c: 3}
```

*Note: Unlike `Object.assign` this method will assign `ArrayLike` as `Array`.*


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/curry
Description: Curry is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/curry
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/curry)
[![Version](https://img.shields.io/npm/v/@pakal/curry.svg)](https://www.npmjs.com/package/@pakal/curry)
[![MIT License](https://img.shields.io/npm/l/@pakal/curry.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/curry.svg?color=green)](https://bundlephobia.com/result?p=@pakal/curry)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Curry is package from Pakal library**

## Install
```sh
$ yarn add @pakal/curry
```
Or
```sh
$ npm install --save @pakal/curry
```

## Use
**Module**
```typescript
import {
  IPlaceholder,
  __,
  CurriedFn,
  CurriedFn2,
  CurriedFn3,
  CurriedFn4,
  CurriedFn5,
  default as curry
} from '@pakal/curry';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/curry/bundle.umd.min.js"></script>
```
```typescript
let {
  __,
  curry
} = _;
```

**Examples**
```typescript
 let multiply = (a, b)=> a * b;

 let multiplyCurried = curry(multiply);

 multiplyCurried()(2)()(4); // => 8
```
```typescript
 let fn = (a, b, c, d, e) => [a, b, c, d, e];

 let curriedFn = curry(fn);

 curriedFn(__, __, 1, __, 2)(__, 3)(4, 5); // => [4, 3, 1, 5, 2]
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/for-each
Description: ForEach is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/for-each
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/for-each)
[![Version](https://img.shields.io/npm/v/@pakal/for-each.svg)](https://www.npmjs.com/package/@pakal/for-each)
[![MIT License](https://img.shields.io/npm/l/@pakal/for-each.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/for-each.svg?color=green)](https://bundlephobia.com/result?p=@pakal/for-each)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**ForEach is package from Pakal library**

## Install
```sh
$ yarn add @pakal/for-each
```
Or
```sh
$ npm install --save @pakal/for-each
```

## Use
**Module**
```typescript
import {
  default as forEach
} from '@pakal/for-each';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/for-each/bundle.umd.min.js"></script>
```
```typescript
let {
  forEach
} = _;
```

**Examples**
```typescript
 let word: string = 'abc';

 forEach(word, (char: string, index: number, array: string) => {
     console.log(`${index} = ${value}`);
 });

 // => '0 = a'
 // => '1 = b'
 // => '2 = c'
 // => 'abc'
```
```typescript
 let array: boolean[] = [true, true, false, true, true];

 forEach(array, (value: boolean, index: number) => {
     console.log(index);
     return value;
 });

 // => 0
 // => 1
 // => 2
 // => array
```
```typescript
 let array: ArrayLike<any> = {length: 2, 1: 'some', foo: 'bar'};

 forEach(array, console.log);

 // => undefined 0 array
 // => 33 'some' array
 // => array
```
```typescript
 let object: {[key: string: number]} = {a: 1, b: 2,c: 3};

 forEach(object, (value: number, key: string, object: {[key: string: number]}) => {
     console.log(`${key} = ${value}`);
 });

 // => 'a = 1'
 // => 'b = 2'
 // => 'c = 3'
 // => object
```
```typescript
 forEach(); // => undefined
 forEach(null); // => null
 forEach(true, console.log); // => true
```
```typescript
 let _log = (value: any) => (console.log(value), value);
 let collection = {
  get foo(){ return _log('bar'); },
  get non(){ return _log(false); },
  get name(){ return _log('bob'); }
 };

 forEach(collection);

 // => 'foo'
 // => false
 // => collection
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/get-global
Description: Get Global is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/get-global
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/get-global)
[![Version](https://img.shields.io/npm/v/@pakal/get-global.svg)](https://www.npmjs.com/package/@pakal/get-global)
[![MIT License](https://img.shields.io/npm/l/@pakal/get-global.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/get-global.svg?color=green)](https://bundlephobia.com/result?p=@pakal/get-global)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Get Global is package from Pakal library**

## Install
```sh
$ yarn add @pakal/get-global
```
Or
```sh
$ npm install --save @pakal/get-global
```

## Use
**Module**
```typescript
import {
  default as getGlobal
} from '@pakal/get-global';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/get-global/bundle.umd.min.js"></script>
```
```typescript
let {
  getGlobal
} = _;
```

**Examples**
```typescript
 // browser
 getGlobal() === window; // => true
 // worker
 getGlobal() === self; // => true
 // nodejs
 getGlobal() === global; // => true

 getGlobal('Object') === Object; // => true
 getGlobal('NaN'); // => NaN
 getGlobal('String.prototype') === String.prototype; // => true
 getGlobal('Math.foo', 'bar'); // => 'bar'
 getGlobal('Math.zero', 0, true); // => 0
 getGlobal('Math').zero; // => 0
```
```typescript
 getGlobal('color'); // => undefined
 typeof color; // => undefined
 getGlobal('color', 'green'); // => 'green'
 typeof color; // => undefined
 getGlobal('color', 'blue', true); // => 'blue'
 color === 'blue'; // => true
 getGlobal('color', 'red', true); // => 'blue'
 color === 'blue'; // => true
 color = 'yellow';
 getGlobal('color', 'black', true); // => 'yellow'
```
```typescript
 getGlobal('data'); // => undefined
 getGlobal('data', {name: 'bob'}).name; // => 'bob'
 getGlobal('data'); // => undefined
 getGlobal('data.name', 'david', true); // => 'david'
 getGlobal('data'); // => 'undefined'
 getGlobal('data', {name: 'alice'}, true).name; // => 'alice'
 getGlobal('data.name'); // => 'alice'
 getGlobal('data.name', 'john', true).name; // => 'alice'
 getGlobal('data').name; // => 'alice'
 getGlobal('data').name = 'moshe';
 getGlobal('data.name', 'steve', true); // => 'moshe'
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/is-kind-of
Description: Is Kind Of is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/is-kind-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/is-kind-of)
[![Version](https://img.shields.io/npm/v/@pakal/is-kind-of.svg)](https://www.npmjs.com/package/@pakal/is-kind-of)
[![MIT License](https://img.shields.io/npm/l/@pakal/is-kind-of.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/is-kind-of.svg?color=green)](https://bundlephobia.com/result?p=@pakal/is-kind-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Kind Of is package from Pakal library**

## Install
```sh
$ yarn add @pakal/is-kind-of
```
Or
```sh
$ npm install --save @pakal/is-kind-of
```

## Use
**Module**
```typescript
import {
  default as isKindOf
} from '@pakal/is-kind-of';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-kind-of/bundle.umd.min.js"></script>
```
```typescript
let {
  isKindOf
} = _;
```

**Examples**
```typescript
 isKindOf(null, 'undefined'); // => false
 isKindOf(undefined, 'null'); // => false
 isKindOf({}, 'function'); // => false
 isKindOf(true, 'object'); // => false
 isKindOf(null, 'object'); // => false
 isKindOf(String.prototype, 'string'); // => false
 isKindOf(Object.freeze({[Symbol.toStringTag]: 'String'}), 'string'); // => false
 isKindOf(function (){}, 'object'); // => true
 isKindOf(class {}, 'function'); // => true
 isKindOf(Object('foo'), 'string'); // => true
 isKindOf(Object(1), 'object'); // => true

 isKindOf(false, []); // => false
 isKindOf({}, ['null', 'function']); // => false
 isKindOf(class {}, ['object', 'undefined']); // => true
 isKindOf(Object(NaN), ['object', 'undefined']); // => true
```

*Note: if `Symbol` or `BigInt` is not native (polyfill), the kind will base on `Symbol.toStringTag` property,
if `value` not has `Symbol.toStringTag` property it's will be checks if 'object' in kinds.*

### @pakal/is-kind-of/assert
**Module**
```typescript
import {
  default as assertKindOf
} from '@pakal/is-kind-of/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-kind-of/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertKindOf
} = _;
```

**Examples**
```typescript
 assertKindOf(1, []); // throw TypeError
 assertKindOf(null, ['undefined', 'object']); // throw TypeError
 assertKindOf({}, ['null', 'function']); // throw TypeError
 assertKindOf(Object('foo'), ['string', 'null']); // => Object('foo')
 assertKindOf(function(){}, ['undefined', 'object']); // function(){}
 assertKindOf(true, ['boolean', 'undefined']); // true
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/is-native
Description: Is Native is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/is-native
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/is-native)
[![Version](https://img.shields.io/npm/v/@pakal/is-native.svg)](https://www.npmjs.com/package/@pakal/is-native)
[![MIT License](https://img.shields.io/npm/l/@pakal/is-native.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/is-native.svg?color=green)](https://bundlephobia.com/result?p=@pakal/is-native)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Native is package from Pakal library**

## Install
```sh
$ yarn add @pakal/is-native
```
Or
```sh
$ npm install --save @pakal/is-native
```

## Use
**Module**
```typescript
import {
  default as isNative
} from '@pakal/is-native';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-native/bundle.umd.min.js"></script>
```
```typescript
let {
  isNative
} = _;
```

**Examples**
```typescript
 isNative(Number); // => true
 isNative(Math.floor); // => true
 isNative((function(){}).bind(this)); // => true
 isNative(String.prototype)); // => true
 isNative(Math)); // => false
 isNative(Infinity)); // => false
 isNative(null); // => false
 isNative(() => {}); // => false
 isNative({foo: 'bar'}); // => false
```

### @pakal/is-native/assert
**Module**
```typescript
import {
  default as assertNative
} from '@pakal/is-native/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-native/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertNative
} = _;
```

**Examples**
```typescript
 assertNative('foo'); // => throw TypeError
 assertNative(function(){}); // => throw TypeError
 assertNative(true); // => throw TypeError
 assertNative(Promise.resolve); // => Promise.resolve
 assertNative(Function); // => Function
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/is-type-of
Description: Is Type Of is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/is-type-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/is-type-of)
[![Version](https://img.shields.io/npm/v/@pakal/is-type-of.svg)](https://www.npmjs.com/package/@pakal/is-type-of)
[![MIT License](https://img.shields.io/npm/l/@pakal/is-type-of.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/is-type-of.svg?color=green)](https://bundlephobia.com/result?p=@pakal/is-type-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Type Of is package from Pakal library**

## Install
```sh
$ yarn add @pakal/is-type-of
```
Or
```sh
$ npm install --save @pakal/is-type-of
```

## Use
**Module**
```typescript
import {
  default as isTypeOf
} from '@pakal/is-type-of';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-type-of/bundle.umd.min.js"></script>
```
```typescript
let {
  isTypeOf
} = _;
```

**Examples**
```typescript
 isTypeOf('foo', 'string'); // => true
 isTypeOf(null, 'null'); // => true
 isTypeOf(Object(1), 'object'); // => true
 isTypeOf(null, 'object'); // => false
 isTypeOf(Object(true), 'boolean'); // => false
 isTypeOf(v => v, 'object') // => false

 isTypeOf(class {}, ['undefined', 'function']) // => true
 isTypeOf({}, ['object', 'undefined']) // => true
 isTypeOf(1, []) // => false
 isTypeOf(null, ['undefined', 'number']) // => false
```

### @pakal/is-type-of/assert
**Module**
```typescript
import {
  default as assertTypeOf
} from '@pakal/is-type-of/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/is-type-of/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertTypeOf
} = _;
```

**Examples**
```typescript
 assertTypeOf(1, 'number'); // => 1
 assertTypeOf(undefined, 'undefined'); // => undefined
 assertTypeOf(Object('foo'), 'string'); // throw TypeError
 assertTypeOf(null, 'object'); // throw TypeError

 assertTypeOf(true, []); // throw TypeError
 assertTypeOf({}, ['null']); // throw TypeError
 assertTypeOf(function(){}, ['object', 'null', 'undefined']); // throw TypeError
 assertTypeOf(Symbol('foo'), ['undefined', 'string', 'symbol']); // => Symbol('foo')
 assertTypeOf({}, ['object', 'null']); // => {}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/keys
Description: Keys is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/keys
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/keys)
[![Version](https://img.shields.io/npm/v/@pakal/keys.svg)](https://www.npmjs.com/package/@pakal/keys)
[![MIT License](https://img.shields.io/npm/l/@pakal/keys.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/keys.svg?color=green)](https://bundlephobia.com/result?p=@pakal/keys)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Keys is package from Pakal library**

## Install
```sh
$ yarn add @pakal/keys
```
Or
```sh
$ npm install --save @pakal/keys
```

## Use
**Module**
```typescript
import {
  default as keys
} from '@pakal/keys';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/keys/bundle.umd.min.js"></script>
```
```typescript
let {
  keys
} = _;
```

**Examples**
```typescript
 keys(); // => []
 keys(null); // => []
 keys(NaN); // => []
 keys(true); // => []
 keys({a: 1, b: 2, c: 3}); // => ['a', 'b', 'c']
 keys('foo'); // => ['0', '1', '2']
 keys(Object.defineProperties({foo: 'bar'}, {color: {value: 'red'}})); // => ['foo']
 keys(Object.setPrototypeOf({name: 'bob'}, {num: 69})); // => ['name']
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/kind-of
Description: Kind Of is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/kind-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/kind-of)
[![Version](https://img.shields.io/npm/v/@pakal/kind-of.svg)](https://www.npmjs.com/package/@pakal/kind-of)
[![MIT License](https://img.shields.io/npm/l/@pakal/kind-of.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/kind-of.svg?color=green)](https://bundlephobia.com/result?p=@pakal/kind-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Kind Of is package from Pakal library**

## Install
```sh
$ yarn add @pakal/kind-of
```
Or
```sh
$ npm install --save @pakal/kind-of
```

## Use
**Module**
```typescript
import {
  default as kindOf
} from '@pakal/kind-of';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/kind-of/bundle.umd.min.js"></script>
```
```typescript
let {
  kindOf
} = _;
```

**Examples**
```typescript
 kindOf(null); // => 'null'
 kindOf(class {}); // => 'function'
 kindOf(NaN); // => 'number'
 kindOf(Object('foo')); // => 'string'
 kindOf(String.prototype); // => 'object'
 kindOf(Object.create(v => v)); // => 'object'
 kindOf(Object.freeze({[Symbol.toStringTag]: 'Number'})); // => 'object'

 // In env that not have native support.
 let fooSym = Symbol('foo');
 typeof fooSym; // => 'object'
 kindOf(fooSym); // => 'symbol'
 let bigNum = BigInt(1);
 typeof bigNum; // => 'object'
 kindOf(bigNum); // => 'bigint'
```
```typescript
 let iframe = document.createElement('iframe');
 document.body.appendChild(iframe);
 let {String: IFrameString} = iframe.contentWindow;
 kindOf(new IFrameString('foo')); // => 'string'
```

*Note: if `Symbol` or `BigInt` is not native (polyfill), the kind will base on `Symbol.toStringTag` property,
if `value` not has `Symbol.toStringTag` property it's will be returns that the kind is 'object'.*


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/reduce
Description: Reduce is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/reduce
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/reduce)
[![Version](https://img.shields.io/npm/v/@pakal/reduce.svg)](https://www.npmjs.com/package/@pakal/reduce)
[![MIT License](https://img.shields.io/npm/l/@pakal/reduce.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/reduce.svg?color=green)](https://bundlephobia.com/result?p=@pakal/reduce)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Reduce is package from Pakal library**

## Install
```sh
$ yarn add @pakal/reduce
```
Or
```sh
$ npm install --save @pakal/reduce
```

## Use
**Module**
```typescript
import {
  default as reduce
} from '@pakal/reduce';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/reduce/bundle.umd.min.js"></script>
```
```typescript
let {
  reduce
} = _;
```

**Examples**
```typescript
 let array: string[] = [1, 2, 3, 4, 5];

 let result: number[] = reduce(array, (result: number[], value: string, index: number, array: string[]) => {
     if(value % 2 === 0){
         result.push(value);
     }
     return result;
 }, []);

 console.log(result); // => [2, 4]
```
```typescript
 let object: {[key: string: number]} = {a: 1, b: 2, c: 3};

 let result: number = reduce(object, (value: number, key: string, object: {[key: string: number]}) => {
     return result + value;
 });

 console.log(result); // => 6
```
```typescript
 reduce('abc',(result: number, char: string) => {
   return result + char.charCodeAt(0);
 }, 0); // => 294
```
```typescript
 reduce({length: 3, 0: 1, 1: 2, 2: 3}, (result: number, num: number, index: number) => {
   return result + (num * index);
 }); // => 9
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/safify
Description: Safify is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/safify
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/safify)
[![Version](https://img.shields.io/npm/v/@pakal/safify.svg)](https://www.npmjs.com/package/@pakal/safify)
[![MIT License](https://img.shields.io/npm/l/@pakal/safify.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/safify.svg?color=green)](https://bundlephobia.com/result?p=@pakal/safify)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Safify is package from Pakal library**

## Install
```sh
$ yarn add @pakal/safify
```
Or
```sh
$ npm install --save @pakal/safify
```

## Use
**Module**
```typescript
import {
  default as safify
} from '@pakal/safify';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/safify/bundle.umd.min.js"></script>
```
```typescript
let {
  safify
} = _;
```

**Examples**
```typescript
 let hasOwnProperty = safify(Object.prototype.hasOwnProperty, false);
 hasOwnProperty.call({foo: 'bar'}, 'foo') // => false
 hasOwnProperty.call(null, 'foo') // => false
```
```typescript
 function get(object: object, key: PropertyKey): any | undefined {
     return object[key];
 }

 let safeGet = safify(get, undefined);
 safeGet([1, 2, 3], 0); // => 1
 safeGet([], 0); // => undefined
 safeGet(null, 0); // => undefined
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/tag-of
Description: Tag Of is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/tag-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/tag-of)
[![Version](https://img.shields.io/npm/v/@pakal/tag-of.svg)](https://www.npmjs.com/package/@pakal/tag-of)
[![MIT License](https://img.shields.io/npm/l/@pakal/tag-of.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/tag-of.svg?color=green)](https://bundlephobia.com/result?p=@pakal/tag-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Tag Of is package from Pakal library**

## Install
```sh
$ yarn add @pakal/tag-of
```
Or
```sh
$ npm install --save @pakal/tag-of
```

## Use
**Module**
```typescript
import {
  default as tagOf
} from '@pakal/tag-of';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/tag-of/bundle.umd.min.js"></script>
```
```typescript
let {
  tagOf
} = _;
```

**Examples**
```typescript
 tagOf(); // => 'Undefined'
 tagOf({}); // => 'Object'
 tagOf('foo'); // => 'String'
 tagOf(Object(1)); // => 'Number'
 tagOf({[Symbol.toStringTag]: 'Some'}); // => 'Some'
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/to-primitive
Description: To Primitive is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/to-primitive
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/to-primitive)
[![Version](https://img.shields.io/npm/v/@pakal/to-primitive.svg)](https://www.npmjs.com/package/@pakal/to-primitive)
[![MIT License](https://img.shields.io/npm/l/@pakal/to-primitive.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/to-primitive.svg?color=green)](https://bundlephobia.com/result?p=@pakal/to-primitive)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**To Primitive is package from Pakal library**

## Install
```sh
$ yarn add @pakal/to-primitive
```
Or
```sh
$ npm install --save @pakal/to-primitive
```

## Use
**Module**
```typescript
import {
  $default,
  default as toPrimitive
} from '@pakal/to-primitive';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/to-primitive/bundle.umd.min.js"></script>
```
```typescript
let {
  $default,
  toPrimitive
} = _;
```

**Examples**
```typescript
 toPrimitive(1); // => 1
 toPrimitive(Object('foo')); // => 'foo'
 toPrimitive(null, 'default'); // => null
 toPrimitive(undefined, 'string'); // => 'undefined'
 toPrimitive(true, 'number'); // => 1
 toPrimitive({}); // => {}
 toPrimitive(v => v, 'default'); // => v => v
 toPrimitive({toString(){ return '55';}}, 'number'); // => 55
 toPrimitive(Object.create(null, {valueOf: {value(){ return true; }}}), 'string'); // => 'true'
 toPrimitive({[Symbol.toPrimitive](hint){return hint === 'string' ? 'foo' : this}}, 'number'); // => 'foo'
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/tryify
Description: Tryify is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/tryify
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/tryify)
[![Version](https://img.shields.io/npm/v/@pakal/tryify.svg)](https://www.npmjs.com/package/@pakal/tryify)
[![MIT License](https://img.shields.io/npm/l/@pakal/tryify.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/tryify.svg?color=green)](https://bundlephobia.com/result?p=@pakal/tryify)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Tryify is package from Pakal library**

## Install
```sh
$ yarn add @pakal/tryify
```
Or
```sh
$ npm install --save @pakal/tryify
```

## Use
**Module**
```typescript
import {
  default as tryify
} from '@pakal/tryify';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/tryify/bundle.umd.min.js"></script>
```
```typescript
let {
  tryify
} = _;
```

**Examples**
```typescript
 tryify(function(){})(); // => true
 tryify(() => false)(); // => true
 tryify(function(){
     throw TypeError
 })(); // => false
 tryify(Object.prototype.hasOwnProperty).call(null, 'foo'); // => false
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/type-of
Description: Type Of is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/type-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/type-of)
[![Version](https://img.shields.io/npm/v/@pakal/type-of.svg)](https://www.npmjs.com/package/@pakal/type-of)
[![MIT License](https://img.shields.io/npm/l/@pakal/type-of.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/type-of.svg?color=green)](https://bundlephobia.com/result?p=@pakal/type-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Type Of is package from Pakal library**

## Install
```sh
$ yarn add @pakal/type-of
```
Or
```sh
$ npm install --save @pakal/type-of
```

## Use
**Module**
```typescript
import {
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined,
  ITypeKeys,
  default as typeOf
} from '@pakal/type-of';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/type-of/bundle.umd.min.js"></script>
```
```typescript
let {
  $bigint,
  $boolean,
  $function,
  $null,
  $number,
  $object,
  $string,
  $symbol,
  $undefined,
  typeOf
} = _;
```

**Examples**
```typescript
 typeOf('foo'); // => 'string'
 typeOf(Object('foo')); // => 'object'
 typeOf(null); // => 'null'
 typeOf(v => v); // => 'function'
 typeOf(SymbolPolyfill('foo')); // => 'object'
 typeOf(BigIntPolyfill(1)); // => 'object'
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).
npm package: @pakal/unique-id
Description: Unique Id is package from Pakal library
Author: Yisrael Eliev
Latest version: 0.2.1

# @pakal/unique-id
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/pakal/blob/master/modules/unique-id)
[![Version](https://img.shields.io/npm/v/@pakal/unique-id.svg)](https://www.npmjs.com/package/@pakal/unique-id)
[![MIT License](https://img.shields.io/npm/l/@pakal/unique-id.svg?color=yellow)](https://github.com/yisraelx/pakal/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@pakal/unique-id.svg?color=green)](https://bundlephobia.com/result?p=@pakal/unique-id)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Unique Id is package from Pakal library**

## Install
```sh
$ yarn add @pakal/unique-id
```
Or
```sh
$ npm install --save @pakal/unique-id
```

## Use
**Module**
```typescript
import {
  default as uniqueId
} from '@pakal/unique-id';
```

**Browser**
```html
<script src="https://unpkg.com/@pakal/unique-id/bundle.umd.min.js"></script>
```
```typescript
let {
  uniqueId
} = _;
```

**Examples**
```typescript
 uniqueId(); // => '7sj9x8enjd'
 uniqueId('id_'); // => 'id_t3jusro55p'
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/pakal/blob/master/LICENSE).