storj/web/satellite
Ivan Fraixedes 882c9d64e4
private/apigen: Create class for API errors (TypeScript)
Create a class that inherits the Javascript Error class to use it when
throwing errors on the TypeScript client when the ok property of the
Fetch API Response object is false, which means that the server
responded with a status code less than 200 or greater than 299.

The APIError class contains apart of the message, the response status
code which may be useful for the caller to decide what to do, for
example, it may decide to retry the call on certain response status
errors.

Change-Id: Ic48466b40cbf134a27d5c92a4af9f93232e84fca
2023-10-25 14:43:00 +02:00
..
scripts scripts/wasm, worker: fixed wasm module caching issue 2023-10-19 12:55:06 +03:00
src private/apigen: Create class for API errors (TypeScript) 2023-10-25 14:43:00 +02:00
static web/satellite: update signup pages plus logo (#6409) 2023-10-12 18:05:44 +02:00
tests/unit web/satellite: use modal instead of old create project view 2023-10-02 22:07:12 +00:00
vuetify-poc/src web/satellite/vuetify-poc: add keyboard controls for gallery view 2023-10-24 19:24:31 +00:00
.env satellite/console,web/satellite: Change Vuetify app prefix to "v2" 2023-10-17 22:12:46 +00:00
.eslintignore web/satellite: lint Vuetify files 2023-07-17 20:32:59 +00:00
.eslintrc.js web/satellite/vuetify-poc: improve keyboard navigation for sidebars 2023-10-18 21:44:10 +00:00
.gitignore scripts/wasm, worker: fixed wasm module caching issue 2023-10-19 12:55:06 +03:00
.stylelintignore web/satellite: vuetify POC 2023-06-10 00:59:40 +00:00
.stylelintrc.js web/satellite: fix linter 2022-09-09 11:02:04 +00:00
build-if-changed.sh build: fix conditional run of web builds 2022-08-11 14:34:44 +00:00
build.sh web/satellite: Update build script to build vuetify app 2023-08-22 13:55:10 +00:00
index-vuetify.html web/satellite/vuetify-poc: add functionality to add credit cards 2023-08-14 09:45:53 +00:00
index.html web/satellite: migrate webpack to vite 2023-05-30 09:25:30 +00:00
package-lock.json web/satellite: update vuetify dependency 2023-09-21 15:55:40 +00:00
package.json web/satellite: update vuetify dependency 2023-09-21 15:55:40 +00:00
README.md web/satellite,satellite/console: Overhaul password reset 2021-08-12 17:40:53 +00:00
tsconfig.json web/satellite: vuetify POC 2023-06-10 00:59:40 +00:00
vite.config-vuetify.js web/satellite, satellite/analytics: add UI type to analytics properties 2023-10-13 11:43:54 +00:00
vite.config.js satellite/{web,console}: enable/disable billing features depending on config value 2023-10-18 21:00:43 +00:00
vitest.setup.ts web/satellite: migrate webpack to vite 2023-05-30 09:25:30 +00:00

storj-dev-panel

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Run your tests

npm run test

Lints and fixes files

npm run lint

Run your unit tests

npm run test:unit

Build docker container

From root of the repository, run:

make satellite-ui-image

Run docker container

docker run -p 8080:8080 storjlabs/satellite-ui:latest

1. Project structure:

  • src folder: contains main project components such as api, store, router, etc.
  • static folder: contains all project static resources such as images, fonts, pages.
  • tests folder: - contains project unit tests.
  • configuration files.

src

  • api folder: contains API for project modules such as auth, project, etc. We are using both GraphQL and HTTP implementations.
  • components folder: contains hierarchy of vue single file components sorted thematically.
  • router folder: contains project browser locations structure file.
  • store folder: contains global state management file broken into modules.
  • types folder: contains project classes and types.
  • utils folder: contains constants, plugins and utility files for formatting, validation, data transferring, etc.
  • views folder: same as components, but for root ones.
  • App.vue root project component.
  • main.ts Vue instance initialization file. Here filters and declarations are placed. Also plugins, store and router are connecting to Vue instance.

static

  • activation folder: contains page template that appears after account verification via email.
  • emails folder: contains all emails templates.
  • errors folder: contains 50x and 40x error pages templates.
  • fonts folder: contains Inter font sets in ttf format.
  • images folder: contains illustrations.
  • reports folder: contains usage report table template.

tests

  • unit folder: contains project unit tests.

Configuration files

  • .env: file for environment level variables.
  • .gitignore: folders, files and extensions which are ignored for git.
  • babel.config.js: babel configuration for javascript transcompilation.
  • index.html: DOM entry point.
  • jestSetup.ts: jest configuration for unit testing.
  • package.json: file holds various metadata relevant to the project such as version, dependencies, scripts and configurations.
  • tsconfig.json: holds TypeScript configurations.
  • tslint.json: holds TypeScript linter configurations.
  • vue.config.js: holds Vue configurations.