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

    2.5.1 • Public • Published

    Build Status Coverage Status Dependency Status Greenkeeper badge npm version Downloads License

    The library is a continuous effort to implement LINQ using latest features of TypeScript and JavaScript languages (For ES5 compatible library look at linq-es5 branch). The library is implemented in TypeScript and transpiled into JavaScript. It is distributed as a native module. It utilizes latest ECMAScript 2015 language specification: Iterables ( [System.iterator] ), generators (function*), for of loops.
    All relevant methods are implemented with deferred execution so no unnecessary iterations are performed. The code is backwards compatible with linq-es5 and C# implementations.

    Using in Node

    Install module with this command:

    npm install linq-es2015 --save
    

    Once installed it could be loaded and used like this:

    import * as Enumerable from "linq-es2015"; 
     
    var count =  Enumerable.asEnumerable( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
                           .Where(a => a % 2 == 1)
                           .Count()
     
    var iterable = Enumerable.asEnumerable(people)
                             .GroupJoin(pets,
                                        person => person, 
                                        pet => pet.Owner,
                                        (person, petCollection) => {
                                            return {
                                                Owner: person.Name,
                                                Pets: asEnumerable(petCollection)
                                                     .Select(pet=> pet.Name)
                                                     .ToArray()
                                            };
                                        });
     

    [See Example]

    Using in browser

    Browserified "standalone" UMD module is located in /dist directory and could be accessed through NPM CDN service. Both linq.js and linq.min.js are available. Module is loaded with <script> element:

    <script type="text/javascript" src="//unpkg.com/linq-es2015/dist/linq.min.js"></script>

    Loading this script creates Enumerable global variable. You can use it to perform LINQ queries:

    var count =  Enumerable.asEnumerable( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
                           .Where(a => a % 2 == 1)
                           .Count()

    [See Example]

    Using in Angular 2

    The same package could be used on a server as well as on the client. You have to install module as usual:

    npm install linq-es2015 --save
    

    Open app.components.html file and add element to hold calculated value:

    <h1>{{title}}</h1>
    <div>Count - {{count}}</div>

    and finally import linq-es2015 in app.component.ts and do some calculations:

    import { Component } from '@angular/core';
    import { asEnumerable } from 'linq-es2015';
     
    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
     
    export class AppComponent {
      title = 'app works!';
      count: number;
     
        constructor(){
          this.count = asEnumerable([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).Where(a => a % 2 == 1)
                                                                    .Count();        
        }
    }

    [See Example]

    Documentation

    Example Projects

    Install

    npm i linq-es2015

    DownloadsWeekly Downloads

    1,234

    Version

    2.5.1

    License

    Apache-2.0

    Unpacked Size

    224 kB

    Total Files

    23

    Last publish

    Collaborators

    • eniks