2.5.1 • Published 5 years ago

linq-es2015 v2.5.1

Weekly downloads
670
License
Apache-2.0
Repository
github
Last release
5 years ago

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

2.5.1

5 years ago

2.5.0

5 years ago

2.4.36

6 years ago

2.4.35

6 years ago

2.4.34

6 years ago

2.4.33

7 years ago

2.4.32

7 years ago

2.4.31

7 years ago

2.4.29

8 years ago

2.4.28

8 years ago

2.4.27

8 years ago

2.4.26

8 years ago

2.4.25

8 years ago

2.4.24

8 years ago

2.4.23

8 years ago

2.4.22

8 years ago

2.4.21

8 years ago

2.4.20

8 years ago

2.4.18

8 years ago

2.4.17

8 years ago

2.4.16

8 years ago

2.4.15

8 years ago

2.4.14

8 years ago

2.4.13

9 years ago

2.4.12

9 years ago

2.4.11

9 years ago

2.4.10

9 years ago

2.4.9

9 years ago

2.4.8

9 years ago

2.4.7

9 years ago

2.4.6

9 years ago

2.4.5

9 years ago

2.4.4

9 years ago

2.4.3

9 years ago

2.4.2

9 years ago

2.4.1

9 years ago

2.4.0

9 years ago

2.3.2

9 years ago

2.3.1

9 years ago

2.3.0

9 years ago

2.2.12

9 years ago

2.2.11

9 years ago

2.2.10

9 years ago

2.2.4

9 years ago

2.2.2

9 years ago

2.2.1

9 years ago

2.2.0

9 years ago

2.1.5

9 years ago

2.1.4

9 years ago

2.1.3

9 years ago

2.1.2

9 years ago

2.1.1

9 years ago

2.0.8

9 years ago

2.0.7

9 years ago

2.0.6

9 years ago

2.0.5

9 years ago

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago