selector
TypeScript icon, indicating that this package has built-in type declarations

2.1.1 • Public • Published

Welcome to selector 👋

codecov Node.js CI release-please

Generic selector library in Typescript

Version Commit Activity Build Status Bundle Size

Installing

Using npm:

npm i --save selector

Using yarn:

yarn add --dev selector

Usage

Here are examples of how you can use selector.

createSelector

Return a selector helper

Examples

Get first item
const data = ['John']
const getFirstItemSelector = createSelector(0)
const item = getFirstItemSelector(data)
console.log(item) // It'll display 'John'
Get first item's name
const data = { item: { name: 'Television', isActive: true } }
const selector = createSelector('item', 'name')
const itemName = selector(data)
console.log(itemName) // It'll display 'Television'
Get first item active
const data = {
  items: [
    {
      name: 'Television',
      isActive: false,
    },
    {
      name: 'Sofa',
      isActive: true,
    },
    {
      name: 'Door',
      isActive: true,
    },
  ],
}
const firstActiveItemSelector = createSelector('items', (items: IItem[]) =>
  items.find((item: IItem) => item.isActive)
)
const item = firstActiveItemSelector(data)
console.log(item) // It'll display '{ "isActive": true, "name": "Sofa" }'
Select item with path
const path = 'items.0.name'
const data = { items: [{ name: 'Television', isActive: true }] }
const selector = createSelector(...path.split('.'))
const itemName = selector(data)
console.log(itemName) // It'll display 'Television'

Running the tests

Tests are written with jest

Unit tests

Using jest:

yarn run test

Deployment

Deployment is done with Travis.

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Show your support

Give a ⭐️ if this project helped you!

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Readme

Keywords

Package Sidebar

Install

npm i selector

Weekly Downloads

16

Version

2.1.1

License

MIT

Unpacked Size

46.5 kB

Total Files

17

Last publish

Collaborators

  • arnaud-zg