@adobe/aio-lib-core-networking

    2.0.0 • Public • Published

    Version Downloads/week Node.js CI License Codecov Coverage

    Adobe I/O Core Networking Lib

    Installing

    $ npm install @adobe/aio-lib-core-networking

    Usage

    1. Initialize the SDK
    const { HttpExponentialBackoff, createFetch } = require('@adobe/aio-lib-core-networking')
    const fetchRetry = new HttpExponentialBackoff()
    const proxyFetch = createFetch()
    1. Call methods using the initialized SDK
    const { HttpExponentialBackoff, createFetch } = require('@adobe/aio-lib-core-networking')
    const fetchRetry = new HttpExponentialBackoff()
    async function sdkTest() {
    
      return new Promise((resolve, reject) => {
        fetchRetry.exponentialBackoff(url, requestOptions, retryOptions, retryOn, retryDelay)
        .then((response) => {
          if (!response.ok) {
            throw Error(reduceError(response))
          }
          resolve(response.json())
        })
        .catch(err => {
          reject(
            new codes.ERROR_GET_SOMETHING({ sdkDetails, messageValues: err }))
        })
      }) 
    }
    
    let proxyFetch 
    // this will get the proxy settings from the the HTTP_PROXY or HTTPS_PROXY environment variables, if set
    proxyFetch = createFetch()
    
    // this will use the passed in proxy settings. Embed basic auth in the url, if required
    proxyFetch = createFetch({ proxyUrl: 'http://my.proxy:8080' })
    
    // if the proxy settings are not passed in, and not available in the HTTP_PROXY or HTTPS_PROXY environment variables, it falls back to a simple fetch
    const simpleFetch = createFetch()

    Classes

    HttpExponentialBackoff

    This class provides methods to implement fetch with retries. The retries use exponential backoff strategy with defaults set to max of 3 retries and initial Delay as 100ms

    ProxyFetch

    This provides a wrapper for fetch that facilitates proxy auth authorization.

    Functions

    createFetch([proxyAuthOptions])function

    Return the appropriate Fetch function depending on proxy settings.

    Typedefs

    RetryOptions : object

    Fetch Retry Options

    ProxyAuthOptions : object

    Proxy Auth Options

    HttpExponentialBackoff

    This class provides methods to implement fetch with retries. The retries use exponential backoff strategy with defaults set to max of 3 retries and initial Delay as 100ms

    Kind: global class

    httpExponentialBackoff.exponentialBackoff(url, requestOptions, [retryOptions], [retryOn], [retryDelay]) ⇒ Promise.<Response>

    This function will retry connecting to a url end-point, with exponential backoff. Returns a Promise.

    Kind: instance method of HttpExponentialBackoff
    Returns: Promise.<Response> - Promise object representing the http response

    Param Type Description
    url string endpoint url
    requestOptions object | Request request options
    [retryOptions] RetryOptions (optional) retry options
    [retryOn] function | Array (optional) Function or Array. If provided, will be used instead of the default
    [retryDelay] function | number (optional) Function or number. If provided, will be used instead of the default

    ProxyFetch

    This provides a wrapper for fetch that facilitates proxy auth authorization.

    Kind: global class

    new ProxyFetch(authOptions)

    Initialize this class with Proxy auth options

    Param Type Description
    authOptions ProxyAuthOptions the auth options to connect with

    proxyFetch.proxyAgent() ⇒ http.Agent

    Returns the http.Agent used for this proxy

    Kind: instance method of ProxyFetch
    Returns: http.Agent - a http.Agent for basic auth proxy

    proxyFetch.fetch(resource, options) ⇒ Promise.<Response>

    Fetch function, using the configured NTLM Auth options.

    Kind: instance method of ProxyFetch
    Returns: Promise.<Response> - Promise object representing the http response

    Param Type Description
    resource string | Request the url or Request object to fetch from
    options object the fetch options

    createFetch([proxyAuthOptions]) ⇒ function

    Return the appropriate Fetch function depending on proxy settings.

    Kind: global function
    Returns: function - the Fetch API function

    Param Type Description
    [proxyAuthOptions] ProxyAuthOptions the proxy auth options

    RetryOptions : object

    Fetch Retry Options

    Kind: global typedef
    Properties

    Name Type Description
    maxRetries number the maximum number of retries to try (default:3)
    initialDelayInMillis number the initial delay in milliseconds (default:100ms)
    proxy ProxyAuthOptions the (optional) proxy auth options

    ProxyAuthOptions : object

    Proxy Auth Options

    Kind: global typedef
    Properties

    Name Type Description
    proxyUrl string the proxy's url
    rejectUnauthorized boolean set to false to not reject unauthorized server certs

    Debug Logs

    LOG_LEVEL=debug <your_call_here>

    Prepend the LOG_LEVEL environment variable and debug value to the call that invokes your function, on the command line. This should output a lot of debug data for your SDK calls.

    Contributing

    Contributions are welcome! Read the Contributing Guide for more information.

    Licensing

    This project is licensed under the Apache V2 License. See LICENSE for more information.

    Keywords

    none

    Install

    npm i @adobe/aio-lib-core-networking

    DownloadsWeekly Downloads

    3,464

    Version

    2.0.0

    License

    Apache-2.0

    Unpacked Size

    329 kB

    Total Files

    32

    Last publish

    Collaborators

    • marbec
    • tripod
    • garthdb
    • lazd
    • adobe-admin
    • patrickfulton
    • trieloff
    • shazron
    • krisnye
    • dcpfsdk
    • natebaldwin
    • devongovett
    • aspro83
    • symanovi
    • dpfister
    • stefan-guggisberg
    • korra
    • rofe
    • kptdobe