Wondering what’s next for npm?Check out our public roadmap! »

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

    1.6.0 • Public • Published

    fromfrom

    Greenkeeper badge Build Status Coveralls Dev Dependencies Sponsored All Contributors

    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 suite
    • npm start: Run npm run build in watch mode
    • npm run test:watch: Run test suite in interactive watch mode
    • npm run test:prod: Run linting and generate coverage
    • npm run build: Generate bundles and typings, create docs
    • npm run lint: Lints code
    • npm 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

    Contributors

    Thanks goes to these wonderful people (emoji key):


    Tomi Turtiainen

    💻 📖 🚇 ⚠️

    jtenner

    💻 ⚠️ 📖

    Ville Vaarala

    🚧

    Theo

    💻

    Rudolf Poels

    📖

    Andrew Ross

    🐛

    This project follows the all-contributors specification. Contributions of any kind welcome!

    Install

    npm i fromfrom

    DownloadsWeekly Downloads

    999

    Version

    1.6.0

    License

    MIT

    Unpacked Size

    230 kB

    Total Files

    69

    Last publish

    Collaborators

    • avatar