Giter Club home page Giter Club logo

Comments (6)

RobinCK avatar RobinCK commented on June 6, 2024

thanks. added to Roadmap

from typeorm-fixtures.

RobinCK avatar RobinCK commented on June 6, 2024

fixed in 1.9.0 version

from typeorm-fixtures.

aleksandryackovlev avatar aleksandryackovlev commented on June 6, 2024

This fix breaks the behavior that I use in my code.

I've got user.entity with the Exclude decorator for passwords:

@Entity()
export class User {
  @Column({
    type: 'varchar',
    length: 150,
    update: false,
    unique: true,
  })
  username: string;

  @Exclude()
  @Column()
  password: string;

  @BeforeInsert()
  async hashPassword() {
    this.password = await bcrypt.hash(this.password, 10);
  }
}

And my fixture looks like this:

entity: User
parameters: {}
items:
  user1:
    username: '{{internet.userName}}'
    password: 'test'
    __call:
      hashPassword:
  user2:
    username: '{{internet.userName}}'
    password: 'test'
    __call:
      hashPassword:

Before the fix everything worked just fine. But now this.passwordis undefinded inside the hashPassword, and it causes an error during the creation of fixtures.

Considering the fact that decorators are not ignored anymore, I removed the __call params from my fixtures, but it doesn't work either.

@RobinCK Isn't it going to be a better solution to allow users to ignore decorators by some command-line option?

from typeorm-fixtures.

RobinCK avatar RobinCK commented on June 6, 2024

@aleksandryackovlev
Yes, you are right, I need to move this into the entity configuration

from typeorm-fixtures.

phillamarmotte avatar phillamarmotte commented on June 6, 2024

Hi, first of all, thank you for this lib.
Is it possible to do something like this, so everyone (inculded me) will be happy

in he yaml file

entity: User
ignoreDecorators: true
items:
  user1:
    username: foo
    password: test

then add the key in jFixturesSchema.js

ignoreDecorators: Joi.boolean(),

add it to in Resolver.js

l15  for (const { entity, items, parameters, processor, resolvedFields, ignoreDecorators } of fixtureConfigs) {
l29  for (const name of referenceNames) {
                    const data = Object.assign({}, propertyList);
                    this.stack.push({
                        parameters: parameters || {},
                        processor,
                        entity: entity,
                        name: name,
                        resolvedFields,
                        data,
                        dependencies: this.resolveDependencies(name, data),
                        ignoreDecorators
                    });

and finaly in Builder.js

add method

function isIgnoreDecorators(fixture) {
    return !!fixture.ignoreDecorators
}

then use it to configure the ignoreDecorators parameter

entity = class_transformer_1.plainToClassFromExist(entity, data, { ignoreDecorators: isIgnoreDecorators(fixture) });

This way it doesn't break anything and you can disable decorator for specific entities

@RobinCK I find this way more convenient than a cli option.

from typeorm-fixtures.

wodka avatar wodka commented on June 6, 2024

we are having the problem that they are not ignored - even though setting ignoreDecorators to true. It will not add any field to an object that has the @Exclude() annotation on the class

from typeorm-fixtures.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.