Skip to main content

Hyperion Introduction

Hyperion is thin and high performance layer that enables adding aspects to JavaScript.

With aspects, we can avoid littering the main application code with auxilary logic and you can keep all of the related logic of a particular aspect in one place.

Hyperion enables intercepting function, class methods, and attribute accesses on object. This interception enables unparallel level of "observability" and "control" for aspects.

Hyperion's interception is designed carefully to be JIT friendly with very little performance overhead. The module setup is "tree-shaking" friendly so that you only endup with code that your application really need. Hyperion works well with deep-prototype chains on classes and can eaisly handle inconsistent prototype chains of DOM Classes among various browser implementations.

Hyperion source code is devided into separate packages to make code dependencies explicit and corresponding modules very composable. Please refer to the packages section to see the purpose of each subcomponents of Hyperion.

Getting Started

First install hyperion from npm

npm install hyperionj

Now you should decide which feature of Hyperion you want to use. Refer to packages for various features.

Buidling code

Once you clone the code, install packages and build the code

git clone https://github.com/facebook/hyperion.git
cd hyperion
npm install
npm run install-packages
npm run build
npm test

You can try a test application via the following

npm run start -w @hyperion/hyperion-react-testapp

Once the application opens a new browser tab, make sure to open dev console to see various types of events events firing.