Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: ability to annotate integer fields #23

Open
davidmoshal opened this issue Apr 18, 2020 · 1 comment
Open

Feature Request: ability to annotate integer fields #23

davidmoshal opened this issue Apr 18, 2020 · 1 comment

Comments

@davidmoshal
Copy link

Goal: convey the concept of an integer to typescript, given that typescript doesn't have this concept, using JSON Schema.

Given Kotlin classes, we generate 2 files:

  1. Typescript using ts-generator.
  2. JSON Schema from that typescript using typescript-json-schema.

Then at runtime, we can validate any JSON object against the schema using ajv. This works fine.

Now the question of integers.

Given:

export interface Shape {
    /**
     * @minimum 0
     * @TJS-type integer
     */
    size: number;
}

Then:

  • typescript-json-schema can create the correct JSON Schema, and
  • ajv can validate it.

So, the questions are these:

  • is there a way for ts-generator to add // @TJS-type integer to the generated typescript number?
  • is there a way to decorate an integer such that it also outputs // @minimum 0?

If not, then one way around this I guess would be to use a special kotlin class for these integer types, which is manually edited one-time in the schema, but that seems a bit clunky, especially in a CI context.

@ntrrgc
Copy link
Owner

ntrrgc commented Apr 20, 2020

Maybe you could add this feature by using annotations, that way there is no need to use special classes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants