/scala-js-browser-extension-example

Example web browser extension written in Scala

Primary LanguageScalaOtherNOASSERTION

Scala.js Browser Extension Example

Example web browser extension in Scala.

This project uses:

Example

sbt universal:packageBin
cd plugin/target/universal/
unzip plugin-0.1.0-SNAPSHOT.zip

The extracted plugin-0.1.0-SNAPSHOT folder can be loaded into chrome via chrome://extensions/ and use Load Unpacked (ensure developer mode is turned on).

TODO

  • Fix CI workflow
  • Generate index.html dynamically based upon fastOptJS vs fullOptJS.
  • Split scala-js dependencies into separate .js files to improve compilation speed.
  • Look into unit testing via mockzilla-webextension
  • Verify Firefox compatibility
  • Add background script example
  • Figure out npm run dev equivalent workflow
  • Figure out/understand asset-manifest.json usage

References

Original React inspiration from Chrome Extension Kit

Contributing

The scala-js-browser-extension-example project welcomes contributions from anybody wishing to participate. All code or documentation that is provided must be licensed with the same license that scala-js-browser-extension-example is licensed with (Apache 2.0, see LICENCE).

People are expected to follow the Scala Code of Conduct when discussing scala-js-browser-extension-example on GitHub, Gitter channel, or other venues.

Feel free to open an issue if you notice a bug, have an idea for a feature, or have a question about the code. Pull requests are also gladly accepted. For more information, check out the contributor guide.

Copyright

Copyright 2022 Eric Peters & scala-js-browser-extension-example contributors.

License

All code in this repository is licensed under the Apache License, Version 2.0. See LICENCE.