Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

havana-component-compiler

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

havana-component-compiler

A component compiler

  • 0.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Havana component compiler

Build Status

A component compiler.

Havana component compiler works with an HTML response handler such as Havana component handler or a library with an interchangeable API. When a response handler publishes a components.compile event Havana component compiler will iterate over the components array and in turn publish a component.render event for each component. It is Havana component compilers job to do this in the correct order, waiting until all child components have been rendered before attempting to render the parent component.

Havana component renderer or a library with an interchangeable API consume the component.render events. On render completion of each component the component renderer will publish a component.rendered event containing the rendered HTML string. Once a component.rendered event has been published for each component Havana component compiler will concatenate the HTML strings and then publish the components.compiled event for consumption by the response handler.

How to install

npm install havana-component-compiler

How to use

import ComponentCompiler from 'havana-component-compiler';
import ComponentHandler from 'havana-component-handler';
import Event from 'havana-event';
import Router from 'havana-router';
import Server from 'havana-server';

const event = new Event();

const reporting = {
  'level': 2, 
  'reporter': console.log,
};

const server = new Server({
  'event': event,
  'reporting': reporting,
});

new Router({
  'event': event,
  'reporting': reporting,
  'routes': [
    {
      'url': '/',
      'method': 'GET',
      'components': [
        {
          'component': 'page',
          'properties': {
            'content': 'Hello world',
          },
        },
      ],
    },
  ],
});

new ComponentCompiler({
  'event': event,
  'reporting': reporting,
});

// Add a component renderer here

new ComponentHandler({
  'event': event,
  'reporting': reporting,
});

server.listen( 3000 );

Event list

Events take the form of Havana event or a library with an interchangeable API.

Publish

  • component.render: Signifies that Havana component compiler requires a component renderer to render a component object into an HTML string.
  • components.compiled: Signifies that all components have been rendered and concatenated into an HTML string for consumption by a response handler.

Subscribe

  • components.compile: Allows a response handler to notify Havana component compiler that it requires a components array rendered to an HTML string.
  • component.rendered: Allows a component renderer to notify Havana component compiler that it has completed rendering a component.

ES2015+

Havana component compiler is written using ES2015+ syntax.

However, by default this module will use an ES5 compatible file that has been compiled using Babel.

Havana component compiler currently requires the Babel polyfill. In the dist directory there are two files, the default compiler.js and compiler.with-polyfill.js that includes the Babel browser polyfill.

Keywords

FAQs

Package last updated on 08 Aug 2015

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc