@whyper/gcloud-functions-request-envelope
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Getting Started

Here you can see the basics of using this package, also we provide some examples in how to use.

Installation

Start by installing the package with NPM:

npm i @whyper/gcloud-functions-request-envelope

Or, for Yarn users:

yarn add @whyper/gcloud-functions-request-envelope

Available Request Functions

Today, we only have the Http Request function available, here it is the method:

const request = httpRequest(youEndpointFunction, [
  HttpRequestMethod.yourMethod,
]);

Example of usage, following the GCloud example for using express and cloud-functions (without declaring any GCloud Functions specific methods)

//...other imports above
import {
  HttpFunction,
  Request,
  Response,
} from "@google-cloud/functions-framework";
import {
  HttpRequestMethod,
  httpRequest,
} from "../../../shared/requests/http.request";

export const userGetFunction: HttpFunction = httpRequest(
  async (req: Request, res: Response) => {
    const user = await findUserById(req.body.id);

    return res.send(user);
  },
  HttpRequestMethod.GET
);

What this package does?

This package is like a middleware, basically we have a try/catch by default (to not crash you serveless application and return a beatiful 5xx or any other error) and we also await your function.

Available Error Classes

404 - Not Found

throw new NotFoundError(message: string)

400 - Bad Request

throw new BadRequestError(message: string, issues?: any)

Custom Default Error

throw new HttpError(message: string, code?: number = 500, issues?: any)

Creating a custom Error

To create a custom error you can extend from the HttpError class, here is the example, following the NotFoundError implementation:

import { HttpError } from "@whyper/gcloud-functions-request-envelope";

export class NotFoundError extends HttpError {
  constructor(message: string = "Not Found") {
    super(message, 404);
    // Set the prototype explicitly.
    Object.setPrototypeOf(this, NotFoundError.prototype);
  }
}

Contributors

Issues

You can open any issue that you like, but please, be very specific in the description

Package Sidebar

Install

npm i @whyper/gcloud-functions-request-envelope

Weekly Downloads

2

Version

1.0.3

License

MIT

Unpacked Size

19 kB

Total Files

8

Last publish

Collaborators

  • mateustozoni