arnaud-zg / selector

Generic selector library

Home Page:https://www.npmjs.com/package/selector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Generic selector library

https://www.npmjs.com/package/selector

License:MIT License


Languages

Language:TypeScript 97.5%Language:Shell 2.5%