open-index/open-npm huggingface dataset:
npm package: @scottwalker/node-http-client
Description: Простой HTTP/HTTPS клиент для NodeJS
Author: scottwalker
Latest version: 1.1.4

# Node HTTP client

[![Build Version](https://img.shields.io/github/package-json/v/scottwalker87/node-http-client?style=for-the-badge)](https://github.com/scottwalker87/node-http-client)
[![NPM Package](https://img.shields.io/npm/v/@scottwalker/node-http-client?style=for-the-badge)](https://www.npmjs.com/package/@scottwalker/node-http-client)
[![Scottweb](https://img.shields.io/badge/Scottweb-Web%20Development-red?style=for-the-badge)](http://scottweb.ru/)

Простой HTTP/HTTPS клиент для NodeJS

#### Пример создания простого GET запроса
```js
const { HttpClient } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент
const httpClient = new HttpClient()

httpClient.get("https://example.com", { query: { page: 1 } })
  .then(content => console.log(content))
  .catch(error => console.error(error))
```

#### Пример создания простого POST запроса
```js
const { HttpClient } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент
const httpClient = new HttpClient()

/**
 * Отправить данные
 * @param {Object} data
 * @return {Promise}
 */
async function postData(data = {}) {
  try {
    return await httpClient.post("https://example.com", data)
  } catch (error) {
    console.error(error)

    return null
  }
}

postData({ message: "Hello World" })
```

#### Пример создания более сложного запроса
Если указать в заголовках запроса `Content-Type: application/json`, то тело ответа будет преобразовано в js объект 
(при условии валидного JSON в теле ответа), также для удобства можно использовать пересет `presetHeaders.json`

```js
const { HttpClient, presetHeaders, METHOD_PUT } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент (с конфигурацией)
const httpClient = new HttpClient({
  baseUrl: "https://example.com",
  headers: {
    ...presetHeaders.json
    "X-My-Param": "hello"
  }
})

const requestPromise = httpClient.request({
  method: METHOD_PUT,
  url: "info/update",
  query: { 
    limit: 1,
    order: "desc" 
  },
  data: { 
    message: "Hello World"
  }
})

requestPromise
  .then(content => console.log(content))
  .catch(error => console.error(error))
```

Конструктор клиента принимает в себя объект конфигурации, содержащий следующие параметры:

```
baseUrl - базовый URL для всех запросов
headers - заголовки по умолчанию
```

Метод request принимает в себя объект, содержащий следующие параметры:

```
method - метод запроса
url - URL адрес
query - GET параметры запроса
data - тело запроса
headers - заголовки
```

#### Пример отправки формы
Воспользуйтесь пересетом `headers.form`

```js
const { HttpClient, presetHeaders } = require("@scottwalker/node-http-client")

// Инициализировать HTTP клиент (с конфигурацией)
const httpClient = new HttpClient({
  baseUrl: "https://example.com",
})

httpClient.post("order", { name: "scott", price: 10 }, { headers: presetHeaders.form })
  .then(content => console.log(content))
  .catch(error => console.error(error))
```
npm package: @scottwalker/node-static-server
Description: Simple node static Server
Author: scottwalker
Latest version: 1.0.1

# Статический NodeJS сервер

[![Build Status](https://img.shields.io/github/checks-status/scottwalker87/node-static-server/main?style=for-the-badge)](https://github.com/scottwalker87/node-static-server)
[![NPM Package](https://img.shields.io/npm/v/@scottwalker/node-static-server?style=for-the-badge)](https://www.npmjs.com/package/@scottwalker/node-static-server)
[![Scottweb](https://img.shields.io/badge/Scottweb-Web%20Development-red?style=for-the-badge)](http://scottweb.ru/)

Простой статический сервер написанный на NodeJS без использования сторонних библиотек 

#### Пример использования
```js
const { StaticServer } = require("@scottwalker/node-static-server")

// Инициализировать сервер
const server = new StaticServer({
  protocol: "http",
  host: "localhost",
  port: 3030,
  rootDir: "./public",
  indexFile: "index.html",
  notFoundFile: "notFound.html",
  mimeTypes: {
    "custom": "text/custom"
  }
})

// Слушать событие запуска
server.on("start", ({ message }) => console.log(message))

// Запустить сервер
server.start()

```

#### Конфигурация
```
protocol - протокол соединения
host - хост соединения
port - порт соединения
rootDir - корневая директория для статических файлов
indexFile - индексный файл
notFoundFile - файл показываемый в случае ошибки 404
mimeTypes - карта расширений и их MIME-типов
```