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

@pbuilder/nestjs

v0.0.13

Published

A blank schematics

Downloads

460

Readme

Schematics for NestJS

Overview

This project provides a powerful schematic set designed to all the most powerful tool for schematics.

Problem to solve

The problem this schematic solves is automating resource creation while reducing repetitive boilerplate and ensuring consistency. By simply defining the desired resource structure in a file, the schematic handles the generation process for you.

Getting started

npm i -g @pbuilder/cli
builder add @pbuilder/nestjs

New Resource

The purpose of this schematics is to generate a whole resource based on an existing file. That means you need to create to create a file and configure it.

Then the schematic will read all the files with the same type and generate the resource.

For this version we are using the next stack:

  • Mongo with mongoose.
  • Graphql with apollo federation.

Let's start!

Install dependencies

If your project doesn't have all the dependencies needed to run this stack please run:

builder g @pbuilder/nestjs install-dependencies

or

builder g @pbuilder/nestjs i

Create the schema file

builder g @pbuilder/nestjs schema

examples of a mongoose schema:

import * as mongoose from 'mongoose';

export const CustomerSchema = new mongoose.Schema({}, { versionKey: false });

CustomerSchema.add({
  customerId: { type: Number, required: true, unique: true },
  name: { type: String, required: true },
  email: { type: String, required: true, unique: true },
  phone: { type: String, required: false },
  address: { type: String, required: false },
  isActive: { type: Boolean, required: true, default: true },
});

CustomerSchema.index({ email: 1 }, { unique: true });
/* eslint-disable prettier/prettier */
import * as mongoose from 'mongoose';
import { CalibratedSchema } from './calibrared.schema';

export const ProductSchema = new mongoose.Schema({}, { versionKey: false });

ProductSchema.add({
  calibrated: { type: CalibratedSchema, required: false },
  UPC: [
    {
      type: String,
      required: false,
    },
  ],

  status: {
    type: String,
    required: true,
  },
  imageUrl: { type: String, required: false },
  size: { type: String, required: true },
  closureType: { type: String, required: true },
  containerType: { type: String, required: true },
  brand: { type: String, required: true },
  liquidName: { type: String, required: true },
  unitsPerCase: { type: Number, required: true },
  itemNumber: { type: Number, required: true },
  category: {
    type: String,
    required: true,
  },
});

ProductSchema.index({ itemNumber: 1 }, { unique: true });

Generate the resource

With your file totally configure go to generate the resource

builder g @pbuilder/nestjs cgm

Architecture under the hood

When we want to extends the ability to generate a resource based on a file it's important to understand how to do it.