Minimal speed-dial extension with support for keyboard shortcuts & importing Speed Dial pages
- Node (using version in
.nvmrc) - yarn (can be installed using just
npm install --global yarn)
yarn install --emoji
yarn run buildyarn install --emoji
yarn run build
yarn start
# in another terminal window/tab
yarn run watchyarn install --emoji
yarn run build
yarn test
# for test coverage (`coverage/lcov-report/index.html` will be generated)
yarn run coverageyarn install --emoji
NODE_ENV=production yarn run build
yarn run package- Make sure you've made a release commit that only updates the version and have a
Release <version>:smiley:message - Clone the repo locally and zip it (to upload it later to Mozilla). Using something like
cd <path-to-use> && git clone <local-repo-path> && zip -r speed-dial-quantum.zip speed-dial-quantum - Go to extension's Mozilla page and submit packaged extension (enabling only desktop platforms and not Android) and don't forget to upload the cloned local repo (required by Mozilla because the code is transformed using Rollup, etc...)
- Go to extension's Chrome store page and submit packaged extension and don't forget to publish it
- Run
yarn outdated --emoji - Check changelogs from URLs
- Run
yarn upgrade --emoji - Run
yarn add <package>@^<version> --emojifor breaking updates - Run
yarn run auditto check for vulnerabilities - Make sure
yarn run {build,package,test,watch}still work correctly
cd vendor- Download using
wget -O <dep-name>-<dep-version>.<dep-extension> <dep-url> - Run
cat <dep-file-name> | openssl dgst -sha384 -binary | openssl base64 -A - Copy output and add it as an
integrityHTML atribute - Update HTML's tag reference (
hreforsrc) - Remove older version files
- Try the extension and make sure everything works
yarn run clean
Thumbnail(
id: String,
groupId: String,
title: Option[String],
url: Option[String],
// @deprecated
imgUrl: Option[String],
faviconImgUrl: () => String
)
Group(
id: String,
name: String,
rows: Option[Int],
cols: Option[Int],
thumbnailImgSize: Option["auto" | "small" | "medium" | "large"],
thumbnails: () => Array[Thumbnail],
)
Tab(groups: Array[Group], thumbnails: Array[Thumbnail])Tab#groups.map(g => g.thumbnails().length).sum() == Tab#thumbnails.length- Keyboard shortcuts only work when the page is focused (because a content script is used)
Altshortcuts don't work properly on Firefox Windows:sweat_smile:
- Replace injected web scripts with global shortcut
- Add specs for
tabandthumbnailentites - Auomated tests, better architecture, etc...