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

openfaas-node-multiarch

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

openfaas-node-multiarch

Multi-arch OpenFaaS template for NodeJS

  • 1.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
375
increased by82.93%
Maintainers
1
Weekly downloads
 
Created
Source

OpenFaaS-Node-Multiarch

A multi-arch template for running Node and TypeScript applications on OpenFaaS

This package is purely to provide the TypeScript interfaces for use in the functions.

Compatibility with official Node12 template

This template is designed as a drop-in replacement for the official Node12 template in the OpenFaaS store. It should be considered as an improvement to that template, offering the following:

  • TypeScript support
  • Multi-arch builds (can use the same template to build for your AMD64 laptop and ARM on a Raspberry Pi)
  • Simplified function interface

TypeScript Support

Interfaces are published to npm under the openfaas-node-multiarchpackage.

A tsconfig.json file is included for convenience. However, as TypeScript building is handled by the Docker image, this should only be used for local running.

Simplified Interface

In the official Node12 template, you must return context.succeed(response) to send data outwards. Whilst I have no issue with that in itself, it can make testing a little harder than it needs to be. For that reason, any value returned, resolved or rejected from the function is treated as the response.

There are no performance differences as the methods are just syntactic sugar, allowing personal preference to be the differentiator.

These all result in the same output:

// Successful execution
module.exports = (event, context) => {
  context.httpHeaders = {
    'content-type': 'application/json',
  };
  context.httpStatus = 403

  return { hello: 'world' };
};

module.exports = (event, context) => context
  .headers({
    'content-type': 'application/json',
  })
  .status(403)
  .succeed({ hello: 'world' });
// Failed execution
module.exports = () => {
  throw new Error('some error');
};

module.exports = (event, context) => context
  .fail(new Error('some error'));

Examples

JavaScript

This must be set to handler.js

module.exports = (event, context) => {
  const response = {
    status: `Received input js: ${JSON.stringify(event.body)}`,
  };

  return context
    .status(200)
    .succeed(response);
};

TypeScript

This must be set to tsHandler.ts

import { IFunctionContext, IFunctionEvent } from 'openfaas-node-multiarch';

export default (event: IFunctionEvent, context: IFunctionContext) => {
  const response = {
    status: `Received input: ${JSON.stringify(event.body)}`,
  };

  return context
    .status(200)
    .succeed(response);
};

Keywords

FAQs

Package last updated on 15 Mar 2021

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