The repo currently contains some hardcoded paths and other things specific to my system.
I will work on generalizing this when I can!
- I used nodejs
20.11.1
at time of dev. Any version after18
should work - Uses
yarn
as pkg manager
- add
.env.dev
and.env.prod
to root according to.env.template
- run
yarn install
- run
yarn dev
to load the web extension into firefox with hot reloading - you will need to load an unpacked extension for chrome following this
- run
yarn watch
to start the typescript watch process - you may now code away! thanks to
web-ext
, Firefox will hot reload on code changes, but Chrome will require "Updating" the extension through "Manage extension"
- cd into
server
dir - add
.env.dev
and.env.prod
according to.env.template
- run
yarn install
- run yarn
start:dev
Follow this link to debug: https://extensionworkshop.com/documentation/develop/debugging/
- about:debugging
- about:addons
- chrome://extensions
- storage: used to store values needed for the extension to work:
- room id - this is generated via nanoid
- user id - this is generated via nanoid
- enabled - determines whether extension is enabled without needing to uninstall. user controlled via popup.
- clipboardWrite: used only for copying the room id to clipboard for easy sharing
- Create local CA and cert via mkcert
- run
mkcert -install
- web-ext opens a temp firefox window that will require importing local CA
- in
about:config
, ensuresecurity.enterprise_roots.enabled
istrue
- in
about:preferences#privacy
, scroll to "Certificates" and click "View Certificates > Authorities > Import". Your local CA should be in~/Library/Application Support/mkcert
- in
- may need to reload the extension if api calls to https still fail
- Run
yarn prepare-release
- A
.zip
will be put into therelease-artifacts
dir