Giter Site home page Giter Site logo

Comments (11)

samchon avatar samchon commented on August 20, 2024 1

@micalevisk Is this intended spec of NestJS? Or just unexpected behavior but just supported by express?

@yadav-saurabh If you want to generate SDK library through nestia, I think it would better to follow its guide. The params type is called object literal expression type (unnamed, implicit), and nestia does not allow such unnamed type. Also, considering the characteristics of @nestia/sdk, such spec can't be allowed because the client side SDK library should keep the consistency, but such way makes client developers confused.

export class SomeClass {
  public someMethod(
    @Param("a") a: string,
    @Param() params: {
      b: string,
      c: string,
    } {}
}

from nestia.

yadav-saurabh avatar yadav-saurabh commented on August 20, 2024 1

@yadav-saurabh Is it okay to support object typed @Param(), but SDK library decomposes it to individual parameters?

yes, my initial thinking was the same. They are going be individual parameters from the frontend POV, just nestjs (maybe express) makes an object so that's easier to access if there are multiple parameters.

from nestia.

micalevisk avatar micalevisk commented on August 20, 2024

I don't see anything wrong with that code snippet

from nestia.

samchon avatar samchon commented on August 20, 2024

image

Ah, understood. It was the original spec of NestJS. Thansk for quick response @micalevisk

In the object type case, how @nestjs/swagger composes the parameters (OpenApiOperation.parameters) ?

from nestia.

samchon avatar samchon commented on August 20, 2024

@yadav-saurabh Is it okay to support object typed @Param(), but SDK library decomposes it to individual parameters?

If @nestjs/swagger supports the object type @Param() case with exact strategy, I'll support it.

from nestia.

micalevisk avatar micalevisk commented on August 20, 2024

In the object type case, how @nestjs/swagger composes the parameters (OpenApiOperation.parameters) ?

type defs like that has not effect for @nestjs/swagger (the CLI plugin)

from nestia.

samchon avatar samchon commented on August 20, 2024

In the object type case, how @nestjs/swagger composes the parameters (OpenApiOperation.parameters) ?

type defs like that has not effect for @nestjs/swagger (the CLI plugin)

Then should I define @ApiParam() to the object typed path parameter, and write the object path parameter type with @ApiProperty()?

from nestia.

micalevisk avatar micalevisk commented on August 20, 2024

it will work if you don't use types but concrete classes (with no decorators, if you're using the @nestjs/swagger plugin), due to how tsc works

or if you use @ApiParam(), of course

not sure about the behavior when using both approaches

from nestia.

samchon avatar samchon commented on August 20, 2024

@micalevisk Thaks for help.

@yadav-saurabh To accomplish this mission, I've to disassemble the object typed @Param() in the compilation level, and it needs lots of change in both @nestia/core and @nestia/sdk projects. Furthermore, as @Param() is not of my development, but of pure NestJS feature, it may needs lots of time.

By the way, this mission's benefit for users is a little bit lower, so that would be delayed due to lower priority.

Until that, recommend to avoid using the object typed @Param().

from nestia.

yadav-saurabh avatar yadav-saurabh commented on August 20, 2024

@micalevisk Thaks for help.

@yadav-saurabh To accomplish this mission, I've to disassemble the object typed @Param() in the compilation level, and it needs lots of change in both @nestia/core and @nestia/sdk projects. Furthermore, as @Param() is not of my development, but of pure NestJS feature, it may needs lots of time.

By the way, this mission's benefit for users is a little bit lower, so that would be delayed due to lower priority.

Until that, recommend to avoid using the object typed @Param().

Yes, I can understand.

Thanks for the quick response

from nestia.

samchon avatar samchon commented on August 20, 2024

Will start this ticket after #211

from nestia.

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.