nest-autocrud/README.md
Supan Adit Pratama 0f558f9a4c chore: readme
2024-11-10 11:46:06 +07:00

3.6 KiB

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

Status

This project is still in development and not ready for production, it's not even ready to install yet. Calling for contributors to help this project.

Description

Nest Auto CRUD is a library that provides a set of modules, decorator, service, and many more to reduce the boilerplate code.

Roadmap

Basic Thing

  • Custom body mapping
  • Custom validation

Advanced Support

  • Generic support for Prisma ORM #5273

Installation

$ npm install @aditama-labs/nest-autocrud

Example

Prisma ORM

// Your Module
@Module({
  imports: [
    // This module will automatically map your model to the controller
    PrismaModule.forRoot({
      delegate: (prisma: PrismaClient) => prisma.user,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

// Your Controller
@Controller('examples')
export class AppController extends SkeletonCRUDController {
  // Yes, no need to write anything here
}

TypeORM

// Your Entity
@Entity('account')
export class UserEntity {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({ type: String })
  username: string;

  @Column({ type: String })
  name: string;
}

// Your Module
@Module({
  // This module will automatically map your model to the controller
  imports: [
    TypeORMModule.forRoot<UserEntity>({
      entity: UserEntity,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

// Your Controller
@Controller('examples')
export class AppController extends SkeletonCRUDController {
  // Yes, no need to write anything here
}

Output in Terminal

// Expected Output ( As you can see the API is automatically mapped and generated )
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [NestFactory] Starting Nest application...
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [InstanceLoader] PrismaModule dependencies initialized +14ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [InstanceLoader] AppModule dependencies initialized +0ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RoutesResolver] AppController {/examples}: +3ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples, POST} route +3ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples/:id, DELETE} route +1ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples/list, GET} route +0ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples, GET} route +1ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples/:id, GET} route +0ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [RouterExplorer] Mapped {/examples/:id, PATCH} route +0ms
[Nest] 125875  - 10/30/2024, 10:57:56 PM     LOG [NestApplication] Nest application successfully started +148ms

Support

Nest AutoCRUD is an MIT-licensed open source project.

Stay in touch

License

Nest AutoCRUD is MIT licensed