1.0.1 • Published 11 months ago

@dualizm/descend v1.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
11 months ago

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);

License

Apache-2.0