Coder Social home page Coder Social logo

classy-lambda-common's Introduction

classy-lambda-common

Common configuration and tools for Classy Lambda modules.

installation

$ npm install --save classy-lambda-common

prerequisites

Minimally, you must have an environment.json and creds.example.json file in the root of your project. The JSON content provides a configuration based on which stage you are deployed to:

environment.json

{
  "dev": {
    "aws": {
      "region": "us-west-2"
    }
  },
  "staging": {
    "aws": {
      "region": "us-west-2"
    }
  },
  "production": {
    "aws": {
      "region": "us-east-1"
    }
  }
}

creds.example.json

{
  "SECRET": "SHHHH"
}

options

See prerequisites

supported toolset

Common.get(key): works for both static environment key/value pairs (i.e. environment.json), and also CredStash secrets. For static environment key/value pairs, you can specify nested keys in hierarchy via dot notation, i.e. Common.get('this.is.valid') returns "value" for:

{
  "dev": {
    "this": {
      "is": {
        "valid": "value"
      }
    }
  }
}

For CredStash, keys are generally all uppercase with snake case between words, i.e. SOME_SECRET.

Common.get('Logger'): Logging facility which requires 'log' configuration. See example below.

Common.get('PayClient'): Client which can be used for requests to Classy Pay. Requires 'pay' configuration.

Common.get('ApiClient'): Client which can be used for requests to Classy API. Requires 'api' configuration.

Common.get('Replacer'): Obfuscator for use with JSON.stringify replacer. Requires 'security' configuration.

usage

Bootstrap: Common.load(callback)

const Common = require('classy-lambda-common');
Common.load(function(error) {
  if (error) {
    console.error(error);
  } else {
    let logger = Common.get('Logger').create('my-logger');
    logger.info('Hello World');
  }
});

Get static config: Common.get(key)

let value = Common.get('some.key');
console.log(value);

Get CredStash secret: Common.get(key)

let value = Common.get('SOME_SECRET');
console.log(value);

Get Logger: See Bootstrap above

Get PayClient: Common.get(key)

let PayClient = Common.get('PayClient');

// PayClient.request(appId, method, resource, postBody, callback)
PayClient.request(0, 'GET', '/transaction/1', null, function(error, result) {
  if (error) {
    callback(error);
  } else {
    console.log(result);
  }
});

Get ApiClient: Common.get(key)

let ApiClient = Common.get('ApiClient');

// See classy-node for details
ApiClient.app().then(() => {
  ApiClient.organizations.retrieve(1, {
    token: 'app'
  }).then((result) => {
    console.log(result);
  });
});

Get Replacer: Common.get(key)

let Replacer = Common.get('Replacer').replacer;
console.log(JSON.stringify({
  cvv: '123'
}, replacer, 2));

classy-lambda-common's People

Contributors

jingram-classy avatar alecbrick avatar jnngrm avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.