Commit Graph

44 Commits

Author SHA1 Message Date
Apeksha Bhosale
a0646bca77
fix: return statement is not necessary to execute .then and .catch execution (#16802) 2022-09-30 07:01:05 +05:30
Ayush Pahwa
e3f90db341
feat: grouping in console logs (#16698)
* fix: updated skip functionality

* update: type of logs to add occurence count

* update: reducer function to merge the new logs

* update: added dependance on last log's occurence count

* add: UI to show the occurence badge

* fix: added null check for dependency array

* update: omit occurence from compare fn

* update: changed function call to store logs array directly

* update: moved from saving logs one by one to array

* fix: replaced forEach with reduce

* test: added functions for console log grouping

* feat: updated warning grouping color

* update: moved function to reducer file for jest tests
2022-09-19 06:29:04 +00:00
Ayush Pahwa
e53045de5a
fix: updating trigger meta to get the source of console logs (#16520)
For nested functions, the trigger meta is not available for subsequent functions. So in cases where the dynamic trigger has the relevant info, we can use that to update the trigger meta and then use that meta to display the source of the logs.

Fixes #16515
Fixes #16483
Fixes #16514

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-09-07 11:53:47 +05:30
Ayush Pahwa
7d621de978
feat: console log implementation in appsmith (#16286)
* feat: capture console from across the app (#15676)

* create: console override file

- Adds methods to override the given console functionality to capture the console statements written by the user

* update: evaluate function to extract console op

- Added logs extraction for both sync and async functions
- Adding them to the return object of the evaluations

* update: timestamp field to log addition method

- Added optional argument to function definition for inputting the timestamp of the log
- This is done to maintain timings of the execution of the log

* update: interface for log objects

* update: post function execution logic

- Added logic to push the logs generated by the evaluation to the logs store

* update: added handling for sending nested fns

- While console logging functions or objects that had functions was causing an error
- Added a check for removing functions and replacing them with name of the functions instead

* chore: added types and comments

* fix: updated evaluation tests

* fix: added check for log in returned obj

* update: added the source data in the trigger logs

- Removed on js execute logs from showing up here since they are already handled. If they are not removed, they will show up on the first page load twice

* add: ellipsis function for log title string

- This is to keep big object contained in the first line only

* update: made logs reset function public

* update: resetting logs before new eval

- Logs object has to be cleared before next eval can happen to make sure there are no roll overs from last evals

* chore: added comments

* add: extracting logs after eval of functions

* add: storing logs to redux after eval

* refactor: updated types

* add: func to store logs w/ severity as arg

* refactor: updating func call for user logs

* chore: fixed elipsis logic

* chore: removed unused type

* chore: updated preview text logic

* add: type for transfer object post eval

* update: aded new userLogs obj to dataTreeEvaluator

* update: passing logs from object to saga

* update: parsing received userlogs

* refactor: used predefined fns

* refactor: moved resetlogs to common func

* chore: updated comments

* feat: update redux store and UI for system + user logs (#15936)

* update: updated types for the redux store

- Added category and data fields in the log object

* update: types of log redux store

* update: calls for the console log store function

* update: icon fetch func for log item UI

* update: syncing UI with the new designs (WIP)

* chore: fixed lint error

* update: filters for logs

* update: icon for clearing log filters

* update: filtering function

- Added checks against category and severity

* update: logitem UI

- updated type of the UI object
- added css based ellipsis
- added toggle for console logs
- added array of json views for objects/arrays
- css tweaks

* update: debugger cta

- Removed copy option
- Updated UI

* update: logic for expanding user logs

- Removed debugger CTA
- Fixed position for the expand/collapse icon
- Added joining char for when the log is expanded

* update: assets for new UI

- updated colors
- Added new icon

* hotfix: ternserver code

* add: search across the text of log

* update: icons for the app

* update: click to expand/collapse of logs

* fix: search keyword update on change within JSObjects

* fix: alignment of log items in both states

* update: jest tests for debugger errors and filter

* fix: drop down options color issue

- the icon used was not the standard one
- We have a lot of duplicates of the same icon

* fix: synced with ADS changes on release

* fix: remove dependency from old icon

* add: cypress selectors for automation testing

* fix: replaced static messages with variables

* fix: updated the dependency map for filter

* fix: height of the filter drop down

* fix: chaining logic for search filter

* fix: syncing the padding values to ADS

* fix: help icon visibility issue

* fix: width of filter dropdown

Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>

* add: e2e tests for console statements using IIFE

* test: added test for console logs in jsobjects

* fix: functionality of expanding context menu on msg click

* fix: added try catch and handling for numbers

* hotfix: handling unwanted toasts

* fix: alignment and clickable cursor

* fix: alignment of expanded span in console logs

* add: analytics event on new console log created

* fix: added handling for boolean and undefined

* fix: removed log reset from common func

- Whenever we are creating global DTO, the logs were being reset. This caused logs to reset whenever a promise was encountered in the logs.

* fix: combined JS log saving to widget process

* add: new analytics event on filter changed

* update: added handling for empty value

* update: removed comma between multiple logs

* update: synced test changes with release

* update: removed unused wait timings

* Logs spec script update

* update: ts methods in log spec e2e test

* logs spec update

* update: removed body clicks from test script

* Logs spec update

* update: removed ask from google option

* refactor: ui fixes

* fix: text selection of logs

* fix: updated dropdown width management

* update: made the flushlogs function async

* update: added handling for promises

* update: added test with promises fail and pass

* fix: added sync variant to work for sync objects

* refactor: commented out unused tests

* update: exceptions in the name of log entity

* fix: pagination of logs to handle dynamic data stream

* fix: removed unused async function

* fix: moved logs handling to separate saga

* fix: color for context menu text

Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-09-04 17:28:05 +05:30
Rishabh Rathod
55082812b2
revert: "fix: dataTree mutation (#15952)" (#16406)
## Description

This reverts commit dbcc643ccf.

Fixes #16378

## Type of change

- Revert changes which impacted performance

## How Has This Been Tested?

Manual performance verification 

@ramsaptami 

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

Co-authored-by: ohansFavour <fohanekwu@gmail.com>
2022-08-31 13:38:17 +00:00
Rishabh Rathod
dbcc643ccf
fix: dataTree mutation (#15952) 2022-08-24 22:06:54 +05:30
Favour Ohanekwu
0f92b97226
feat: Triggerpath dependency (#15015)
* Introduce triggerpathdependency

* Code cleanup and refactor

* add jest test for removeLintErrorsFromEntityProperty

* Add triggerfieldDependencyMap jest tests for datatreeEvaluator

* Add cypress tests

* Revamp linting architecture

* Lint when creating first tree

* Prevent modification of unevaltree while linting

* improve linting performance

* Reuse allkeys for all dependencymap creation

* Add jest test for linttree

* Update jest and cypress tests

* Modify linting folder name

* remove redundant commits

* update evaluation jest tests

* Fix failing test

* Update cypress tests

* Code clean up and performance upgrade

* Update cypress tests

* Use unevalTree as global data for non-trigger field

* Improve global data creation time

* Cypress fixes

* Improve creation of global data for linting

* Only generate global data with functions when needed

* remove all unused variables

* Add overriden commit

* remove lint erros before linting

* fix merge conflicts

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-07-22 21:31:08 +01:00
Favour Ohanekwu
41789c71bc
fix: show js function execution errors in debugger (#14555)
* Show js function execution error logs

* remove unused function

* improve check for async functions

* clear errors for deleted jsActions

* fix typescript error

* modify js function execution error logging

* test that execution parse errors are logged in the debugger

* Add test to show that js execution errors are logged in the debugger

* re-order js execution tests

* Add type to jsObj variable

* update cypress tests

* update cypress test
2022-06-30 08:21:20 +01:00
Arsalan Yaldram
f58451aa5f
feat: upgrade to create react app 5 (#14000)
* Updated Typescript types.

* Typefixes after merge with release.

* chore: GenericApiResponse Removed alltogether.

* chore: resolved ApiResponse unknown errors removed PageListPayload.

* Added shouldBeDefined.

* fix: Resolved type errors.

* fix: Typescript upgrade to 4.5 and type fixes.

* feat: upgrade to cra 5

* feat: uncomment service worker registeration

* force secure websocket protocol

* jest test fixes

* fix: react function lint rule removed

* fix: klona test case.

* fix: typescirpt issues resolved

* fix: timeout for colorpicker test and change env.

* feat: update client-build.yml file

* fix: remove brotliplugin use compression plugin

* fix: build config fixed

* fix: upgrade webpack plugin

* fix: add branchbutton test to todo.

* fix: remove branch button test.

* fix: Add tailwind theme values, fix cypress tests

* fix: Typescript type fixes.

* feat: run jest tests in silent mode

* fix: cypress rgb values add branchbutton jest test

* fix: review comments, fixes for error.message

* fix: increase cache size for the workbox

* fix: remove OrgApi.ts file

* fix: cypress.json file remove credentials

* fix: downgrade react and react-dom packages

Co-authored-by: rahulramesha <rahul@appsmith.com>
2022-06-21 19:27:34 +05:30
Rishabh Rathod
7626d75ccf
fix: remove "Error when determining async func" (#12683)
- Add logs for debugging
2022-04-12 10:02:02 +00:00
Apeksha Bhosale
e7d4bdba6e
fix: removed promisification of confirmation (#12553)
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-04-06 12:52:18 +05:30
Apeksha Bhosale
79e165af96
feat: Settings js editor (#9984)
* POC

* Closing channels

* WIP

* v1

* get working with JS editor

* autocomplete

* added comments

* try removing an import

* different way of import

* dependency map added to body

* triggers can be part of js editor functions hence

* removed unwanted lines

* new flow chnages

* Resolve conflicts

* small css changes for empty state

* Fix prettier

* Fixes

* flow changes part 2

* Mock web worker for testing

* Throw errors during evaluation

* Action execution should be non blocking on the main thread to evaluation of further actions

* WIP

* Fix build issue

* Fix warnings

* Rename

* Refactor and add tests for worker util

* Fix response flow post refactor

* added settings icon for js editor

* WIP

* WIP

* WIP

* Tests for promises

* settings for each function of js object added

* Error handling

* Error handing action validation

* Update test

* Passing callback data in the eval trigger flow

* log triggers to be executed

* WIP

* confirm before execution

* Remove debugging

* Fix backwards compatibility

* Avoid passing trigger meta around

* fix button loading

* handle error callbacks

* fix tests

* tests

* fix console error when checking for async

* Fix async function check

* Fix async function check again

* fix bad commit

* Add some comments

* added clientSideExecution flag for js functions

* css changes for settings icon

* unsued code removed

* on page load PART 1

* onPageLoad rest iof changes

* corrected async badge

* removed duplicate test cases

* added confirm modal for js functions

* removed unused code

* small chnage

* dependency was not getting created

* Fix confirmation modal

* unused code removed

* replaced new confirmsaga

* confirmaton box changes

* Fixing JSEditor Run butn locator

* corrected property

* dependency map was failing

* changed key for confirmation box

Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-03-17 17:35:17 +05:30
Hetu Nandu
06bf4696b4
fix: Promises in Table buttons (#11239) 2022-02-28 15:05:43 +05:30
Apeksha Bhosale
980c8cbf57
fix: added new library and reduced function calls for global data (#11001) 2022-02-11 16:22:27 +05:30
Anand Srinivasan
c2a6e089db
fix: passing params from JS to API/SQL query (#10826)
* Revert "fix: revert this.params solution (#10322)"

This reverts commit 2bcd73e41d.

* replace 'this.params' with 'executionParams'

* replace 'this?.params' also with 'executionParams'

* fix unit test lint errors

* added unit tests for params handling

* evaluateActionBindings unit test - add default value case

* comments update

* remove un-necessary `executionparams` assigment to `evalTree`
2022-02-04 17:58:46 +05:30
Apeksha Bhosale
5f91f2d20f
added functions while checking isAsync (#10425) 2022-01-25 13:53:53 +00:00
Anand Srinivasan
2bcd73e41d
fix: revert this.params solution (#10322)
* revert changes

* code clean up

Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
2022-01-14 11:50:01 +05:30
Hetu Nandu
39b0a4e5a6
feat: Native promises support in Appsmith (#8988)
Co-authored-by: Apeksha Bhosale <7846888+ApekshaBhosale@users.noreply.github.com>
2021-12-23 14:17:20 +00:00
Anand Srinivasan
3a4658c8f5
fix: unexpected return error (#9432)
* assign undefined for empty scripts during evaluation

* add unit tests

* handle anonymous_function when undefined

* update unit tests

* remove unwanted assignments in evaluation scripts

* update unit tests

* Update app/client/src/workers/evaluate.test.ts

* fix lint cypress tests

* remove semicolon

* fix API_bugs_spec

* undo anonymous function change

* Update app/client/src/workers/evaluate.ts

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>

* add comment

* return back when JS is empty

* Update app/client/src/workers/evaluate.ts

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
2021-12-21 20:00:19 +05:30
Hetu Nandu
4c54ea21fb
feat: Add support for custom 'this' and 'global' variables during evaluation (#9651) 2021-12-14 14:00:43 +05:30
Anand Srinivasan
4ced0954db
feat: Syntax parsing through AST (#9115)
* ast changes

* ast fix for cyclic dependency

* jest test updates for ast

* feat: Extract references in code with AST (#8617)

Co-authored-by: Nidhi <nidhi@appsmith.com>

* undo debugger changes

* code clean up and comments

* update type checks for literal nodes

* include tests for IIFE and direct object access

* fix - dependency map not updated on IIFE/direct object access

* update tslib

* unescape on AST parsing

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Nidhi <nidhi@appsmith.com>
2021-12-02 15:33:43 +05:30
arunvjn
a9cf962b74
fix: evaluation of escaped characters (#8796) 2021-11-10 12:41:23 +05:30
Apeksha Bhosale
c0e945f0a3
in case if empty eval tree (#8441) 2021-10-12 15:49:10 +05:30
Hetu Nandu
2c3a0991f7
feat: setInterval and clearInterval support (#8158) 2021-10-11 12:55:03 +00:00
Vinod
159e7f2062
fix: issue with string templates (#7848)
* Remove bracket highlight on error

* fix string template issue

* using string template to join strings

* fix breaking tests
2021-10-07 12:33:15 +00:00
Hetu Nandu
94e3ffef67
feat: Linting in trigger fields (#7638) 2021-10-05 13:52:27 +00:00
Hetu Nandu
79aefc4d74
hotfix: js action parsing error resolution (#8086) 2021-10-01 22:40:49 +05:30
Vinod
f3b281092b
fix: copy icon in evaluated popup and dot notation jshint error (#7639)
* Remove bracket highlight on error

* remove dot notation rule and change copy icon

* fix #7582
2021-09-22 07:05:02 +00:00
Apeksha Bhosale
386e788e28
fix: pushing and removing errors from debugger for js object (#7465)
* pushing and removing errors from debugger for js object

* added message part of messages

* changes for linting and errors showing

* added try catch for executing function

* PR comments fixed

* PR comment fixed
2021-09-21 11:32:45 +05:30
Vinod
2bd324a5aa
feat: address few bug with linting and improve highlighting (#7287)
* show lint errors as warnings

* add initial code

* adjust editor positions

* update pr comments

* mark jshint errors

* reset changes

* remove unused prop

* fix test errors

* remove unused imports

* dont show warning in the error counter

* show yellow if warning

* remove active error functionality

* update linter to use async functionality

* update linter messages

* update binding positions

* fix evaluate tests

* dont show undefined errors in debugger

* move lint code to separate file

* update testes

* remove unused import

* update tests

* address pr comments

* add comment to explain why

* replace proper regex

* fix undefined message error

* Update styling for warnings

* address position issue in the linter

* Fix failing tests

* Merge 'release' on to  'Feature/linting-errors'

* add console as global object

* address lint issues

* fix requested linting erros for release

* fix breaking issue

* remove unwanted code

* revert unrelated changes

* remove unnecessary file

* add extra libraries to jshint data

* import lodash functions that are used

* update jshint settings

* Fix failing test

* don't show lint errors if there is a parsing issue

* update jshint to latest version
2021-09-17 16:01:45 +05:30
Apeksha Bhosale
09eea59330
feat: JS Editor (#6003)
* Changes to add js plugin

* routes+reducer+create template

* added debugger to js editor page

* entity explorer changes

* create js function

* added copy, move and delete action

* added js plugin

* added existing js functions to data tree

* removed actionconfig for js collection

* new js function added to data tree and entity as well

* parsing flow added

* changes to data tree

* parse and update js functions

* small changes for def creator for js action

* create delete modified

* small changes for update

* update flow change

* entity properties added

* removed linting errors

* small changes in entity explorer

* changes for update

* move, copy implementation

* conflict resolved

* changes for dependecy map creation

* Only make the variables the binding paths

* Basic eval sync working

* Minor fixes

* removed unwanted code

* entity props and autocomplete

* saving in progress show

* redirection fix after delete js action

* removed unnecessary line

* Fixing merge conflict

* added sample body

* removed dummy data and added plugin Type

* few PR comments fixed

* automplete fix

* few more PR comments fix

* PR commnets fix

* move and copy api change

* js colleciton name refactor & 'move to page' changes & search

* view changes

* autocomplete added for js collections

* removing till async is implemented

* small changes

* separate js pane response view

* Executing functions

* js collection to js objects

* entity explorer issue and resolve action on page switch

* removed unused line

* small color fix

* js file icon added

* added js action to property pane

* Property pane changes for actions

* property pane changes for js functions

* showing syntax error for now

* actions sorted in response tab

* added js objects to slash and recent entitties

* enabling this to be used inside of function

* eval fix

* feature flag changes for entity explorer and property pane

* debugger changes

* copy bug fix

* small changes for eval

* debugger bug fix

* chnaged any to specific types

* error in console fix

* icons update

* fixed test case

* test case fix

* non empty check for functions

* evaluate test case fix

* added new icons

* text change

* updated time for debounce for trial

* after release mereg

* changed icon

* after merge

* PR comments simple

* fixed PR comments - redux form, settings remove

* js object interface changes

* name refactor

* export default change

* delete resolve actions chnage

* after merge

* adding execute fn as 3rd option and removed create new js function

* issue 7054 fixed - app crash

* execute function on response tab changes

* refactor function name part 1

* refactor of js function name

* try catch added refactor

* test fix

* not used line removed

* test cases locator fixed

Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
2021-09-08 23:02:22 +05:30
Hetu Nandu
3380227cbb
feat: Enable Promises in Appsmith (#6253) 2021-08-27 14:55:28 +05:30
Vinod
9f3a24fbb0
feat: show lint errors in code editor (#6265) 2021-08-26 10:15:17 +05:30
Hetu Nandu
8789c4f897
Fix JS error message showing callstack in firefox (#6234) 2021-07-29 17:06:49 +05:30
Hetu Nandu
a5187aadd5
Revert back to old way of eval (#5851)
This change was introduced in #4446 and #5034
2021-07-15 10:29:04 +05:30
hetunandu
dcfb8f6e48 Revert "Revert back to old way of eval"
This reverts commit ca54f9f21b.
2021-07-14 16:19:01 +05:30
hetunandu
ca54f9f21b Revert back to old way of eval 2021-07-14 16:18:28 +05:30
Hetu Nandu
52311e8944
Only add appsmith functions in global scope during trigger evaluation (#5760) 2021-07-13 18:27:59 +05:30
Hetu Nandu
83af4d372d
Fix top level parallel runs (#5613) 2021-07-07 15:29:44 +05:30
Hetu Nandu
dce3a80e40
Minor fixes for errors (#5361) 2021-06-23 18:55:18 +05:30
Hetu Nandu
441f42c72f
Generate linting errors via JSHint (#5034) 2021-06-21 16:39:51 +05:30
Hetu Nandu
8c84dcfdec
Fix multiline js issues (#4816) 2021-06-02 18:27:27 +05:30
Hetu Nandu
aac5fcb6c7
Use the Function constructor for user script eval (#4446)
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
2021-05-20 12:31:10 +05:30
Hetu Nandu
89effdd2fb
Refactor evaluate function and add tests (#3536) 2021-03-13 19:42:21 +05:30