🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

express-asyncmw

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-asyncmw

Async handler for express.js

latest
Source
npmnpm
Version
0.2.5
Version published
Maintainers
1
Created
Source

express-asyncmw

Async handler for express.js

How to Use

  • Import the library in your code

JavaScript

const { asyncMw, errorAsyncMw } = require('express-asyncmw');

TypeScript

import { asyncMw, errorAsyncMw } from 'express-asyncmw';
  • Use the imported functions

JavaScript

const { asyncMw, errorAsyncMw } = require('express-asyncmw');

// asyncMw for express middleware handling without any error
const getUserMw = asyncMw(async (req, res, next) => {
  // Do your things
  // ...
});

// errorAsyncMw for express middleware handling with an error
const getUserMw = errorAsyncMw(async (err, req, res, next) => {
  // Do your things
  // ...
});

TypeScript

import { asyncMw, errorAsyncMw } from 'express-asyncmw';

// asyncMw for express middleware handling without any error
const getUserMw = asyncMw(async (req, res, next) => {
  // Do your things
  // ...
});

// errorAsyncMw for express middleware handling with an error
const getUserMw = errorAsyncMw(async (err, req, res, next) => {
  // Do your things
  // ...
});

Using Additional Types

In case if you want to some sort of intellisense things for you types. Consider setting it up this way.

  • Import all the necessary things
import { asyncMw, AsyncParam } from 'express-asyncmw';

export const getUserMw = asyncMw(async (req, res, next) => {
  // Do your things
  // ...
});
  • Create the new additional types
type User = {
  id: number;
  username: string;
  email: string;
  createdAt: string;
};
  • Implement new types to asyncMw
import { asyncMw, AsyncParam } from 'express-asyncmw';

type User = {
  id: number;
  username: string;
  email: string;
  createdAt: string;
};

export const getUserMw = asyncMw<{ extends: { user: User } }>(async (req, res, next) => {
  // Will gave an error since we already specified the types
  req.user.id = 'id'; // Type 'string' is not assignable to type 'number'.ts(2322)
  // `req.user` => User
});
  • Adding lot of types to request and response object
import { asyncMw } from 'express-asyncmw';

type User = {
  id: number;
  username: string;
  email: string;
  createdAt: string;
};

type GetUserMwParam = {
  params: {
    id: string;
  };
  resBody: {
    status: number;
  };
  reqBody: {
    username: string;
  };
  reqQuery: {
    createdAt: string;
  };
  extends: {
    user: User;
  };
};

asyncMw<GetUserMwParam>((req, res, next) => {
  if (!req.params.id) return; // Params :id now exists in the types
  req.user.id = 'id'; // Type 'string' is not assignable to type 'number'.ts(2322)
  req.user.username = req.body.username; // Works since it has the same times which is a `string`
  res.json({
    status: '200', // Type 'string' is not assignable to type 'number'.ts(2322)
  });
});

FAQs

Package last updated on 06 Mar 2023

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