-
Notifications
You must be signed in to change notification settings - Fork 108
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
fix: use parent xml to parse child #470
Conversation
QA notes:
|
@@ -49,9 +49,12 @@ export interface RecompositionState { | |||
class RecompositionFinalizer extends ConvertTransactionFinalizer<RecompositionState> { | |||
protected _state: RecompositionState = {}; | |||
|
|||
// A cache of SourceComponent xml file paths to parsed contents so that identical child xml | |||
// files are not read and parsed multiple times. | |||
private parsedXmlCache = new Map<string, JsonMap>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why keep this around at the class level if it's only used inside one recompose
method? It could be kinda big for those large-number-of-labels scenarios.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be really small actually. In the case of custom labels there would only be 1 entry per CustomLabels.labels-meta.xml file, which is only 1 per package directory. This could possibly be moved to within the recompose function but I wasn't sure if there were situations where multiple parent CustomLabels would exist in a ComponentSet so to be safe I added this as an instance var.
What does this PR do?
Reuses the parsed custom labels file when parsing the children to improve conversion performance.
What issues does this PR fix or reference?
forcedotcom/cli#1194
@W-9990964@
Functionality Before
converting CustomLabels would take a long time since it would read and parse the CustomLabels.labels file for each label (child) within the file.
Functionality After
The CustomLabels.labels file is read and parsed once, then reused to parse the children.
Testing Notes: