# @praisegeek/serverless-utils

> Helper utils and packages when working with serverless lambda

Latest version **1.0.6-0** (published 2020-09-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install @praisegeek/serverless-utils
pnpm add @praisegeek/serverless-utils
yarn add @praisegeek/serverless-utils
bun add @praisegeek/serverless-utils
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.6-0 |
| Published | 2020-09-15 |
| First published | 2020-09-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 39.2 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Praise Emerenini |
| Maintainers | praisegeek |
| Keywords | serverless, dynamodb, lambda |

## Links

- npm: https://www.npmjs.com/package/@praisegeek/serverless-utils
- Repository: https://github.com/praisegeek/serverless-utils
- Homepage: https://github.com/praisegeek/serverless-utils#readme
- Issues: https://github.com/praisegeek/serverless-utils/issues
- npm.io page: https://npm.io/package/@praisegeek/serverless-utils

## Dependencies (4)

- [aws-sdk](https://npm.io/package/aws-sdk.md) ^2.752.0
- [@types/yup](https://npm.io/package/@types/yup.md) ^0.29.6
- [lambda-hooks](https://npm.io/package/lambda-hooks.md) ^0.2.0
- [camelcase-keys](https://npm.io/package/camelcase-keys.md) ^6.2.2

## Recent versions

- 1.0.6-0 (latest) — 2020-09-15
- 1.0.5-0 — 2020-09-15
- 1.0.4 — 2020-09-15
- 1.0.3 — 2020-09-13
- 1.0.2 — 2020-09-11
- 1.0.1 — 2020-09-10
- 1.0.0 — 2020-09-10

## README

# Serverless Utils

![GitHub package.json version](https://img.shields.io/github/package-json/v/praisegeek/serverless-utils) ![GitHub top language](https://img.shields.io/github/languages/top/praisegeek/serverless-utils) ![GitHub last commit](https://img.shields.io/github/last-commit/praisegeek/serverless-utils)

A collection of helper utilities when working on AWS Serverless lambda.

Install

```bash
npm i @praisegeek/serverless-utils
```

## Helpers

- Dynamodb
- API Validation Hooks
- Responses

### Dynamodb

**Dynamodb local listens on port 8000**

Example usage

```js
import { dynamodb as db } from '@praisegeek/serverless-utils';

// Async-Await
async () => {
  const user = await db.get('user-table', 1);

  console.log(user);
  // { id: 1, name: Praise }
};

// Promise
db.get('user-table', 1)
  .then((user) => {
    console.log(user);
    // { id: 1, name: Praise }
  })
  .catch((err) => {
    console.log(err);
  });
```

**All Methods**

- get
- put
- update
- delete
- query
- scan
- batchGet
- batchWrite

**Pagination**

Query and Scan returns a nextToken string which is used to get more or previous items

```js
import { dynamodb as db } from '@praisegeek/serverless-utils';

async () => {
  const admins = await db.query('user-table', {
    IndexName: 'roles',
    KeyConditionExpression: 'roles = :roles',
    ExpressionAttributeValues: {
      ':roles': 'admins',
    },
    NextToken: 'a163c127-7440-4836-85a0-f3b6ef2b51b1',
  });

  console.log(admins);
  // { count: 5, nextToken: 'f7e089d8-bc53-4b01-9e71-92fc9bc60fca', items: [ {id: 1, name: 'Praise' }, ... ] }
};
```

## Milestone

- [x] DynamoDB Helpers
- [x] Request Validations
- [x] Response Headers
- [x] Typescript Support
- [ ] Cognito Authentication ( Email/Password, Social Auth, OpenID )
- [ ] Uploaders
- [ ] Stripe Helpers

---
_Source: https://npm.io/package/@praisegeek/serverless-utils · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
