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

@drdgvhbh/nestjs-admin

v0.4.0-1

Published

![NestJS Admin](./docs/assets/nestjs-admin-logo.png)

Downloads

2

Readme

NestJS Admin


Description

Ready-to-use user interface for administrative activities. Allows to list, edit, create, delete entities.

This is heavily, heavily inspired by Django admin, from the concept to the API.

This is still very much a work in progress. Your help is more than welcome!

Full docs: https://nestjs-admin.com/

| | | :-------------------------:|:-------------------------: | All your entities in one place. | Create, update and delete entities with ease.

Installation

Let's get you started with a minimal setup.

  1. Add nestjs-admin to your dependencies:
yarn add nestjs-admin # With yarn
npm install nestjs-admin # With NPM
  1. Then add the provided DefaultAdminModule to your app modules:
// src/app.module.ts
import { Module } from '@nestjs/common'
import { DefaultAdminModule } from 'nestjs-admin'

@Module({
  imports: [TypeOrmModule.forRoot(), /* ... */, DefaultAdminModule],
  /* ... */,
})
export class AppModule {
  /* ... */
}
  1. Add the provided AdminUser to your orm config:

The DefaultAdminModule exposes an AdminUser entity, which has credentials that allow you to login to the admin interface.

There's no easy option to use your own user entity for now. If you have this requirement, open an issue so that we can help you.

// If you use an ormconfig.js
const AdminUser = require('nestjs-admin').AdminUserEntity
module.exports = {
  /* ... */,
  entities: [/* ... */, AdminUser],
  // Alternatively:
  // entities: [/* ... */, 'node_modules/nestjs-admin/**/*.entity.js'],
}
# If you use environment variables
TYPEORM_ENTITIES=your_existing_paths,node_modules/nestjs-admin/**/*.entity.js
  1. Create a first AdminUser to log in with
# Create the AdminUser schema in database
npx ts-node node_modules/.bin/typeorm migration:generate -n "create-admin-user"
npx ts-node node_modules/.bin/typeorm migration:run

# Now you can create an AdminUser through the CLI
npx nestjs-admin createAdminUser

You can create AdminUsers from the nestjs-admin createAdminUser CLI, or directly from the administration interface!

You can now login to access the admin interface at /admin/login!

  1. Register entities in the admin site
// user.module.ts
import { TypeOrmModule } from '@nestjs/typeorm'
import { Module } from '@nestjs/common'
import { DefaultAdminModule, DefaultAdminSite } from 'nestjs-admin'
import { User } from './user.entity'

@Module({
  imports: [TypeOrmModule.forFeature([User]), DefaultAdminModule],
  exports: [TypeOrmModule],
})
export class UserModule {
  constructor(private readonly adminSite: DefaultAdminSite) {
    // Register the User entity under the "User" section
    adminSite.register('User', User)
  }
}

Check the rest of the docs for more details.

Compatibility

| Library | Version | | ------------------------ | ------- | | @nestjs/common | ^6.0.0 | | @nestjs/core | ^6.0.0 | | @nestjs/platform-express | ^6.0.0 | | @nestjs/typeorm | ^6.0.0 | | typeorm | ^0.2.12 |

Contributing

Any contribution is welcome. If you want to implement a feature, you need to know that we are following django-admin's API as closely as possible. Why?

  • It's been well-thought-out by smart people
  • Python translates well to Typescript
  • It allows us to not have to think about what the API should look like and just use Django admin as a list of desirable features

Start the example app

This repo contains an example of how to use nestjs-admin. Here's how to use it:

# In a first terminal, run the database
cp .env.example .env
docker-compose up

# In a second terminal, compile the library
yarn install
yarn link
yarn start:dev

# In a third terminal, run the example app
cd exampleApp/
yarn install
yarn link nestjs-admin
yarn migration:run
yarn start:debug

You can now create an AdminUser (yarn nestjs-admin createAdminUser) to be able to login to localhost:8000/admin.

The code for the actual library is in libs/nestjs-admin.

Tooling

If you use VSCode, a .vscode/ is committed that contains a good configuration to contribute. In particular, it contains a config for a ready-to-use debugger.

ADRs

You'll find ADRs in docs/adr