dynel-core

0.0.83 • Public • Published

Dynamic Elements - Core Framework

Build Status Code Climate

Dynamic Elements is a JavaScript framework for building modular component-based applications. It can be used for building both web applications or Node.js applications.

  • The Core Framework provides the basic building blocks of a Dynamic Elements application.
  • The Data Framework builds on the Core Framework for classes to work with business data, including model objects with well-defined data types, and collections.
  • The UI Framework provides support for building UI elements for your web applications that can be tied to your business data.

Getting Started

To get started using Core Framework in a Node.js application, you just need to install the dynel-core package and it's dependencies:

npm install dynel-core

Core Framework provides the building blocks for building functional components, using a combination of classical inheritance and composition using mixins.


CoreObject and Classical Inheritance

Dynamic Elements classes are derived from CoreObject. The following example demonstrates how to create a derived class from CoreObject:

var CoreObject = require('dynel-core').CoreObject;

var HelloWorld = CoreObject.extend({
    className: 'HelloWorld',

run: function() {
	console.log('Hello World!');
}
});

var hello = new HelloWorld();
hello.run();

Mixins and Composition

Dynamic Elements classes support components called mixins, which add state and/or functionality to an object. Mixins are plain old JavaScript objects.

The following example demonstrates how to create a class that is composed of multiple mixins:

var Hello = {
	hello: function() {
		console.log('Hello ');
	}
};
var World = {
    world: function() {
		console.log('World!');
	}
};


 var HelloWorld = CoreObject.extend({
	className: 'HelloWorld',
	
	mixins: [
		Hello,
		World
	],
	
	run: function() {
		this.hello();
		this.world();
	}
});

var hello = new HelloWorld();
hello.run();

Mixins can also be composed of other mixins:

var Hello = {
	hello: function() {
		console.log('Hello ');
	}
};
var World = {
    mixins: [ 
	Hello
    ],
    world: function() {
		console.log('World!');
	}
};

 var HelloWorld = CoreObject.extend({
	className: 'HelloWorld',
	
	mixins: [
		World
	],
	
	run: function() {
		this.hello();
		this.world();
	}
});

var hello = new HelloWorld();
hello.run();

Event Sources

The Core Framework includes a mixin for listening for and emitting events. It is similar to the Node.js EventEmitter, but is designed as a simple mixin that can be added to Dynamic Elements objects.

var EventSource = require('dynel-core').EventSource;

var HelloWorld = CoreObject.extend({
className: 'HelloWorld',

    mixins: [
  EventSource 
],

run: function() {
	this.emit('HelloWorld', 'Hello World!');
}
});

var hello = new HelloWorld();
hello.on('HelloWorld', function(data) {
   console.log(data);
});
hello.run();

Package Sidebar

Install

npm i dynel-core

Weekly Downloads

1

Version

0.0.83

License

MIT

Last publish

Collaborators

  • geraldfvds