[go: nahoru, domu]

Skip to content

Commit

Permalink
Add basic readme and icon for 'store' page. (#7078)
Browse files Browse the repository at this point in the history
* Basic readme for 'store' page. Add icon for 'store' page

* format

* Basic readme for 'store' page. Add icon for 'store' page

* Update icon

* update readme

* Update icon

* format

* edit name
  • Loading branch information
hlshen committed May 7, 2024
1 parent 2fdf73b commit c80f5a8
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 65 deletions.
10 changes: 10 additions & 0 deletions firebase-vscode/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Change Log

## 0.1.8

- Update Extensions page Logo
- Update README for Extensions page
- Emulator Bump 1.1.15

## 0.1.7

- Emulator Bump 1.1.14

## 0.1.6

- Fix deploy command
Expand Down
73 changes: 9 additions & 64 deletions firebase-vscode/README.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,12 @@
# firebase-vscode README
# Firebase Extension

This extension is in the development and exploration stage.
VSCode extension for Firebase. The Firebase Extension currently supports the Data Connect product.

## Running
## Data Connect features

1. In order to make sure f5 launches the extension properly, first open your
VS Code session from the `firebase-vscode` subdirectory (not the `firebase-tools` directory).
2. npm i (run this in both `firebase-tools` and `firebase-vscode`)
3. Make sure the extension `amodio.tsl-problem-matcher` is installed - this
enables the watcher to work, otherwise the Extension Development Host
will not automatically open on F5 when the compilation is done.
4. f5 to run opens new window
f5 -> npm run watch defined in tasks.json
My terminal didn't have npm available but yours might

Workaround if f5 doesnt work:

1. Execute `npm run watch` from within the vscode directory
Aside: Running `npm run watch` or `npm run build` the extension is compiled into dist (extension.js)
Changing code within extension is hot-reloaded
Modifying extensions.js will not hot-reload
source file src/extension.ts
2. Wait for completion
3. Hit play from the left nav

New code changes are automatically rebuilt if you have `watch` running, however the new VSCode Plugin-enabled window will not reflect changes until reloaded.
Manual reload from new window: "Developer: Reload Window" Default hotkey: cmd + R

The communication between UI and extension done via the broker (see webview.postMessage)
Web view uses react (carry-over from the hackweek project courtesy of Roman and Prakhar)

## Structure

Extention.ts main entry point, calls sidebar.ts and workflow.ts
sidebar.ts loads the UI from the webviews folder
workflow.ts is the driving component (logic source)
cli.ts wraps CLI methods, importing from firebase-tools/src

When workflow.ts needs to execute some CLI command, it defers to cli.ts

## State

currentOptions maintains the currentState of the plugin and is passed as a whole object to populate calls to the firebase-tools methods
`prepare` in the command includes a lot of

## Logic

Calling firebase-tools in general follows the stuff:

1. instead of calling `before`, call `requireAuth` instead
requireAuth is a prerequisite for the plugin UI, needed
Zero-state (before login) directs the user to sign in with google (using firebase-tools CLI)
2. prepare is an implicit command in the cmd class
3. action

requireAuth -> login with service account or check that you're already logged in via firebase-tools

## Open issues

Login changes in the CLI are not immediately reflected in the Plugin, requires restart
If logged-out in the middle of a plugin session, handle requireAuth errors gracefully
Plugin startup is flaky sometimes
Unit/Integration tests are not developed
Code cleanliness/structure TODOs
tsconfig.json's rootDirs includes ["src", "../src", "common"] which causes some issues with import autocomplete
Three package.jsons - one for monospace and one for the standalone plugin, and then root to copy the correct version
- Inline CodeLenses allow for one-click execution of operations
- Pass in arguments
- Impersonate user authentication
- Generate queries and mutations from your schema with one click
- Run against the emulator for offline development
- Deploy and execute against production
67 changes: 67 additions & 0 deletions firebase-vscode/README_DEV.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# firebase-vscode README

This extension is in the development and exploration stage.

## Running

1. In order to make sure f5 launches the extension properly, first open your
VS Code session from the `firebase-vscode` subdirectory (not the `firebase-tools` directory).
2. npm i (run this in both `firebase-tools` and `firebase-vscode`)
3. Make sure the extension `amodio.tsl-problem-matcher` is installed - this
enables the watcher to work, otherwise the Extension Development Host
will not automatically open on F5 when the compilation is done.
4. f5 to run opens new window
f5 -> npm run watch defined in tasks.json
My terminal didn't have npm available but yours might

Workaround if f5 doesnt work:

1. Execute `npm run watch` from within the vscode directory
Aside: Running `npm run watch` or `npm run build` the extension is compiled into dist (extension.js)
Changing code within extension is hot-reloaded
Modifying extensions.js will not hot-reload
source file src/extension.ts
2. Wait for completion
3. Hit play from the left nav

New code changes are automatically rebuilt if you have `watch` running, however the new VSCode Plugin-enabled window will not reflect changes until reloaded.
Manual reload from new window: "Developer: Reload Window" Default hotkey: cmd + R

The communication between UI and extension done via the broker (see webview.postMessage)
Web view uses react (carry-over from the hackweek project courtesy of Roman and Prakhar)

## Structure

Extention.ts main entry point, calls sidebar.ts and workflow.ts
sidebar.ts loads the UI from the webviews folder
workflow.ts is the driving component (logic source)
cli.ts wraps CLI methods, importing from firebase-tools/src

When workflow.ts needs to execute some CLI command, it defers to cli.ts

## State

currentOptions maintains the currentState of the plugin and is passed as a whole object to populate calls to the firebase-tools methods
`prepare` in the command includes a lot of

## Logic

Calling firebase-tools in general follows the stuff:

1. instead of calling `before`, call `requireAuth` instead
requireAuth is a prerequisite for the plugin UI, needed
Zero-state (before login) directs the user to sign in with google (using firebase-tools CLI)
2. prepare is an implicit command in the cmd class
3. action

requireAuth -> login with service account or check that you're already logged in via firebase-tools

## Open issues

Login changes in the CLI are not immediately reflected in the Plugin, requires restart
If logged-out in the middle of a plugin session, handle requireAuth errors gracefully
Plugin startup is flaky sometimes
Unit/Integration tests are not developed
Code cleanliness/structure TODOs
tsconfig.json's rootDirs includes ["src", "../src", "common"] which causes some issues with import autocomplete
Three package.jsons - one for monospace and one for the standalone plugin, and then root to copy the correct version
3 changes: 2 additions & 1 deletion firebase-vscode/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"name": "firebase-vscode",
"displayName": "firebase-vscode",
"displayName": "Firebase",
"publisher": "firebase",
"icon": "./resources/firebase_logo.png",
"description": "VSCode Extension for Firebase",
"version": "0.1.6",
"engines": {
Expand Down
Binary file added firebase-vscode/resources/firebase_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c80f5a8

Please sign in to comment.