npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ivy-nestjs

v0.6.16

Published

A library of useful building components for NestJS web application

Downloads

529

Readme

Ivy NestJS

npm NPM License npm npm npm

A library of useful building components for NestJS web application.

! In active development. !

Backward compatibility is not guaranteed until v1.0.0

Installation

$ npm install ivy-nestjs

Usage

In ./sample directory of ivy-nestjs package you can find two examples of applications built using this library.

Import modules and classes to build your NestJs TypeScript application.

import { ConfigModule } from 'ivy-nestjs/config';

Modules

Auth

User authentication and authorization logic.

Cache

Caching HTTP interceptor and cache management functionality.

Config

Application global configuration values.

Context

Application request perisistence.

Enums

Enumerable values used accross other modules.

Filters

Exception handling logic.

GraphQL

Bootstraping functionality for GraphQL usage.

Health

Health monitoring functionality and endpoints.

Logger

Application logging implementation.

Mail

Send emails using SMTP or other 3rd party APIs.

Mongoose

Bootstraping logic for Mongoose library usage with MongoDB.

Queue

The queue connection for asynchronous task processing and job execution, also used by Mail module.

Redis

Access and management functionality for the Redis storage, also used in Queue, Mail and Cache modules.

Resource

The main logic for resource management, model definition, and endpoints creation.

Storage

File persistence and access endpoints through various adapter implementations.

Template

The template compilation using multiple templating adapters, also used by Mail module.

Typeorm

Bootstraping logic for Typeorm library usage any SQL relational database.

Utils

Common utility functions and classes used accross other modules.

Environment variables

| Variable name | Description | Default value | |---------------|-----------------------------------------------|---------------| | NODE_ENV | Environment (development, test or production) | production |

Command-line interface

Create resource

Script for creating new resource modules with all of it's required files. There are two types of generated resource based on database library used in project:

  • typeorm - generates models using TypeORM entity
  • mongoose - generates models using Mongoose schema
create-resource.js [type] [name]

create new resource files

Positionals:
  type  the type of database library used in project
                                       [string] [choices: "typeorm", "mongoose"]
  name  the name of new resource in singular e.g. blog-post             [string]

Options:
      --help        Show help                                          [boolean]
      --version     Show version number                                [boolean]
  -d, --outDir      output directory for generated resource files
                                           [string] [default: "./src/resources"]
  -m, --moduleFile  main module file where to add new resource as import
                                       [string] [default: "./src/app.module.ts"]
  -n, --noEndpoint  do not generate REST controller and/or GraphQL resolver
                    classes                           [boolean] [default: false]
  -r, --rest        generate only REST types, models, and a controller class
                                                                       [boolean]
  -g, --graphql     generate only GraphQL types, models, and a resolver class
                                                                       [boolean]
  -u, --uuid        use UUID v4 as a primary key (typeorm resource only)
                                                      [boolean] [default: false]
  -o, --overwrite   overwrite existing resource files [boolean] [default: false]

Documentation

Swagger documentation is available on: http://{APP_HOST}:{APP_PORT}/swagger (if enabled)

GraphQL documentation is available on: http://{APP_HOST}:{APP_PORT}/graphql (if enabled)

License

Ivy-NestJS is MIT licensed.