Socket
Book a DemoInstallSign in
Socket

exovision

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

exovision

Call remote HTTP services in an easy way, both in brwoser and node.js

latest
Source
npmnpm
Version
1.0.3
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

ExoVision

Call remote HTTP RESTful services in easy way, both in browser and Node.js.

import exovision from 'exovision' // const exovision = require('exovision').default

// using process.ENV
const myRemoteService = exovision('MY_REMOTE_SERVICE') // process.env.MY_REMOTE_SERVICE === https://myremoteservice.com

// or using uri
const myRemoteService2 = exovision('https://myremoteservice.com')

// now we have 4 methods
myRemoteService.get()
myRemoteService.post()
myRemoteService.put()
myRemoteService.del()

All methods have same signature:

type ExovisionBoundTransmit = (
  path: string, // path to add on baseurl, eg. /rabbids
  data?: any, // can be any POJO: if the method is get, it will be transformed to querystring otherwise to body
  options?: ITransmissionOptions, // see below
) => Promise<any>

This is ITransmissionOptions interface:

interface ITransmissionOptions {
  contentType?: string // defaults to 'application/json'
  responseType?: string // defaults to 'json'
  transcodeResponse?<O, T>(data: O): T | Promise<T>
  echoCall?: boolean // simulates the call and returns request (for testing and debugging)
  token?: string // bearer login token, added to headers['Authorization'] = `Bearer ${token}`
}

transcodeResponse: custom transformation function. For example, if you need to convert xml to json you can pass a transform function that will be invoked after the remote call is done:

import { parse } from 'fast-xml-parser'

const trasformXmlToJson = (data: any) =>
  parse(data, { ignoreAttributes: false, attributeNamePrefix: '' })

myRemoteService.get('/rabbids', {}, {
  contentType: 'text/xml',
  responseType: 'text',
  transcodeResponse: trasformXmlToJson
})

All methods return a promise with parsed content (content type is JSON) or whatever transcodeResponse custom function returns.

In case of error during remote call it will be rertuned a rejected promise with interference instance

Keywords

xhr

FAQs

Package last updated on 26 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts