Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@capsulajs/capsula-hub

Package Overview
Dependencies
Maintainers
4
Versions
55
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@capsulajs/capsula-hub

[![Build Status](https://travis-ci.com/capsulajs/capsulahub.svg?branch=develop)](https://travis-ci.com/capsulajs/capsulahub)

latest
Source
npmnpm
Version
0.0.9
Version published
Maintainers
4
Created
Source

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.

Keywords

service

FAQs

Package last updated on 16 Jun 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts