exkit
v0.0.2
Published
framework for creating chrome, firefox and opera extensions
Downloads
4
Readme
Introduction
Exkit (Extension Kit) is a framework for creating modern, javascript based cross-platform browser extensions. Write your extension once and compile it for opera, chrome and safari at the same time - without any extra effort!
How does it work?
Exkit tries to be a abstraction layer on top of the browser API. You communicate with exkit, exkit with your browser. Because of that, exkit can rapidly swap out the browser layer and replace it with a different one during build. Right now supported are: opera, firefox and chrome.
Getting started
- Install exkit by running
npm install -g exkit
- Init your project by running
exkit init <project name>
. Exkit will attempt to install itself into the dir by runningnpm install
. If you don't have a internet connection, this will fail - Run
exkit build
orexkit build <firefox / chrome / opera
to compile
Structure
Because exkit is a framework, you currently need to stick to the directory structure it requires.
src/
- is all your js code. must contain amain.js
as your entry point. es6 is fully available here and will get transpiled into es5 javascript upon buildresources/
- all your resources as images, html fields and moreexkit.json
- must be in the project root. Configures exkit and provides config parameters for browser specific config jsons. make sure to check the example exkit.json for configuring exkit
Functionality
Exkit is still in a very very early phase and will very likely miss features you need. Currently available are:
browser
: Interop for browser based functionalty
createTab(url)
: creates a new browser tabsetButtonIcon(fileurl)
: updates the icon to<fileurl>
setButtonLabel(text)
: sets the button label to<text>
event
: Browser independent event system
event is a global event system built on top of the browsers event system. Event can bind events that are getting emited by page-worker, and receives exkit-button-clicked
on browserAction clicks.
bind(name, callback)
: executes<callback>
whenever<name>
is getting fired. Callback is receiving apayload
(data) andanswer
parameter. Answer is a function to pass a answer back to the event callerfire(name, payload, callback)
: fires<name>
with<payload>
as data and<callback>
for when the binding function calls<answer>
.
exkit
: Exkit framework functions
init()
: inits exkit
Future
Pull requests welcome!