How to use the class-transformer.Type function in class-transformer

To help you get started, we’ve selected a few class-transformer examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github rucken / core / libs / rucken / core / src / lib / models / group.ts View on Github external
createTitle: translate('Add new group'),
    viewTitle: translate('Group #{{id}}'),
    updateTitle: translate('Update group #{{id}}'),
    deleteTitle: translate('Delete group #{{id}}'),
    deleteMessage: translate('Do you really want to delete group?'),
    selectTitle: translate('Select group')
  };
  // need for deep update if local change in any place
  static nested = {
    permissions: Permission
  };
  id: number = undefined;
  @IsNotEmpty()
  name: string = undefined;
  title: string = undefined;
  @Type(serializeModel(Permission))
  permissions: Permission[] = [];
  get permissionsAsString() {
    if (this.permissions) {
      const permissionsLength = this.permissions.length;
      if (permissionsLength > 14) {
        return (
          this.permissions.filter((item, index) => index < 7).join(', ') +
          (permissionsLength > 7 ? `... +${permissionsLength - 7}` : '')
        );
      }
      return this.permissions.join(', ');
    } else {
      return '';
    }
  }
  toString() {
github rucken / todo-nestjs / frontend / libs / todo / core / src / lib / entities / models / task.ts View on Github external
description: translate('Description'),
    status: translate('Status'),
    openAt: translate('Open at'),
    closeAt: translate('Close at'),
    createdAt: translate('Created at'),
    updatedAt: translate('Updated at'),
    range: translate('Range'),
    createTitle: translate('Add new task'),
    viewTitle: translate('Task #{{id}}'),
    updateTitle: translate('Update task #{{id}}'),
    deleteTitle: translate('Delete task #{{id}}'),
    deleteMessage: translate('Do you really want to delete task?')
  };
  id: number = undefined;
  @IsNotEmpty()
  @Type(serializeModel(Project))
  @Transform(transformStringToObject, { toPlainOnly: true })
  project: Project = undefined;
  @IsNotEmpty()
  title: string = undefined;
  description: string = undefined;
  @IsNotEmpty()
  @Type(serializeModel(Status))
  @Transform(transformStringToObject, { toPlainOnly: true })
  status: Status = undefined;
  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  openAt: Date = undefined;
  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  closeAt: Date = undefined;
  @Transform(transformStringToDate, { toClassOnly: true })
github EndyKaufman / ngx-dynamic-form-builder / apps / demo / src / app / shared / models / department.ts View on Github external
export class Department {
  static strings = {
    id: 'Id',
    name: 'Name',
    company: 'Company'
  };

  id: number;

  @IsNotEmpty()
  name: string;

  @ValidateNested()
  @IsOptional()
  @Type(serializeModel(Company))
  company: Company;

  toString() {
    return this.name;
  }

  constructor(data?: any) {
    plainToClassFromExist(this, data);
  }
}
github EndyKaufman / ngx-dynamic-form-builder / apps / demo / src / app / shared / models / project.ts View on Github external
groups: [ProjectPanelStepsEnum.Step1]
  })
  name?: string = undefined;

  @IsNotEmpty({ always: true })
  description?: string = undefined;

  @ValidateNested({
    groups: [ProjectPanelStepsEnum.Step2]
  })
  @Validate(ObjectMustBeNotEmpty, [1, 3], {
    groups: [ProjectPanelStepsEnum.Step2],
    message: 'Tasks not initialized or min length = 1 and max length = 3, and all initialized tasks must be not empty'
  })
  @IsOptional()
  @Type(serializeModel(Task))
  tasks?: Task[] = [];

  toString() {
    return `Project #${this.id} ${this.name}`;
  }
}
github rucken / core / libs / rucken / core / src / lib / entities / models / user.ts View on Github external
firstName: string = undefined;
  lastName: string = undefined;
  @IsNotEmpty()
  @IsEmail(undefined)
  email: string = undefined;
  isSuperuser = false;
  isStaff = false;
  isActive = false;
  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  lastLogin: Date = undefined;
  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  dateJoined: Date = undefined;
  @IsOptional()
  @Type(serializeModel(Group))
  groups: Group[] = [];
  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  dateOfBirth: Date = undefined;
  get permissionNames() {
    const permissions = [];
    if (this.groups) {
      this.groups.forEach(group => group.permissions.forEach(permission => permissions.push(permission.name)));
    }
    return permissions;
  }
  toString() {
    return `${this.firstName} ${this.lastName} (${this.username})`.trim();
  }
  get fullName() {
    return `${this.firstName} ${this.lastName}`.trim();
github rucken / core / libs / rucken / core / src / lib / modules / auth / dto / user-token.dto.ts View on Github external
import { Type } from 'class-transformer';
import { User } from '../../../models/user';
import { serializeModel } from '../../../utils/custom-transforms';

export class UserTokenDto {
  token: string;
  @Type(serializeModel(User))
  user: User;
}
github EndyKaufman / ngx-dynamic-form-builder / apps / demo / src / app / shared / models / user.ts View on Github external
id: number;

  @IsNotEmpty()
  username: string;
  password: string;

  @IsEmail()
  @IsNotEmpty()
  email: string;
  isSuperuser: boolean;
  isStaff: boolean;

  @ValidateNested()
  @IsOptional()
  @Type(serializeModel(Department))
  department: Department = new Department();

  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  dateOfBirth: string;

  toString() {
    return this.username;
  }

  constructor(data?: any) {
    plainToClassFromExist(this, data);
  }
}
github rucken / core / libs / rucken / core / src / lib / modules / account / dto / user.dto.ts View on Github external
import { Type } from 'class-transformer';
import { User } from '../../../models/user';
import { serializeModel } from '../../../utils/custom-transforms';

export class UserDto {
  @Type(serializeModel(User))
  user: User;
}
github iWinston / typeorm-plus / extra / typeorm-class-transformer-shim.js View on Github external
return function(object, propertyName) {
    if (!(typeFunction instanceof Function)) {
      typeFunction = getDesignTypeFunction(object, propertyName);
    } 
    if (typeFunction) {
      class_transformer_1.Type(typeFunction)(object, propertyName);
    }
  };
}
github nestjsx / crud / packages / crud / src / crud / serialize.helper.ts View on Github external
static createGetManyDto(dto: any, resourceName: string): any {
    class GetManyResponseDto implements GetManyDefaultResponse {
      @ApiProperty({ type: dto, isArray: true })
      @Type(() => dto)
      data: any[];

      @ApiProperty({ type: 'number' })
      count: number;

      @ApiProperty({ type: 'number' })
      total: number;

      @ApiProperty({ type: 'number' })
      page: number;

      @ApiProperty({ type: 'number' })
      pageCount: number;
    }

    Object.defineProperty(GetManyResponseDto, 'name', {