JDawes-ScottLogic / ContainerJS

ContainerJS provides an abstraction layer over multiple HTML5 containers (OpenFin, Electron, Browser), that follows the Symphony Desktop APIs

Home Page:https://symphonyoss.github.io/ContainerJS/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ContainerJS

Build Status Build Status Symphony Software Foundation - Incubating Gitter

Please visit the ContainerJS website for information on getting started, and end-user API documentation.

Development

This project is a mono-repo, i.e. multiple distinct projects within the same Git repository. This project uses Lerna to manage the dependencies between these projects and their release process.

To get started, run the following from the project root:

npm install
npm run build

This will install Lerna and run lerna bootstrap, which runs npm install on all the sub-projects, and links any cross dependencies.

If you want to see ContainerJS in action, the api-demo project has a fully-featured demo that can be run against various containers.

The ContainerJS repo contains the following:

  • api-specification - the ContainerJS API specified in TypeScript.
  • api-browser, api-electron, api-openfin - various container-specific implementations of this API.
  • api-tests - a common suite of UI automation tests that exercise the API.
  • api-demo - a ContainerJS demo application.
  • api-utility - utility code that is common to the various containers.
  • api-symphony-compatibility, api-symphony-demo - an alternative ContainerJS API that is being debated via the Symphony Foundation Desktop Wrapper Working Group.

Website Development

The website can be found in the docs folder. It is a Jekyll site, which is hosted via GitHub. The API documentation is generated from the TypeScript interfaces within the api-specification package. To run this build execute the following:

npm run docs

Tests in Documentation

The documentation also contains the results of the last test runs. To include the test output in the docs:

Within the api-test package,

npm run test:ci

this will run the tests for the browser, electron, and OpenFin, and put the results into the api-tests\coverage folder.

Next run

npm run report

This will generate the test files into the api-specification package. Now the test results will be built into the documentation with:

npm run docs

inside the api-specification package.

Release

To release the packages to npm, run

npm run publish

and follow the instructions. This will create a publish commit, which can then be pushed and merged. To push the tags created by lerna, use

git push <remote> --tags

If lerna has errors about git tags, they may need to be deleted using this command.

git tag | xargs git tag -d

and rerun the publish command.

Note that you will need to be logged into npm on the command line, as well as having the required permission to push to the npm repository for publish to succeed.

About

ContainerJS provides an abstraction layer over multiple HTML5 containers (OpenFin, Electron, Browser), that follows the Symphony Desktop APIs

https://symphonyoss.github.io/ContainerJS/

License:Apache License 2.0


Languages

Language:JavaScript 50.9%Language:TypeScript 43.0%Language:HTML 4.9%Language:PowerShell 0.8%Language:Shell 0.3%Language:CSS 0.1%