General architectural question #26243
-
I am trying out a blueprint that will introduce a new definition language similar to JDL called UDL (UI-UX definition language). UDL will concentrate on the presentation & the interaction part of the generator e.g. visual elements, layouts, user on-boarding workflow, etc. I have been going through generator-jhipster code base trying to understand how JDL works and my plan is to mimic something similar. So here is what I understand (please correct me if I am wrong),
With the above understanding,
@mshima I know you did a lot of these changes and I really appreciate if you can take a look at it. |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 1 reply
-
So, all generators derived from BaseApplicationGenerator receives this sharedEntities and generates the entity related code. Based on these observations, I still feel that reading the udl files in blueprint:bootstrap-application-base and loading them into sharedData.sharedApplication.udlConfig will give me global access to this data across blueprint. |
Beta Was this translation helpful? Give feedback.
-
1.6. 1.7. Entities load happens on LOADING_ENTITIES 2.2 and 2.3 looks optional 2.5 Is there a reason to don't keep configs nested inside Any shared data should be stored in sharedData. |
Beta Was this translation helpful? Give feedback.
-
Are you planing to use JDL parser as base? |
Beta Was this translation helpful? Give feedback.
-
Thank you so much @mshima for answering this and validating my understanding. Looks like this will work. |
Beta Was this translation helpful? Give feedback.
1.6.
jhipsterConfig
is a proxy object that is synchronized with.yo-rc.json
(in-memory) content. It reloads on file change and writes on config change.Same as
blueprintConfig
for blueprints.1.7. Entities load happens on LOADING_ENTITIES
2.2 and 2.3 looks optional
blueprint-cli udl file.udl
makes more sense to me.2.5 Is there a reason to don't keep configs nested inside
.yo-rc.json
?Any shared data should be stored in sharedData.
You can extend
base-application
to add params to tasks and create others priorities.