Comments (6)
A second thought: Joi allows users to provide new types via Joi.extend()
, so I see the potential for a lot of users to run into this same type of issue. Perhaps another approach would to allow users to provide "type resolvers" (think plugin) to j2s
that way we push undefined behavior down to the user level. Thoughts?
from joi-to-swagger.
Swagger only allows for one data type per property, so support for joi.any()
wasn't implementable. I'm not actually sure swagger has a way to define a forbidden property, short of omitting it and adding additionalProperties: false
to the object definition.
If you can provide an example swagger output that would fit that that schema, then I can look into adding it.
from joi-to-swagger.
Good point about swagger output, but I think that throwing an unrecoverable error is probably not the best way to handle this as one field ruins the bunch.
My initial thought is that any
could be represented as binary
or any
types could be left out/suppressed by default.
Would you accept a PR to suppress the any
type from showing up in the schema and not throw an error (perhaps log a warning)?
from joi-to-swagger.
The plugin idea makes the most sense to me. I'll mull it over and see if I can come up with an api I like.
I would accept a PR to ignore any
and not trigger an error, you can probably do it by just adding any: () => false
to the parseAsType
collection. It definitely should at least issue a warning (maybe via util.deprecate
) if it's going to ignore the entry. Otherwise people wouldn't understand (and possibly not even notice) why it's absent.
from joi-to-swagger.
Sorry for the sort-of-necro-bump, but didn't want to open separate issue about topic, discussed here.
I looked around but didn't see any PRs related to the Joi.extend() issue, mentioned above. Was any progress made on that?
from joi-to-swagger.
Not really. The way I've addressed it in my own projects is to just explicitly define the swagger using the meta()
override.
from joi-to-swagger.
Related Issues (20)
- Usage of joi.ref() in min()/max() generated invalid schemas
- [Feature request] Support Joi.link() HOT 1
- Update joi dependency to use @hapi/joi HOT 5
- More examples HOT 6
- regeneratorRuntime - error HOT 3
- Meta options (className, swagger and swaggerOverride) HOT 1
- [FEATURE] Support for schema.tailor and schema.alter HOT 2
- joi is leaving the @hapi organization and moving back to 'joi' HOT 2
- False default values for boolean not passing HOT 2
- joi.object().keys() vs joi.object({}) HOT 1
- add meta option to override alternatives feature (for AWS APIG) HOT 1
- Custom data x-custom-definition / x-custom-property-data HOT 1
- Support for .allow('a','b') by setting enums for this
- Description feature HOT 3
- How to create joi schema of allOf: swagger syntax HOT 1
- thank you for this
- Generate parameters array HOT 1
- Set responses using joi HOT 1
- Key-Value Map via Joi.object().pattern() does not work
- Generation of components using .pattern() HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from joi-to-swagger.