New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

elx

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

elx

State management for a single dom element.

latest
Source
npmnpm
Version
0.0.3
Version published
Maintainers
1
Created
Source

elx NPM version NPM downloads Build Status

Install

$ npm install --save elx

Usage

import {elx} from 'elx'

// a counter in 4 lines
elx('button', 0)
  .fromDOMEvent('click', 1)
  .reduce((state, received) => state + received)
  .subscribe((el, state) => el.textContent = state)

Concepts

Initial State

Every element has its initial state.

// for the counter example
const initialState = 0
const source = elx('button', initialState)

Handler for events

Notify your element with some data, of course it does not know how to handle the data for now.

source.fromDOMEvent('click', 1)

Sure the event handler can be a function or even a Promise that resolves the data.

source.fromDOMEvent('click', () => {
  return new Promise(resolve => setTimeout(() => {
    resolve(1)
  }, 1000))
})

Handler for actions

Abosolutely you can use custom actions, because you need cross-element communications!

source.fromAction('INCREMENT', 1)

If you are using custom action, you can use source.dispatch(ACTION) to trigger that action! Action names are all caps.

Reducer

Tell your element how to get the new state after received data from event hander.

// since it's just a counter
// we simply add the received data in event handler
// to the currentState 
const reducer = (currentState, received) => currentState + received
source.reduce(reducer)

Subscribe

Trigger when element's state got changed.

source.subscribe((el, newState) => {
  el.textContent = newState
})

Contributing

  • Fork it!
  • Create your feature branch: git checkout -b my-new-feature
  • Commit your changes: git commit -am 'Add some feature'
  • Push to the branch: git push origin my-new-feature
  • Submit a pull request :D

License

MIT © EGOIST

FAQs

Package last updated on 02 Oct 2016

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