# @angular-cool/http

> Cool features over angular Http Client.

Latest version **15.0.6** (published 2026-07-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install @angular-cool/http
pnpm add @angular-cool/http
yarn add @angular-cool/http
bun add @angular-cool/http
```

## Health

**Score 55/100 (C)** — status: active.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 15.0.6 |
| Published | 2026-07-05 |
| First published | 2018-05-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 58.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 10 |
| Author | Hacklone |
| Maintainers | hacklone |
| Keywords | angular2, angular, ngx, http, httpclient, interceptor, global, headers, interceptors, cool, cool-http, cookie, custom, header |

## Links

- npm: https://www.npmjs.com/package/@angular-cool/http
- Repository: https://github.com/Hacklone/angular-cool
- Homepage: https://github.com/Hacklone/angular-cool/blob/master/projects/http/README.md
- Issues: https://github.com/Hacklone/angular-cool/issues
- npm.io page: https://npm.io/package/@angular-cool/http

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^2.0.0

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 15.0.6 (latest) — 2026-07-05
- 15.0.5 — 2026-01-14
- 15.0.4 — 2023-12-15
- 15.0.3 — 2023-12-15
- 15.0.2 — 2023-12-15
- 15.0.1 — 2023-03-22
- 15.0.0 — 2022-11-22
- 13.0.0 — 2022-01-07
- 12.0.0 — 2020-11-26
- 11.0.0 — 2020-11-16
- 10.0.1 — 2020-09-27
- 10.0.0 — 2020-09-01
- 2.0.0 — 2020-02-07
- 1.0.4 — 2018-12-31
- 1.0.3 — 2018-12-29
- … 3 more at https://npm.io/package/@angular-cool/http/versions

## README

[npm-url]: https://npmjs.org/package/@angular-cool/http
[npm-image]: https://img.shields.io/npm/v/@angular-cool/http.svg
[downloads-image]: https://img.shields.io/npm/dm/@angular-cool/http.svg
[total-downloads-image]: https://img.shields.io/npm/dt/@angular-cool/http.svg

# @angular-cool/http [![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]  [![Total Downloads][total-downloads-image]][npm-url]
Cool features over angular HttpClient

## Install 
> npm install --save @angular-cool/http

## Setup
```javascript
import { NgModule } from '@angular/core';
import { CoolHttpModule } from '@angular-cool/http';

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

## Features
### Global base url
CoolHttp's api calls will always prefix your url with the baseUrl set (Great for cross origin websites)

```javascript
coolHttp.registerBaseUrl('https://my.api.com/');
```

```javascript
coolHttp.deRegisterBaseUrl();
```

### Global withCredentials
CoolHttp's api calls will always send cookies to cross domain requests (Great for cross origin websites)

```javascript
coolHttp.setWithCredentials(true);
```

### Async Api calls
- getAsync<T>(url: string, options: RequestOptions): Promise<T>
- postAsync<T>(url: string, data: any, options: RequestOptions): Promise<T>
- putAsync<T>(url: string, data: any, options: RequestOptions): Promise<T>
- deleteAsync<T>(url: string, options: RequestOptions): Promise<T>
- patchAsync<T>(url: string, data: any, options: RequestOptions): Promise<T>
- headAsync<T>(url: string, options: RequestOptions): Promise<T>

```javascript
import { Component, OnInit } from '@angular/core';

import { CoolHttp } from '@angular-cool/http';

@Component({
  selector: 'my-app'
})
export class AppComponent implements OnInit { 
    coolHttp: CoolHttp;
    
    constructor(coolHttp: CoolHttp) {
        this.coolHttp = coolHttp;   
    }
    
    async ngOnInit() {
        // await async api call
        let response = await this.coolHttp.getAsync('/api/request');
        
        console.log(response);
        
        // or simply chain Promise
        this.coolHttp.getAsync('/api/request')
            .then(response => {
                console.log(response);
            });
    }
}
```

### Observable api calls
- getObservable<T>(url: string, options: RequestOptions): Observable<T>
- postObservable<T>(url: string, data: any, options: RequestOptions): Observable<T>
- putObservable<T>(url: string, data: any, options: RequestOptions): Observable<T>
- deleteObservable<T>(url: string, options: RequestOptions): Observable<T>
- patchObservable<T>(url: string, data: any, options: RequestOptions): Observable<T>
- headObservable<T>(url: string, options: RequestOptions): Observable<T>

### Global headers
CoolHttp's api calls will always send these globally registered headers. (Great for authentication)

```javascript
import { CoolHttp, HttpHeader } from '@angular-cool/http';

coolHttp.registerGlobalHeader(new HttpHeader('MyHttpHeader', 'MyHeadersValue'));
```

- registerGlobalHeader(header: HttpHeader): void
- getGlobalHeaders(): HttpHeader[]
- deregisterGlobalHeader(headerKey: string): boolean
- removeAllRegisteredGlobalHeaders(): void

### Request Interceptors
CoolHttp's api calls will invoke the registered request interceptors before sending the request

- registerRequestInterceptor(requestInterceptor: IRequestInterceptor): void
- deregisterRequestInterceptor(requestInterceptor: IRequestInterceptor): boolean

```javascript
coolHttp.registerRequestInterceptor({
    beforeRequestAsync: function(url, method, data, headers) {
        return new Promise((resolve, reject) => {
            // do something 
            
            // resolve with true to fully intercept request
            // resolve with false to let the request continue
            resolve(false);
        });
    }
});
```

### Response Interceptors
CoolHttp's api calls will invoke the registered response interceptors after receiving the response

- registerResponseInterceptor(responseInterceptor: IResponseInterceptor): void
- deregisterResponseInterceptor(responseInterceptor: IResponseInterceptor): boolean

```javascript
coolHttp.registerResponseInterceptor({
    afterResponseAsync: function(url, method, data, headers) {
        return new Promise((resolve, reject) => {
            //do something 
            
            // resolve with true to fully intercept the response handling
            // resolve with false to let the response handling continue
            resolve(true);
        });
    }
});
```

## Automatic cookie to custom header sending
You can configure CoolHttp to copy and send a cookie value in a custom http header.

```javascript
coolHttp.sendCookieValueInCustomHeader(cookieName, headerName);
```

## License
> The MIT License (MIT)

> Copyright (c) 2018 Hacklone
> https://github.com/Hacklone

> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:

> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.

> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> SOFTWARE.

---
_Source: https://npm.io/package/@angular-cool/http · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
