1.0.0 • Published 6 years ago

econ v1.0.0

Weekly downloads
2
License
-
Repository
github
Last release
6 years ago

Event Containers

Build Status npm version Downloads DeepScan grade Chat on Gitter

Extension of TypeScript-STL Containers dispatching Events.

TSTL is an open-source project providing features of STL, migrated from C++ to TypeScript. You can enjoy the STL's own specific containers, algorithms and functors in the JavaScript. If TypeScript, you also can take advantage of type restrictions and generic programming with the TypeScript.

ECON is an extension module of such TSTL, providing special containers dispatching events. The special containers are almost similar with the original STL Containers, but you also can observe elements' I/O events with the special containers. Types of the event dispatched by the special containers are "insert", "erase" and "refresh".

Features

Linear Containers

  • Vector
  • Deque
  • List
  • VectorBoolean

Set Containers

  • Tree-based Containers
    • TreeSet
    • TreeMultiSet
  • Hash-buckets based Containers
    • HashSet
    • HashMultiSet

Map Containers

  • Tree-based Containers
    • TreeMap
    • TreeMultiMap
  • Hash-buckets based Containers
    • HashMap
    • HashMultiMap

Installation

NPM Module

Installing ECON in NodeJS is very easy. Just install with the npm.

# Install TSTL from the NPM module
npm install --save econ

Usage

import econ = require("econ");

function listener(event: econ.TreeMap.Event<number, string>): void
{
    console.log("Event type is: " + event.type);

    for (let it = event.first; !it.equals(event.last); it = it.next())
        console.log("\t", "An element by that event:", it.value);
}

function main(): void
{
    // CONSTRUCT EVENT TREE-MAP
    let map: econ.TreeMap<number, string> = new econ.TreeMap();
    map.addEventListener("insert", listener);
    map.addEventListener("erase", listener);

    // DISPATCHES INSERT EVENT
    map.set(1, "One");
    map.set(2, "Two");
    map.set(3, "Three");

    // DISPATCHES ERASE EVENT
    map.erase(2);
    map.erase(3);
}
main();

References