# @ng-proget/storage

Angular storage bundle.
Author: Proget (https://www.proget.pl/)

***

## Practice usage

Import `StorageModule` from `@ng-proget/storage` and add it to your module, eq:

```
import { StorageModule } from '@ng-proget/storage';

@NgModule({
  imports: [
    StorageModule.forRoot(),
  ]
})
export class AppModule {}
```

- `forRoot()` create an instance of included services,
- `forChild()` you can use it in chunk module.

### LocalStorageService

Import and DI `LocalStorageService`.

Available methods:
- `set(key: string, value: any): void`,
- `get(key: string): any`,
- `remove(key: string): void`.

***

### SessionStorageService

Import and DI `SessionStorageService`.

Available methods:
- `set(key: string, value: any): void`,
- `get(key: string): any`,
- `remove(key: string): void`.

***

### CookieService

Import and DI `CookieService`.

Available methods:
- `set(key: string, value: any, expires?: Date | number, path?: string, domain?: string): void`,
- `get(key: string): any`,
- `remove(key: string): void`.

***

## Development

### Task

Common tasks are present as npm scripts:

- `npm run start` to run a live-reload server with the demo app
- `npm run test` to test in watch mode, or `npm run test:once` to only run once
- `npm run build` to build the library
- `npm run lint` to lint
- `npm run clean` to clean
- `npm install ./relative/path/to/lib` after `npm run build` to test locally in another app

### The build step

You can build the library by running `npm run build`.
This will generate a `dist/` directory with all the entry points described above.

All the logic for creating the build can be found in `./build.js`. It consists of roughly 5 steps:

- Compile with the AOT Compiler (AOT compiler or `ngc`) for ES5 and ES2015.
- Inline html and css inside the generated JavaScript files.
- Copy typings, metatada, html and css.
- Create each bundle using Rollup.
- Copy `LICENSE`, `package.json` and `README.md` files
