title: Error: A circular dependency has been detected (property key: "firstName") thrown by tx-mixer
body: <p>I'm using this wonderful lib: <a href="https://www.npmjs.com/package/ts-mixer" rel="nofollow noreferrer">https://www.npmjs.com/package/ts-mixer</a></p>
  <p>The whole traceback looks as follows:</p>
  <pre><code>
  (node:22654) UnhandledPromiseRejectionWarning: Error: A circular dependency has been detected (property key: &quot;firstName&quot;). Please, make sure that each side of a bidirectional relationships are using lazy resolvers (&quot;type: () =&gt; ClassType&quot;).
      at SchemaObjectFactory.createNotBuiltInTypeReference (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:212:19)
      at SchemaObjectFactory.mergePropertyWithMetadata (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:143:25)
      at /Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:79:35
      at Array.map (&lt;anonymous&gt;)
      at SchemaObjectFactory.extractPropertiesFromType (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:78:52)
      at SchemaObjectFactory.exploreModelSchema (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:92:41)
      at /Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:33:36
      at Array.map (&lt;anonymous&gt;)
      at SchemaObjectFactory.createFromModel (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/services/schema-object-factory.js:20:45)
      at exploreApiParametersMetadata (/Users/albert/Documents/projects/albert/rlx/node_modules/@nestjs/swagger/dist/explorers/api-parameters.explorer.js:33:55)
  (Use `node --trace-warnings ...` to show where the warning was created)
  (node:22654) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
  (node:22654) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  </code></pre>
  <p><strong>register-common-user.dto.ts</strong></p>
  <pre><code>export class RegisterCommonUserDto {
      @decorate(ApiProperty())
      @decorate(IsNotEmpty())
      @decorate(IsString())
      firstName: string;
  
      // @decorate(ApiProperty())
      @decorate(IsNotEmpty())
      @decorate(IsString())
      lastName: string;
  
      // @decorate(ApiProperty({enum: EUserRoleName}))
      @decorate(IsNotEmpty())
      @decorate(IsEnum(EUserRoleName))
      roleName: EUserRoleName;
  
      // @decorate(ApiProperty())
      @decorate(IsNotEmpty())
      @decorate(IsPhoneNumber())
      phoneNumber: string;
  
      // @decorate(ApiProperty())
      @decorate(IsNotEmpty())
      @decorate(IsEmail())
      email: string;
  }
  </code></pre>
  <p><strong>register-user.dto.ts</strong></p>
  <pre><code>export class RegisterUserDto extends Mixin(
      RegisterFighterDto,
      RegisterCommonUserDto,
      RegisterLocationProviderDto,
  ) {}
  </code></pre>
  <p>The method:</p>
  <pre><code>    @Post('register')
      public async registerUser(@Body() registerUserDto: RegisterUserDto): Promise&lt;any&gt; {
          // code
      }
  </code></pre>
  <p>What might be causing the problem? It has surely something to do with the <code>@ApiProperty</code> decorator being wrapped in <code>decorate</code>, cos when I comment out that line, the error disappears. But in that case decorators don't get inherited and that's the whole point of using the ts-mixer lib.</p>
  <p>EDIT:</p>
  <p>Any ideas?</p>
  <p>EDIT:</p>
  <p>Are these libs incompatible or what?</p>