PromucFlow_constructor/app/client
Vemparala Surya Vamsi 5d38e47508
chore: optimised isChildPropertyPath to not use a regex and added more logging around calculateSubTreeSortOrder (#41162)
## Description
Reduced the cumulative contribution of isChildPropertyPath by
approximately 98%. During page load, it originally took around 100 ms
for a customer app on a Mac machine and is now down to 2 ms. As a
result, calculateSubTreeSortOrder has improved by 70% on the same setup.
Optimised sorting and removed redundant lookups in addNodes, which led
to marginal gains. This optimisation specifically targets a customer
scenario where addNodes and addDependantsOfNestedPropertyPaths are
heavily stressed, contributing to an overall latency of about 7 seconds.
Added additional logging to investigate the issue further.


Fixes #`Issue Number`  
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/16714192460>
> Commit: d6633bb07190c897a9a9d9563e606c4dd220fa55
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=16714192460&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Mon, 04 Aug 2025 05:57:55 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added a new function to improve detection of child property paths
supporting both dot and bracket notation.

* **Refactor**
* Optimized internal logic for managing dependency sets and improved
node addition efficiency.
  * Updated sorting method to accept arrays for better consistency.

* **Style**
* Enhanced code readability and maintainability with more concise
patterns.

* **Chores**
* Introduced performance timing and logging for key operations to aid in
monitoring and diagnostics.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-04 11:32:15 +05:30
..
.husky chore: adds depandabot.yml (#40521) 2025-05-01 05:44:04 +00:00
.yarn
config fix: Suppress webpack-dev-server ResizeObserver loop development runtime error (#40968) 2025-06-18 11:16:53 +05:30
cypress chore: adding ce files (#41136) 2025-07-31 13:38:56 +05:30
docker/templates chore: add grafana faro sdk (CE) (#38301) 2024-12-26 10:37:41 +05:30
generators chore: decouple formControl registry from the main chunk (#40939) 2025-06-17 17:20:23 +05:30
packages chore: optimised updateDependencyGraph code (#41117) 2025-07-21 12:54:23 +05:30
public chore: add maximum-scale to avoid zoom on inputs in iOS (#40171) 2025-04-08 19:16:31 +05:30
scripts fix: Upgrade packages (#40935) 2025-06-16 12:12:55 +05:30
src chore: optimised isChildPropertyPath to not use a regex and added more logging around calculateSubTreeSortOrder (#41162) 2025-08-04 11:32:15 +05:30
test chore: decouple formControl registry from the main chunk (#40939) 2025-06-17 17:20:23 +05:30
typings
.babelrc chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
.dockerignore
.editorconfig
.eslintrc.base.json feat: add react-compiler eslint plugin (#37139) 2024-10-31 16:40:18 +01:00
.eslintrc.js
.fork-ts-checkerrc
.gitignore
.lintstagedrc.json chore: update import of AppState to DefaultReduxState (#40494) 2025-05-01 15:53:37 +05:30
.nvmrc
.prettierignore
.prettierrc
.sentryclirc
.yarnrc.yml
build.sh fix: sourcemaps (#39301) 2025-02-16 20:05:50 +03:00
cypress_ci_custom.config.ts chore: Remove Airtable tests from being excluded from CI runs (#40932) 2025-06-17 10:00:06 +05:30
cypress_ci_hosted.config.ts chore: Remove Airtable tests from being excluded from CI runs (#40932) 2025-06-17 10:00:06 +05:30
cypress_ci.config.ts chore: Remove Airtable tests from being excluded from CI runs (#40932) 2025-06-17 10:00:06 +05:30
cypress-add-tags.js
cypress.config.ts
download-assets.js
jest.config.js fix: Upgrade packages (#40935) 2025-06-16 12:12:55 +05:30
knip.json chore: Eject CRA (#39264) 2025-02-14 14:24:41 +05:30
package.json fix: security fix 425 (#41152) 2025-07-30 17:35:04 +05:30
README.md
README.old.md
start-caddy.sh
start-https.sh chore: convert consolidated api etag to a weak one (#38939) 2025-01-31 16:35:20 +05:30
tailwind.config.js
tsconfig.json
tsconfig.path.json
vercel.json
yarn.lock fix: security fix 425 (#41152) 2025-07-30 17:35:04 +05:30

Appsmith Client

This project was bootstrapped with Create React App.

For details on setting up your development machine, please refer to the Setup Guide