JavaScripting

The definitive source of the best
JavaScript libraries, frameworks, and plugins.


  • ×

    common, streamable interface for synchronizing data
    Filed under 

    • 🔾35%Overall
    • 1,010
    • 27.5 days
    • 🕩27
    • 👥3

    ⚠️ This library is no longer maintained, and should not be used in production applications.

    Build Status Coverage Status Join the chat at https://gitter.im/crcn/mesh.js

    Mesh is a utility library for async iterable iterators.

    Motivation

    This library was originally created to handle complex data flows, and unify how applications communicate internally and externally. It also serves as a single channel for all communication which makes it more easy to control & reason about how your application is passing around data asynchronously.

    Mesh provides a set of higher order functions that you can use to build your data flows out. Here's an example of that:

    import { when, wrapAsyncIterableIterator, fallback } from "mesh";
    import { 
      DS_FIND, 
      DS_INSERT, 
      DS_REMOVE, 
      DS_UPDATE, 
      dataStore, 
      DSFindMessage,
      whenCollection,
      DSInsertMessage,
      DSRemoveMessage,
      DSUpdateMessage,
    } from "mesh-ds";
    
    const insertTodoItem = (message: DSInsertMessage) => (
      wrapAsnycIterableIterator(fetch('/api/todos', {
        method: 'POST',
        body: message.data
      }))
    );
    
    const insert = fallback(
      whenCollection('todos', insertTodoItem),
    
      // more collections below
      // whenCollection('users', insertUser),
      // whenCollection('items', insertItem),
    );
    
    const dsDispatch = dataStore({
      [DS_INSERT] : insert,
    
      // other operations - similar code to insert
      //[DS_REMOVE] : remove,
      //[DS_UPDATE] : update,
      //[DS_FIND]   : find
    });
    

    Installation

    NPM: npm install mesh
    Bower: bower install mesh

    Resources

    Show All