gradio/js
Hannah 7aca673b38
Add eventsource polyfill for Node.js and browser environments (#8118)
* add msw setup and initialisation tests

* add changeset

* add eventsource polyfill for node and browser envs

* add changeset

* add changeset

* config tweak

* types

* update eventsource usage

* add changeset

* add walk_and_store_blobs improvements and add tests

* add changeset

* api_info tests

* add direct space URL link tests

* fix tests

* add view_api tests

* add post_message test

* tweak

* add spaces tests

* jwt and protocol tests

* add post_data tests

* test tweaks

* dynamically import eventsource

* revet eventsource imports

* add node test

* lockfile

* add client test in root pkg file

* lcokfile

* remove eventsource from js/app

* add changeset

* remove ts ignore

* move eventsource polyfill to eventsource factory

* add changeset

* tweak

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
2024-05-02 22:49:55 +02:00
..
_cdn-test chore(deps): update dependency iframe-resizer to v4.3.11 (#8092) 2024-04-22 09:35:35 -07:00
_spaces-test chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
_website Use workspace version for code in _website (#8189) 2024-05-01 14:17:56 -07:00
accordion chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
annotatedimage chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
app Pass Error status in /dev/reload stream (#8106) 2024-05-01 22:21:54 +00:00
atoms chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
audio rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
box chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
button chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
chatbot chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
checkbox chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
checkboxgroup chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
code chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
colorpicker chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
column chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
dataframe rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
dataset chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
downloadbutton chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
dropdown chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
fallback chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
file rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
fileexplorer chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
form chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
gallery rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
group chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
highlightedtext chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
html chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
icons chore: update versions (#7992) 2024-04-18 18:09:10 +00:00
image rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
imageeditor rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
json chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
label chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
lite chore: update versions (#8147) 2024-04-26 19:17:13 +01:00
markdown chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
model3D rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
multimodaltextbox rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
number chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
paramviewer chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
plot chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
preview Use workspace version for code in _website (#8189) 2024-05-01 14:17:56 -07:00
radio chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
row chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
simpledropdown chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
simpleimage rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
simpletextbox chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
slider chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
state chore: update versions (#6039) 2023-10-31 13:20:18 +00:00
statustracker chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
storybook rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
tabitem chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
tabs chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
textbox chore: update versions (#8069) 2024-04-25 23:08:27 +00:00
theme chore: update versions (#7992) 2024-04-18 18:09:10 +00:00
tooltip chore: update versions (#6039) 2023-10-31 13:20:18 +00:00
tootils rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
upload Add eventsource polyfill for Node.js and browser environments (#8118) 2024-05-02 22:49:55 +02:00
uploadbutton rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
utils rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
video rework upload to be a class method + pass client into each component (#8179) 2024-05-01 14:55:41 +00:00
wasm chore: update versions (#7771) 2024-03-25 12:35:44 -04:00
.npmrc move files (#3605) 2023-03-27 16:12:58 -07:00
jsx.d.ts update deps + fix tests (#4675) 2023-06-28 22:40:53 +01:00
README.md Updated CI info in contributing docs (#4415) 2023-06-06 08:52:29 -04:00

gradio-ui

This folder contains all of the Gradio UI and component source code.

setup

This folder is managed as 'monorepo' a multi-package repository which make dependency management very simple. In order to do this we use pnpm as our package manager.

Make sure pnpm is installed by following the installation instructions for your system.

You will also need node which you probably already have

running the application

Install all dependencies:

pnpm i

This will install the dependencies for all packages and link any local packages

local development

To develop locally, open two terminal tabs from the root of the repository.

Run the python test server, from the root directory:

cd demo/kitchen_sink
python run.py

This will start a development server on port 7860 that the web app is expecting.

Run the web app:

pnpm dev

building for production

Run the build:

pnpm build

This will create the necessary files in js/app/public and also in gradio/templates/frontend.

quality checks

The repos currently has two quality checks that can be run locally and are run in CI.

formatting

Formatting is handled by prettier to ensure consistent formatting and prevent style-focused conversations. Formatting failures will fails CI and should be reoslve before merging.

To check formatting:

pnpm format:check

If you have formatting failures then you can run the following command to fix them:

pnpm format:write

type checking

We use TypeScript to provide static types to javascript code. These checks are also run in CI.

to typecheck the code:

pnpm ts:check

ci checks

Currently the following checks are run in CI:

static checks

  • Format check (pnpm format:check)
  • Build css (pnpm css)
  • Build client (pnpm build)
  • Type check (pnpm ts:check)
  • Unit tests (pnpm test:run)

functional test

pip install -r demo/outbreak_forecast/requirements.txt
pnpm exec playwright install chromium
pnpm exec playwright install-deps chromium
pnpm test:browser:full