@dualizm/descend
v1.0.1
Published
🏂 A library to make the description of endpoints easier.
Downloads
6
Maintainers
Readme
Descend
🏂 A library to make the description of endpoints easier.
Install
npm:
npm install @dualizm/descend
yarn:
yarn add @dualizm/descend
Usage
Describe your endpoints
import { descend, group } from '@dualizm/descend'
const ip = '127.0.0.1'
const port = 9001
export const endpoints = {
cats: {
[group]: true,
get: {
all: 'all-cats', // https://127.0.0.1:9001/cats/all-cats
},
post: {
save: 'save-cat',
create: 'new-cat'
}
},
dogs: {
get: {
all: 'all-dogs', // https://127.0.0.1:9001/all-dogs
}
}
}
descend({
ip,
port,
procotol: 'https'
}, endpoints);
and use it
import { endpoints } from 'endpoints'
const showCats = async () => {
try {
const response = await fetch(endpoints.cats.get.all)
const answer = await response.json()
console.log(answer)
} catch (error) {
console.error(error)
}
}
import { endpoints } from 'endpoints'
import axios from 'axios'
const showLists = async () => {
try {
const response = await axios.get(endpoints.dogs.get.all)
console.log(response.data)
} catch (error) {
console.error(error)
}
}
Docs
/**
* Symbol representing the 'group' identifier.
* Add the group symbol to the object so that the top key is included in the path
* @type {Symbol}
*/
const group;
/**
* Takes the host, port, and protocol and returns the formatted URL.
*
* @param {string} host - the host name or IP address
* @param {number | string} port - the port number (optional)
* @param {string} protocol - the URL protocol (e.g. http, https)
* @return {string} the formatted URL
*/
function formatURL(host, port, protocol);
/**
* A function that descends through endpoints to update their values with formatted URL.
*
* @param {Object} ip - the IP address to construct the URL
* @param {number | string} port - the port number for the URL (optional)
* @param {string} procotol - the protocol for the URL (default: 'http')
* @param {Object} endpoints - the object containing the endpoints to update
* @param {Object} opts - the options for formatting the URL
* @return {void}
*/
function descend ({ip, port, procotol = 'http'}, endpoints, opts);