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 build
yarn install --emoji
yarn run build
yarn start
# in another terminal window/tab
yarn run watch
yarn install --emoji
yarn run build
yarn test
# for test coverage (`coverage/lcov-report/index.html` will be generated)
yarn run coverage
yarn 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> --emoji
for breaking updates - Run
yarn run audit
to 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
integrity
HTML atribute - Update HTML's tag reference (
href
orsrc
) - 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)
Alt
shortcuts don't work properly on Firefox Windows:sweat_smile:
- Replace injected web scripts with global shortcut
- Add specs for
tab
andthumbnail
entites - Auomated tests, better architecture, etc...