Skip to main content

24 posts tagged with "patch"

View All Tags

v0.11.2

路 2 min read

@InjectAssemblerQueryService#

In v0.11.1 a new @InjectAssemblerQueryService decorator has been introduced to reduce boiler plate code related to creating an AssemblerQueryService.

Example#

Define your assembler

todo-item.assembler.ts
import { Assembler, ClassTransformerAssembler } from '@nestjs-query/core';import { TodoItemDTO } from './todo-item.dto';import { TodoItemEntity } from './todo-item.entity';
@Assembler(TodoItemDTO, TodoItemEntity)export class TodoItemAssembler extends ClassTransformerAssembler<TodoItemDTO, TodoItemEntity> {  convertToDTO(entity: TodoItemEntity): TodoItemDTO {    const dto = super.convertToDTO(entity);    dto.age = Date.now() - entity.created.getMilliseconds();    return dto;  }}

Now, instead of defining an AssemblerQueryService you can use the decorator.

todo-item.resolver.ts
import { QueryService, InjectAssemblerQueryService } from '@nestjs-query/core';import { CRUDResolver } from '@nestjs-query/query-graphql';import { Resolver } from '@nestjs/graphql';import { TodoItemDTO } from './dto/todo-item.dto';
@Resolver(() => TodoItemDTO)export class TodoItemResolver extends CRUDResolver(TodoItemDTO) {  constructor(@InjectAssemblerQueryService(TodoItemAssembler) readonly service: QueryService<TodoItemDTO>) {    super(service);  }}

Using Assemblers in auto-generated Resolver#

There is a new AssemblerClass option when using the NestjsQueryGraphQLModule to generate your resolver to using a custom Assembler.

note

When using the AssemblerClass option you don't need to specify the entity.

todo-item.module.ts
import { NestjsQueryGraphQLModule } from '@nestjs-query/query-graphql';import { NestjsQueryTypeOrmModule } from '@nestjs-query/query-typeorm';import { Module } from '@nestjs/common';import { TodoItemDTO } from './dto/todo-item.dto';import { TodoItemEntity } from './todo-item.entity';import { TodoItemAssembler } from './todo-item.assembler';
@Module({  imports: [    NestjsQueryGraphQLModule.forFeature({      imports: [NestjsQueryTypeOrmModule.forFeature([TodoItemEntity])],      // Register the assembler      assemblers: [TodoItemAssembler],      resolvers: [        {          DTOClass: TodoItemDTO,          // specify the assembler type to use.          AssemblerClass: TodoItemAssembler,        },      ],    }),  ],})export class TodoItemModule {}

Using Services in auto-generated Resolver#

There is a new ServiceClass option when using the NestjsQueryGraphQLModule to generate your resolver to a custom QueryService.

note

When using the ServiceClass option you don't need to specify the entity.

todo-item.module.ts
import { NestjsQueryGraphQLModule } from '@nestjs-query/query-graphql';import { NestjsQueryTypeOrmModule } from '@nestjs-query/query-typeorm';import { Module } from '@nestjs/common';import { TodoItemDTO } from './dto/todo-item.dto';import { TodoItemEntity } from './todo-item.entity';import { TodoItemService } from './todo-item.service';
@Module({  imports: [    NestjsQueryGraphQLModule.forFeature({      imports: [NestjsQueryTypeOrmModule.forFeature([TodoItemEntity])],      // Register the the custom QueryService      services: [TodoItemService],      resolvers: [        {          DTOClass: TodoItemDTO,          // specify the QueryService type to use.          ServiceClass: TodoItemService,        },      ],    }),  ],})export class TodoItemModule {}

v0.8.6

路 One min read
  • chore(renovate): Renovate to include examples
  • chore(renovate): Renovate set ignorePaths to empty
  • fix(deps): pin dependencies
  • chore(deps): Update package-lock.json
  • chore(deps): Update postgres backing app to 11.7
  • docs(): Update Federation Docs
  • chore(lerna): add hoist to lerna.json
  • chore(deps): update dependency @nestjs/graphql to v7.3.4
  • chore(deps): update dependency @types/node to v13.13.2
  • chore(renovate): Update to automerge devDeps
  • chore(deps): update dependency coveralls to v3.0.13
  • chore(deps): update dependency eslint-config-prettier to v6.11.0

v0.7.3

路 One min read
  • [DOCS] Update docs to include a complete example of custom methods #64
  • [FIXED] Issue where creating or updating allows specifying primary keys #65

v0.5.1

路 One min read
  • [DOCS] Added clarification around individual resolvers and relations with examples #42
  • [ADDED] Exposed Relatable mixin from @nestjs-query/graphql #42

v0.3.1

路 One min read
  • Hardened TypeORM querying
    • Added filter for entity ids on relations to prevent querying for too many rows.
    • Qualify all filter and sorting columns, to prevent column name collisions.