0.0.9 • Published 5 years ago

@capsulajs/capsula-hub v0.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

Build Status

Capsula Hub

Description

An awesome tool to develop and test your micro-frontend services !

Install

In your project, run $ npm install --save-dev @capsulajs/capsula-hub or $ yarn add -D @capsulajs/capsula-hub. If you want to use capsula-hub command directly, you can install it globally.

Usage

capsula-hub run [options]

Options:
  -l, --local <path-to-file>  Run with local configuration file
  -p, --port <port>           Run on specified port (default 55555)

Configuration

The configuration should be a js file that exports an object which match this API.

Example: config.js

module.exports = {
  name: 'my-app',
  services: [
    {
      serviceName: 'myServiceA',
      path: 'https://my-cdn/my-service-a',
      definition: {
        serviceName: 'myServiceA',
        methods: {
          myMethod1: { asyncModel: 'RequestResponse' },
          myMethod2$: { asyncModel: 'RequestStream' },
        }
      },
      config: {}
    },
    {
      serviceName: 'myServiceB',
      path: 'https://my-cdn/my-service-b',
      definition: {
        serviceName: 'myServiceB',
        methods: {
          myMethod1: { asyncModel: 'RequestResponse' },
          myMethod2: { asyncModel: 'RequestResponse' },
        }
      },
      config: {}
    },
  ],
  components: {
    layouts: {
      grid: {
        componentName: 'my-grid',
        path: 'http://my-cdn/components/Grid.js',
        config: { title: 'Base Grid' },
       },
    },
    items: {
      myItem: {
        componentName: 'my-item',
        path: 'http://my-cdn/components/myItem.js',
        config: { title: 'Base Item' },
      },
    }
  }
};

Develop your extension

An extension is a service or a web component that is loaded by CapsulaHub. The extension should look like this:

import { Workspace } from '@capsulajs/capsulahub-core-workspace';
export default (workspace: Workspace, config: object): Promise<void> => {
  // your code here
};

workspace and config are injected by the application in the extension.

workspace is matching this API and could be use in particular to allow the service to register itself.

config contains the configuration for this specific extension that you passed in the configuration file (e.g: configuration_file.services.['myExtension'].config for myExtension service).

For more details, take a look at this example file.

License

CapsulaHub is released under MIT License.

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago

0.0.0

5 years ago