GitHub - tomi/fromfrom: A JS library written in TS to transform sequences of dat...
source link: https://github.com/tomi/fromfrom
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
fromfrom
fromfrom is a LINQ inspired library to transform sequences of data.
Installation
npm install --save fromfrom
Documentation
Find it here.
Usage
The library exports only a single function, from
. from
wraps the given source data into a Sequence
. Sequence
has a wide range of chainable methods to operate and transform the sequence. The sequence can then be converted into a JS type.
For example
import { from } from "fromfrom"; // Transform an array of users const users = [ { id: 1, name: "John", age: 31, active: true }, { id: 2, name: "Jane", age: 32, active: false }, { id: 3, name: "Luke", age: 33, active: false }, { id: 4, name: "Mary", age: 34, active: true }, ]; from(users) .filter(user => user.active) .sortByDescending(user => user.age) .toArray(); // Returns // [ // { id: 4, name: "Mary", age: 34, active: true }, // { id: 1, name: "John", age: 31, active: true } // ]
Features
- Familiar method names - Even though it's LINQ inspired, uses familiar method names from JS.
- Supports all main JS types - Works with arrays, objects, maps, sets, and objects that implement the iterable protocol.
- No dependencies - Guarantees small size.
- Type safe - Written in TypeScript. Type definitions included.
- Deferred execution - The execution of the sequence is deferred until you begin consuming the sequence.
- Fully tested - 100% test coverage.
How does it work
See "how does it work" section from the initial release blog post.
Development
NPM scripts
npm t
: Run test suitenpm start
: Runnpm run build
in watch modenpm run test:watch
: Run test suite in interactive watch modenpm run test:prod
: Run linting and generate coveragenpm run build
: Generate bundles and typings, create docsnpm run lint
: Lints codenpm run commit
: Commit using conventional commit style (husky will tell you to use it if you haven't ?)
Acknowledgement
Made with ❤️ by @TomiTurtiainen.
This project is a grateful recipient of the Futurice Open Source sponsorship program. ❤️
Forked from TypeScript library starter
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK