Version 2. Technical stack to build single page application.
Fetching latest commit…
Cannot retrieve the latest commit at this time.



master develop

Dependencies Status Dev Dependencies Status Peer Dependencies Status

Package Quality

Currently in dev

Technical stack for spa application.


Here is the library structure. It works with focus components.

  • Structure:
index.js //entry point
__application/ //All application related functions/ helper
__definition/ // all the domain and metadata informations
__component // Component functions /helper
__helper // Global helpers
__exception // Global exceptions using error object
__network // Network layer (fech, //)
__router // Router related functions.
__store //Store related methods
__util //Utility functions

Unit tests

All unit tests are written with mocha, and can be launched using the npm run test command. It uses mocha.

debug unit tests npm run test:debug


  • Focus is written using the latest JS standards (ECMASCRIPT6/2015) and uses babeljs to transpile into ES5 for the browser.
  • React is used as a view layer / rendering engine.
  • Lodash is used to provide lots of helpfull standard utility functions.

Documentation and help

See our wiki See our documentation

How to build the lib

The build system is made with gulp which is a node base build system. Then you have to launch the following command: npm run build which generates two outputs: one for the browser, one for node js (expecially for unit tests purpose). All build dependencies are listed into the devDependencies of the package.json file.


npm run eslint in order to see your errors.


In order to install all your dependencies: npm install --no-optional


The browser build is inside the dist/focus.js

Node js

Focus is publish under the name focusjs on npm. In order to use focus you can user require('focus') You can require submodules of focus such as the network: require('focus/network/fetch') or require('focus').network.fetch.