## Description This PR fixes 2 issues <em>Issue 1<em> - No function available in the dropdown of a valid JS Module in JS Module editor Due to some reason the actions property in the JSObject is missing instead of being `[]`, due to this when the check is done for getting the diff `const preExisted = jsAction.actions.find((js) => js.name === action.name);` the `.find` is on an `undefined` value. The actual reason of the `actions` to be missing is yet to be discovered but this is added to add guard against such failures. <em>Issue 2<em> - When a function is removed from a JSModule, a silent error is thrown by the splice `TypeError: Cannot delete property '0' of [object Array]` The reason for this is that the jsObject are directly being mutated for an object where the `writable` property is `false`. Upon verifying the code block removed from line 145-155 has no use since it just updates the jsActions object which neither is used by subsequent code of the function nor the caller of this function. Also splicing directly on redux selector data mutates the redux store directly which is a bad practice. So technically it's a piece of code that is unused, thus removing it fixes the problem Fixes https://github.com/appsmithorg/appsmith/issues/38683 ## 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/12802464049> > Commit: 316f0aecfe19b1d1db80baf21fa16312ae5f883f > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12802464049&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 16 Jan 2025 11:54:27 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 - **Bug Fixes** - Improved error handling in JS collection updates by ensuring proper array initialization - Enhanced action comparison logic to handle undefined action arrays more gracefully - **Refactor** - Simplified action comparison and deletion process in JS collection utilities <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|---|---|---|
| .github | ||
| app | ||
| contributions | ||
| deploy | ||
| scripts | ||
| static | ||
| .coderabbit.yaml | ||
| .deepsource.toml | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .imgbotconfig | ||
| .nojekyll | ||
| app.json | ||
| appsmith_events.md | ||
| appsmith_templates.md | ||
| ci-debug.sh | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| depot.json | ||
| Dockerfile | ||
| heroku.yml | ||
| IssuesReport.md | ||
| LICENSE | ||
| README.md | ||
| SECURITY.md | ||
Organizations build internal applications such as dashboards, database GUIs, admin panels, approval apps, customer support dashboards, and more to help their teams perform day-to-day operations. Appsmith is an open-source tool that enables the rapid development of these internal apps. Read more on our website.
Installation
There are two ways to start using Appsmith:
- Signup on Appsmith Cloud.
- Install Appsmith on your machine. See the installation guides below.
| Installation Methods | Documentation |
|---|---|
| Docker (Recommended) | |
| Kubernetes | |
| AWS AMI |
For other deployment options, see the Installation Guides documentation.
Development
To build and run Appsmith in your local dev environment, see Setup for local development.
Learning Resources
Need Help?
Contributing
We ❤️ our contributors. We're committed to fostering an open, welcoming, and safe environment in the community.
📕 We expect everyone participating in the community to abide by our Code of Conduct. Please read and follow it.
🤝 If you'd like to contribute, start by reading our Contribution Guide.
👾 Explore some good first issues.
Let's build great software together.
Top Contributors
License
Appsmith is licensed under the terms of Apache License 2.0.
