New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

node-apollo-client

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-apollo-client

node apollo client for Ctrip Apollo

latest
Source
npmnpm
Version
0.1.7
Version published
Weekly downloads
4
-55.56%
Maintainers
1
Weekly downloads
 
Created
Source

node-apollo-client Build Status NPM Version node

node apollo client for Ctrip Apollo

Features:

  • implement all APIs described in official documentation
  • high availability by caching configs in local files which simulate JAVA SDK does.
  • written in TypeScript and typing support
  • naturally async await function calling, no event or callback mixed-in.

client logic and availability

local configs object
  \-+= local cached config files
    \-+= fetch from Apollo DB at once
      \-+= fetch from Apollo cache periodically (default to 5 minutes)
        \-+= subscribe notification and fetch from Apollo DB if release tag changed
          \-+= update local configs by API: refreshConfigs
sceneinfluenceconfigs source
failed to connect apollo at beginingxuse local configs directly
failed to connect apolloxuse cached apollo configs
failed to connect apollo and wish to update configsxupdate cached configs temporarily
failed to receive notificationsxfetch configs periodically fetch from apollo
failed to fetch from apollo cachexsubscribe notification and fetch from DB

Usage

install package from npm

npm install node-apollo-client

const Apollo = require('node-apollo-client')

// Instantiate Apollo
const apollo = new Apollo({
  configServerUrl: 'your-config-server-url',
  appId: 'your-app-id',
  cluster: 'default', // [optional] default to `default`
  namespaces: ['application'],  // default to `['application']`, this is the namespaces that you want to use or maintain.
  initialConfigs: {
    application: {  // this is default namespace name
      foo: 'Mars',
      bar: 'Jupiter'
    },
  }, // [optional]
  listenOnNotification: true, // [optional] default to true
  fetchCacheInterval: 5 * 60e3, // [optional] default to 5 minutes. can be customize but 30s or shorter time are not acceptable.
  cachedConfigFilePath: '/tmp' // [optional] cached configs path, default to system's tmp directory, for linux it's basically '/tmp'.
});

// fetch single config
await apollo.fetchConfig({ key: 'foo' });
// return 'Mars'

// fetch multiple configs
await apollo.fetchConfigs({ keys: [ 'foo', 'bar' ] });
// return { foo: 'Mars', bar: 'Jupiter' }

// refresh local configs (merely used when Apollo is unavailable)
apollo.refreshConfigs({ configs: { foo: 'Mercury' } });
// check out key `foo`
await apollo.fetchConfig({ key: 'foo' });
// return { foo: 'Mercury' }

License

MIT

FAQs

Package last updated on 29 Aug 2019

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