@krai-tech/web-api
Version:
A set of common tokens for consuming Web API with Angular.
69 lines (50 loc) • 2.33 kB
Markdown
<p align="center">
<a href="https://krai-kit.dev">
<img alt="KRAI WEB API Logo" src="https://github.com/krai-tech/krai-kit/raw/alpha/assets/krai-web-api.svg" width="280" style="max-width:100%;">
</a>
</p>
<h1 align="center">KRAI Web API</h1>
<div align="center">
<a href="https://npmjs.com/package/@krai-tech/kit">
<img src="https://img.shields.io/npm/v/@krai-tech/kit.svg" alt="npm version">
</a>
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT">
</a>
</div>
[Website](https://krai-kit.dev)
**Web API for Angular** creates injection tokens for working with native web APIs, simplifying their implementation, testing, and maintenance in Angular applications.
## Purpose
- **Testability**: Injection tokens allow replacing real web APIs with mocks during testing.
- **SSR**: During server-side rendering (**SSR**), some web APIs are unavailable. Injection tokens help adapt the code to work on both client and server.
## Installation
```bash
npm i @krai-tech/web-api
# or
yarn i @krai-tech/web-api
```
## Import
```ts
import { Token_Name } from '@krai-tech/web-api/tokens';
```
## Tokens
- `WINDOW` — provides access to the global `window` object
- `NAVIGATOR` — provides access to the `window.navigator` object
- `USER_AGENT` — provides access to the `window.navigator.userAgent` string
- `ANIMATION_FRAME` — shared `Observable` based on `window.requestAnimationFrame`
- `CRYPTO` — provides access to the `window.crypto` object
- `LOCATION` — provides access to the `window.location` object
- `LOCAL_STORAGE` — provides access to the `window.localStorage` object
- `SCREEN` — provides access to the `window.screen` object
- `SESSION_STORAGE` — provides access to the `window.sessionStorage` object
- `PAGE_VISIBILITY` — wrapper for the API `document.addEventListener('visibilityChange')`
- `HISTORY` — provides access to the `window.history` object
## Contribution
Yes please! See the
[contributing guidelines](https://krai-kit.dev/en/docs/contribution)
for details.
## Documentation
[Getting Started](https://krai-kit.dev/en/docs/getting-started)
## License
This project is licensed under the terms of the
[MIT license](https://github.com/krai-tech/krai-kit/blob/master/LICENSE).