@capsulajs/capsulahub-workspace v0.0.2-feature-improve-table.1561531308.51
Workspace
The main core service of Capsulahub, it is responsible for:
- Loading services and components according to its configuration;
- Allowing services to register themselves;
- Letting services and components communicate together;
- Exposing to the services their configuration.
Install
NPM
To install the package from NPM registry you should run
yarn add @capsulajs/capsulahub-workspaceor
npm install @capsulajs/capsulahub-workspaceCDN
You can get the default export from the link
https://capsulajs.s3.amazonaws.com/develop/capsulahub-workspace/index.jsExports
Default
WorkspaceFactory class.
Named (API)
The public API of Workspace.
Usage
Then you can create a Workspace as following:
import WorkspaceFactory, { API } from '@capsulajs/capsulahub-workspace';
const workspaceFactory = new WorkspaceFactory();
let workspace: API.Workspace;
workspaceFactory.createWorkspace({ 
  token: 'http://localhost:3000/configuration/workspace.json',
  configProvider: 'httpFile'
})
    .then((response) => {
      workspace = response;
      console.log('The workspace has been created', workspace)
    })
     .catch((error) => {
       console.log('an error has occurred while creating a workspace', error)
     });API
CDN
The documentation about public API.
Local
Run
yarn docAnd open doc/index.html in browser.
Configuration
An example of WorkspaceConfiguration:
{
  "name": "baseWorkspace",
  "services": [
    {
      "serviceName": "ServiceA",
      "path": "http://localhost:3000/services/serviceA.js",
      "definition": {
        "serviceName": "ServiceA",
        "methods": {
          "greet": { "asyncModel": "requestResponse" }
        }
      },
      "config": { "name": "serviceA", "message": "what pill would you choose: red or blue?" }
    },
    {
      "serviceName": "ServiceB",
      "path": "http://localhost:3000/services/serviceB.js",
      "definition": {
        "serviceName": "ServiceB",
        "methods": {
          "getRandomNumbers": { "asyncModel": "requestStream" }
        }
      },
      "config": { "name": "serviceB" }
    }
  ],
  "components": {
    "layouts": {
      "grid": {
        "componentName": "web-grid",
        "nodeId": "root",
        "path": "http://localhost:3000/widgets/Grid.js",
        "config": { "title": "Base Grid" }
      }
    },
    "items": {
      "request-form": {
        "componentName": "web-request-form",
        "nodeId": "request-form",
        "path": "http://localhost:3000/widgets/RequestForm.js",
        "config": { "title": "Base Request Form" }
      }
    }
  }
}Configuration can be changed in cdn-emulator package in "./src/configuration". The name of json file should always be workspace.json.
The extensions also can be changed in cdn-emulator package (don't forget to update configuration file after creating new extensions).
Build
yarn buildBuilds es-modules version (in lib folder) for NPM and bundle version (in dist folder) for CDN.
Example
In order to open a simple example you should run localhost:3000 with extensions included there.
In order to do it you should go to cdn-emulator package:
cd ../cdn-emulatorAnd run:
yarn startIn a different terminal you should go to workspace package:
cd packages/workspaceAnd run:
yarn startYou will be able to open an example on localhost:1234.
This example is also being used for running Cypress tests on it.
Licence
CapsulaHub and related services are released under MIT Licence.
Back to the Main Page
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago