🚀 Big News:Socket Has Acquired Secure Annex.Learn More →
Socket
Book a DemoSign in
Socket

@aexol/syncano-middleware

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aexol/syncano-middleware

Syncano middleware helper

latest
Source
npmnpm
Version
0.1.8
Version published
Maintainers
1
Created
Source

Syncano middleware

About

Simple library easing writing of reusable middlewares for socket.

Installation

$ npm install @aexol/syncano-middleware

Usage

socket.yml

name: example
description: Description of example
version: 0.0.1
runtime: nodejs_v8
endpoints:
  file: example.js
  response:
    success:
      mimetype: application/json
      exit_code: 200

src/example.js

import serve, {response} from '@aexol/syncano-middleware';

async function run(ctx, syncano) {
    return response.success({message: 'Hello world!'})
}

export default ctx => serve(ctx, run)

Writing new middleware

socket.yml

name: example
description: Description of example
version: 0.0.1
runtime: nodejs_v8
endpoints:
  file: example.js
  response:
    success:
      mimetype: application/json
      exit_code: 200
    forbidden:
      mimetype: application/json
      exit_code: 403

src/utils.js

import {response} from '@aexol/syncano-middleware';

export function loggedIn(fn) {
    return async (ctx, syncano) => {
        if(!ctx.meta.user) {
            return response.forbidden({message: 'You must be logged in to perform this action.'})
        }
        return fn(ctx, syncano)
    }
}

src/example.js

import serve, {response} from '@aexol/syncano-middleware';
import {loggedIn} from './utils'

async function run(ctx, syncano) {
    return response.success({message: 'Hello world!'})
}

export default ctx => serve(ctx, loggedIn(run))

cleanExit middleware

This library comes with built-in cleanExit middleware which handles exceptions raised by the socket script.

Example

socket.yml

name: example
description: Description of example
version: 0.0.1
runtime: nodejs_v8
endpoints:
  file: example.js
  response:
    success:
      mimetype: application/json
      exit_code: 200
    serverError:
      mimetype: application/json
      exit_code: 500

src/example.js

import serve, {response, cleanExit} from '@aexol/syncano-middleware';

async function run(ctx, syncano) {
    return response.success({message: 'Hello world!'})
}

export default ctx => serve(ctx, cleanExit(run))

FAQs

Package last updated on 13 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