Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@layerhq/idk

Package Overview
Dependencies
Maintainers
13
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@layerhq/idk

Layer Integration Development Kit common library

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
13
Created
Source

Layer IDK

npm version Build Status

This is a Node.js library that is designed to be used with Layer Integration Development Kit (IDK).

It provides common functionality for validating & processing Layer Webhooks and access to common Layer Server API operations.

Initialization

To use this library you need to pass configuration object into the constructor. Configuration object should be a layer_config.json file which is a part of Layer Integration Development Kit.

const LayerIDK = require('@layerhq/idk')
const config = require('./layer_config.json')

const layerIDK = new LayerIDK(config)

Configuration file is generated buy a Layer Integrations command line tool. At a minimum config JSON has the following format:

{
  "app_id": "layer:///apps/staging/ffffffff-ffff-ffff-ffff-ffffffffffff",
  "webhook": {
    "secret": "supersecret",
    "events": ["Message.created"]
  },
  "api": {
    "token": "abcdefg"
  }
}

Webhook

Every integration is powered by a Layer Webhook which is registered to listen for a set of events in an application.

.webhook(headers, body)

Validate and process a webhook by passing in HTTP headers object and POST request body. This is a synchronous function which will return webhook payload or throw an error that needs to be captured and handled.

Arguments
  • headers - Webhook HTTP headers
  • body - Webhook HTTP request body as a JSON string
Example
try {
  const webhook = layerIDK.webhook(headers, body)
  // webhook payload
} catch (err) {
  console.error(err)
}

Logger

We provide a logger interface to unify log severity levels, abstract some of the Cloud Provider specific functionality and enable optional monitoring capabilities.

.logger(context)

Get logger interface by passing in the cloud function context object.

Arguments
  • context - Cloud function context object (AWS or Azure)
Example
const log = layerIDK.logger(context)

log.info('Hello world', { foo: 'bar' })
log.error('Error', new Error('Oops'))

Available levels: debug, info, warn, error, none. Every level accepts the following function parameters: (message, object)

You can set log level by setting LOG_LEVEL=error env variable.

Monitoring

Logger has a built in monitoring capabilities. Read about monitoring here.

API

Access common Layer Server API operations via .api namespace. Read API documentation here.

Utils

These are the utility functions exposed statically via LayerIDK class. Read documentation here.

AWS Example

The following example shows how to use Amazon AWS API Gateway inside your Serverless handler.

const LayerIDK = require('@layerhq/idk')
const config = require('./layer_config.json')

const layerIDK = new LayerIDK(config)

exports.webhook = (event, context, callback) => {
  const log = layerIDK.logger(contex)

  try {
    const webhook = layerIDK.webhook(event.headers, event.body)
    // webhook payload

    log.info('Webhook:', webhook)
    callback(null, { statusCode: 200 })
  } catch (err) {
    log.error('Webhook:', err)
    callback(err)
  }
}

FAQs

Package last updated on 09 Apr 2018

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc