Noodles Practicing Medicine

    muffled

    1.1.0 • Public • Published

    Muffled API

    Actions Status: test npm version

    Muffled API 🧣

    Omnipotent API Client armed with a power of Proxy.

    Table of Contents

    Install

    You can install Muffled API via npm or yarn.

    npm install muffled
    yarn add muffled

    Usage

    const { Muffled, bearerAuth } = require("muffled");
    
    /**
     * Spotify API
     */
    const SpotifyAPI = new Muffled("api.spotify.com/v1");
    
    // OAuth2 Bearer Authentication
    SpotifyAPI.use(bearerAuth(process.env.SPOTIFY_TOKEN));
    
    // This will fetch resource from `https://api.spotify.com/v1/search`
    const result = await SpotifyAPI.search({
      q: "roadhouse blues",
      type: "album,track",
    });

    API

    new Muffled(endpoint: String)

    This will create a class for given endpoint.

    You can also specify endpoint like:

    new Muffled("api.spotify.com");
    new Muffled("https://api.spotify.com");
    new Muffled("https://api.spotify.com/v1");

    API call

    You can call any API query by passing property as a path string.

    new Muffled("api.spotify.com").v1.search({ limit: 1 }); // GET https://api.spotify.com/v1/search?limit=1
    new Muffled("api.spotify.com/v1").search({ limit: 1 }, { query: "hey" }); // POST https://api.spotify.com/v1/search?limit=1 -F '{"query": "hey"}' -H contnet-type=application/json
    
    new Muffled("holodex.net/api/v2").channels["UCMwGHR0BTZuLsmjY_NT5Pwg"](); // GET https://holodex.net/api/v2/channels/UCMwGHR0BTZuLsmjY_NT5Pwg

    You can also call them using partial components:

    const { user } = new Muffled("api.github.com");
    const userRepos = await user.repos();

    Method override

    const client = new Muffled("holodex.net/api/v2", {
      overrides: {
        "/search": {
          method: "POST",
        },
      },
    });
    
    client.search.videoSearch({ query: "hey" }); // POST https://holodex.net/api/v2/search/videoSearch -F '{"query": "hey"}' -H contnet-type=application/json

    Authorization

    OAuth Bearer Token

    const { Muffled, bearerAuth } = require("muffled");
    
    const API = new Muffled("api.github.com");
    
    API.use(bearerAuth(process.env.GITHUB_TOKEN));
    
    API.user.repos(); // this will inject github token into Authorization header

    Generic Header Auth

    const { Muffled, headerAuth } = require("muffled");
    
    const API = new Muffled("holodex.net");
    
    API.use(headerAuth("x-apikey", process.env.HOLODEX_TOKEN));
    
    API.live(); // this will inject apikey into x-apikey header

    Maintainers

    @uetchy

    Contributing

    PRs accepted.

    Small note: If editing the README, please conform to the standard-readme specification.

    License

    MIT © 2019 Yasuaki Uechi

    Keywords

    Install

    npm i muffled

    DownloadsWeekly Downloads

    1

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    9.35 kB

    Total Files

    6

    Last publish

    Collaborators

    • uetchy