/core

Logux core components for JavaScript

Primary LanguageJavaScriptMIT LicenseMIT

Logux Core Cult Of Martians

Logux is a new way to connect client and server. Instead of sending HTTP requests (e.g., AJAX and GraphQL) it synchronizes log of operations between client, server, and other clients.

Documentation: logux.io

This repository contains Logux core components for JavaScript:

  • Log to store node’s actions.
  • MemoryStore to store log in the memory.
  • BaseNode, ClientNode, and ServerNode to synchronize actions from Log with other node.
  • isFirstOlder to compare creation time of different actions.
  • WsConnection, Reconnect, and ServerConnection to connect nodes via WebSocket.
  • TestLog, TestPair, TestTime, and eachStoreCheck to test Logux application.
Sponsored by Evil Martians

Install

npm install @logux/core

Usage

See documentation for Logux API.

import { ClientNode, TestTime, TestLog, TestPair } from '@logux/core'

let time = new TestTime()
let pair = new TestPair()
let node = new ClientNode('client:test', time.nextLog(), pair.left)
import { isFirstOlder } from '@logux/core'

let lastRename
log.on('add', (action, meta) => {
  if (action.type === 'RENAME') {
    if (isFirstOlder(lastRename, meta)) {
      changeName(action.name)
      lastRename = meta
    }
  }
})