Skip to content

Smart multi-gang enumerator with global, namespaced event emission for node.js.

License

Notifications You must be signed in to change notification settings

thebespokepixel/n-selector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

44a55b5 · Nov 6, 2021
Nov 6, 2021
Nov 2, 2021
Oct 29, 2021
Nov 6, 2021
Oct 20, 2016
Oct 29, 2021
Nov 1, 2021
Oct 29, 2021
Sep 19, 2016
Nov 2, 2021
Nov 2, 2021
Nov 6, 2021
Nov 6, 2021
Nov 6, 2021
Nov 1, 2021
Nov 2, 2021

Repository files navigation

@thebespokepixel/n-selector

Smart multi-gang enumerator with global, namespaced event emission for node.js.

Publishing Status

npm Libraries.io
Travis Rollup

Development Status

Travis Libraries.io
Snyk Code-Climate Code-Climate Coverage

Documentation/Help

Inch.io Twitter

Usage

Think of n-selector as an endlessly extendable multi-way n-gang switch.

Firstly, it allows the selection of a position by the position of an option in a primary index and then returns a value or an array of all the options that fall under that position.

Secondly, it allows selection by a simple scalar value (0.0 to 1.0) and can return a value or an array of the options at that position.

       0.00 ... 0.25 ... 0.50 ... 0.75 ... 1.00
        |--------|--------|--------|--------|
Primary |    One    |    Two    |   Three   |
Gang +1 |    Red    |   Green   |    Blue   |
Gang +2 |       One       |       Two       |

select('one') - returns ['One', 'Red', 'One']
select(2) - returns ['Two', 'Green', 'One']
position(0.75) - returns ['Three', 'Blue', 'Two']

Installation

npm install --save @thebespokepixel/n-selector

Examples

import {createSelector} from '@thebespokepixel/n-selector'

const matrix = createSelector(['one', 'two', 'three'], 0)

matrix.select(0) - returns 'one'
matrix.position(0.5) - returns 'two'

Documentation

Full documentation can be found at https://thebespokepixel.github.io/n-selector/