@protonapp/proton-runner
v2.19.21
Published
Core rendering functionality for Adalo platform
Downloads
1,839
Maintainers
Keywords
Readme
Adalo Runner
The runner package connects to web-preview
and web-runtime
to render the apps that users have built.
Setup
- Install packages for
runner
and create symlink of package.
yarn
yarn link
yarn start
Runner is now running and you should see log updates anytime you save within a file.
- Once this app is up and running, you can link to it in the
web-preview
. Make sure you are in theweb-preview
repository when you run these commands.
yarn link "@protonapp/proton-runner"
yarn
yarn start
Debug
Performance
We know there are various performance aspects that can be improved on Runner.
One of these is our handling of Adalo Collection (internal, external, Xano) data from the Database service where we're often loading more data than we need.
To confirm the amount of data being loaded for a slow app screen:
- open an app in Preview/Share
- open your browser's developer tools (the following assumes Chrome, but this will work for other browsers)
- go to the Application tab
- on the left panel, select Storage and then Local Storage
- select the Adalo Previewer/Share host
- add a key called
debugStorage
with any value - go to the Console tab
- continue to use the application, you should see various console table logs appear
why-did-you-render
As a debugging tool in development, we're using @welldone-software/why-did-you-render
.
The dependency isn't installed in runner itself (as it causes issues with the build process). Instead it's installed in web-preview
. To see the development logs, when starting web-preview
use the command: yarn start:wdyr
Most of the tool works out of the box, but anonymous function components might not have any "names" wdyr can use to display in the logs, and will log out without a name. To work around this, you can add a property to the anonymous function component for why-did-you-render
to pick up:
const RandomComponent = () => </>
RandomComponent.whyDidYouRender = {
logOnDifferentValues: true,
customName: 'RandomComponent',
}