LInQer ports .NET LINQ to Javascript |
Written by Nikos Vaggalis | |||
Tuesday, 25 February 2020 | |||
LinQer is a library that sprang out of the need to fix two problems of Javascript's built-in iteration methods. It brings .NET's LINQ approach to databases to JavaScript. The problems with the iteration methods that needed fixing were mainly that:
and that they are eager,meaning that the set undergoing intermittent transformations is the full one,even when only a few items are needed from it: "Every time you filter or you map something you create a new array".
LinQer introduces a class called Enumerable, just like its .NET counterpart, which wraps any iterable structure, for example generators and not just arrays, providing the means to work with them under the same interface that .NET's Enumerable supports. For example,a pretty valid operation to an Enumerable instance is the following :
Therefore, apart from the built in map,filter and reduce operations, LinQer extends Javascript with those rich constructs too. Still, not the full spectrum of .NET Emumerable's methods was implemented, due to the mismatch between C# and Javascript; some things just don't make sense under Javascript's context. Hence, toDictionary, toHashSet, toLookup, toList have been left out with toMap, toSet, toObject, toArray being used instead. The Join operation was also left out. Written in Typescript,under the hood, LinQer uses generators and with that lazy evaluation. Therefore we now we can limit the operations to just the items of the collection under transformation that are of interest. LinQer is split in two parts, Linqer.slim.js and Linqer.js. The former exposes the basic methods while the latter all (well most) of the original .NET Enumerable methods including those of Slim, hence you get to choose the one suited to the circumstance at hand. For the full reference of the supported methods head over to its Github repo. Aside from the repo, the author now offers the library as an npm package making its instalation as simple as:
More InformationRelated ArticlesLearn Ramda.js The Interactive Way Functional Programming Patterns With RamdaJS To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
{laodposition comment} |
|||
Last Updated ( Tuesday, 25 February 2020 ) |