Commit Graph

10 Commits

Author SHA1 Message Date
Dave Shanley
c34c4f668c Massive refactor on how the library handles schemas.
Schemas are now rendered on demand. There is no reasonable way to navigate the mayhem that is circular dependencies through multiple inheritance and polymorphism. So now using a msuch simpler design (and MUCH faster), there is a `SchemaProxy` for every schema reference. This holds a reference to the low model and index, that renders the schema on demand. Once rendered, it's done. Any children can also be rendered on demand, and so down the rabbit hole you do (if you want).

All circular dependencies are know by the index, so you can decide when you want to stop, or just keep going for ever, however it's now a choice, not something decided for you.

Signed-off-by: Dave Shanley <dave@quobix.com>
2022-08-27 09:47:37 -04:00
Dave Shanley
6e0d25776a Bumping test coverage
There are issues with circular references at scale, there may need to be a change after this commit.
2022-08-26 09:49:48 -04:00
Dave Shanley
081fc9be56 Bumping coverage across high level model
fixing small glitches as the model is tested. we're almost there! it's almost ready!
2022-08-24 11:26:39 -04:00
Dave Shanley
5d07da52b1 Fixed resolver to correctly identify polymorphic circular references.
Both stripe and k8s are correctly identified now.
2022-08-23 14:57:32 -04:00
Dave Shanley
447430256e Working through components tests
catching small gaps as I work through each model and checking coverage. Looks like it's time to expand on the spec again to ensure coverage.
2022-08-23 08:25:30 -04:00
Dave Shanley
108c3a93f3 Schemas now working, still need to check polymorphic work
However the painbarrier seems to have been smashed, now all polymorphic references can be tracked to circular references. confidence is now up 100%.
2022-08-22 11:13:43 -04:00
Dave Shanley
00267c91b9 components are in,
this should actually be the full model, the whole graph is in - now to optimize full model and check for circular deps.
then, it's time to move back in history and rebuild the swagger model.
2022-08-21 12:05:16 -04:00
Dave Shanley
0c2c008902 Building out highlevel model
bit by bit, step by step.
2022-08-19 10:01:16 -04:00
Dave Shanley
0bd119f152 building out high model.
works just great, so happy the design came together!
2022-08-18 18:38:41 -04:00
Dave Shanley
0fd825aef8 High level model build is currently fast as lightning.
little refactoring to keep things all clean and in place.
2022-08-18 10:39:47 -04:00