Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ldarren/picos-util
util for picos and picos' modules
https://github.com/ldarren/picos-util
Last synced: about 2 months ago
JSON representation
util for picos and picos' modules
- Host: GitHub
- URL: https://github.com/ldarren/picos-util
- Owner: ldarren
- License: mit
- Created: 2017-05-18T05:10:22.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-07-11T20:08:00.000Z (over 1 year ago)
- Last Synced: 2024-04-16T17:51:43.080Z (10 months ago)
- Language: JavaScript
- Size: 25.4 KB
- Stars: 0
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# picos-util
This is a JavaScript module that provides utility functions for making HTTP requests, handling data compression, and managing environment variables. It utilizes the `zlib`, `http`, `https`, `fs`, `querystring`, and `pico-common` libraries.
## Installation
To use this module, you need to have Node.js installed. You can install the required dependencies by running the following command:
```
npm i picos-util
```## Usage
To use this module in your JavaScript code, require it using `require('http-utils')`. The module exports the following functions:
### zip(str, cb)
This function compresses a string using `zlib`'s `deflateRaw` method and returns the compressed data as a Base64-encoded string.
- `str` (string): The string to be compressed.
- `cb` (function): The callback function that will be called with the compressed data or an error.### unzip(str, cb)
This function decompresses a Base64-encoded string using `zlib`'s `inflateRaw` method and returns the decompressed data as a string.
- `str` (string): The Base64-encoded string to be decompressed.
- `cb` (function): The callback function that will be called with the decompressed data or an error.### ajax(method, href, params, opt, cb, userData)
This function sends an HTTP request to the specified URL with the given parameters and options.
- `method` (string): The HTTP method to be used (`get`, `post`, `put`, `delete`, `patch`).
- `href` (string): The URL path.
- `params` (object or array): The parameters to be sent with the request. If it is an array, the objects will be merged, and overlapping keys will be overridden by the later object.
- `opt` (object, optional): Additional options for the HTTP request. See the [Node.js documentation](https://nodejs.org/api/http.html#http_http_request_options_callback) for available options.
- `cb` (function): The callback function that will be called with the response or an error.
- `userData` (object, optional): Optional user data that will be passed to the callback function.### env(obj)
This function sets environment variables based on the provided object.
- `obj` (object): An object containing key-value pairs representing environment variable names and their corresponding values.
## Example
Here's an example of how to use this module:
```javascript
const pu = require('picos-utils')pu.zip('Hello, World!', (err, compressedData) => {
if (err) {
console.error('Compression error:', err)
return
}console.log('Compressed data:', compressedData)
pu.unzip(compressedData, (err, decompressedData) => {
if (err) {
console.error('Decompression error:', err)
return
}console.log('Decompressed data:', decompressedData)
})
})pu.ajax('get', 'https://api.example.com/users', null, {}, (err, state, resBody, res, userData) => {
if (4 === state) return // support response streaming
if (err) {
console.error('Request error:', err)
return
}console.log('Response body:', resBody)
})
```Note: Make sure to replace `'https://api.example.com/users'` with the actual API endpoint you want to request.
## License
This module is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.