# validateroutemslib

> * [Installation](#installation) * [Usage](#usage) * [Import Module](#import-module) * [Create Roles Decorator](#create-roles-decorator) * [Example Controller](#example-controller)

Latest version **1.0.38** (published 2023-02-15) · ISC license · 0 weekly downloads

## Install

```sh
npm install validateroutemslib
pnpm add validateroutemslib
yarn add validateroutemslib
bun add validateroutemslib
```

## 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.38 |
| Published | 2023-02-15 |
| First published | 2022-12-15 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 13 |
| Unpacked size | 104.6 KB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| Maintainers | gustavocgb, lucaslitra1 |

## Links

- npm: https://www.npmjs.com/package/validateroutemslib
- npm.io page: https://npm.io/package/validateroutemslib

## Dependencies (13)

- [rxjs](https://npm.io/package/rxjs.md) ^7.6.0
- [axios](https://npm.io/package/axios.md) ^1.3.2
- [dotenv](https://npm.io/package/dotenv.md) ^16.0.3
- [rimraf](https://npm.io/package/rimraf.md) ^3.0.2
- [ts-jest](https://npm.io/package/ts-jest.md) ^29.0.5
- [cross-env](https://npm.io/package/cross-env.md) ^7.0.2
- [@nestjs/jwt](https://npm.io/package/@nestjs/jwt.md) ^9.0.0
- [@nestjs/core](https://npm.io/package/@nestjs/core.md) ^9.2.1
- [@nestjs/axios](https://npm.io/package/@nestjs/axios.md) ^2.0.0
- [@nestjs/common](https://npm.io/package/@nestjs/common.md) ^9.2.1
- [@nestjs/config](https://npm.io/package/@nestjs/config.md) ^2.2.0
- [reflect-metadata](https://npm.io/package/reflect-metadata.md) ^0.1.13
- [@nestjs/platform-express](https://npm.io/package/@nestjs/platform-express.md) ^9.2.1

## Recent versions

- 1.0.38 (latest) — 2023-02-15
- 1.0.37 — 2023-02-15
- 1.0.36 — 2023-02-15
- 1.0.35 — 2023-02-07
- 1.0.34 — 2023-02-06
- 1.0.33 — 2023-02-06
- 1.0.32 — 2023-02-03
- 1.0.31 — 2023-02-03
- 1.0.30 — 2023-02-03
- 1.0.29 — 2023-02-03
- 1.0.28 — 2023-02-02
- 1.0.27 — 2023-02-02
- 1.0.26 — 2023-02-01
- 1.0.25 — 2023-02-01
- 1.0.24 — 2023-02-01
- … 24 more at https://npm.io/package/validateroutemslib/versions

## README

# validate route micro service library (validateroutemslib)

* [Installation](#installation)
* [Usage](#usage)
    * [Import Module](#import-module)
    * [Create Roles Decorator](#create-roles-decorator)
    * [Example Controller](#example-controller)

## Installation

This is a [Node.js](https://nodejs.org/en/) module available through the
[npm registry](https://www.npmjs.com/). Installation is done using the
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):

```sh
$ npm install validateroutemslib
```

## Usage

### import-module
Import library Module, with 'url' in initialize, and Guards your module project. 

```typescript
import { Global, Module } from '@nestjs/common';
import { ValidateService } from 'application/use-cases/validate/validate.service';
import { ValidateRouteMsLibModule, EvaAuthGuard, EvaRoleGuard } from 'validateroutemslib';
import { APP_GUARD } from '@nestjs/core';
import * as dotenv from 'dotenv';
dotenv.config();

@Module({
  imports: [ValidateRouteMsLibModule.initialize('url')],
  providers: [
    {
      provide: APP_GUARD,
      useClass: EvaAuthGuard,
    },
    {
      provide: APP_GUARD,
      useClass: EvaRoleGuard,
    },
  ]
})
export class ValidateModule {}
```

## Create decorator

### create-roles-decorator
Create file with decorator.

```typescript
roles.decorator

import { SetMetadata } from '@nestjs/common';

export const Roles = (...roles: string[]) => SetMetadata('roles', roles);
```


## Example

### example-controller
Import '@UseGuards()' guards decorator to validate token. If you want includes privileges add @Roles('ROLES')

```typescript
import { UseGuards, Get, Param } from '@nestjs/common';
import { Roles } from '@/shared/decorators/roles/roles.decorator';
import { User } from '@shared/decorators/user/user.decorator';
import { EvaRole } from 'validateroutemslib';

@Get(':postId')
@Roles(EvaRole.Super) // optional
@UseGuards()
async getPostById(
    @User() user,
    @Param('postId') postId: number,
): Promise<any> {
  return this.postService.getPostById(user, postId);
}
```

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