quarray
v1.0.12
Published
Query helper for javascript arrays
Downloads
1
Readme
Installation
$ npm install quarray
or
$ yarn add quarray
Quick Start
This is a basic example.
const { Quarray } = require('quarray');
const data = [
{
id: '1',
name: 'Recep',
age: 25,
address: {
city: 'Istanbul',
district: 'Gungoren'
},
workExperience: [
{
company: 'A',
duration: 5
},
{
company: 'B',
duration: 2
},
{
company: 'C',
duration: 3
},
],
},
{
id: '2',
name: 'Namık',
age: 27,
address: {
city: 'Ankara',
district: 'Sincan'
},
workExperience: [
{
company: 'D',
duration: 1
},
{
company: 'E',
duration: 3
},
],
},
{
id: '3',
name: 'Ronaldo',
age: 24,
address: {
city: 'Adana',
district: 'Merkez'
},
workExperience: [
{
company: 'F',
duration: 6
},
{
company: 'G',
duration: 4
},
],
}
];
const quarray = new Quarray();
const result = quarray
.from(data)
.select(['id', 'name'])
.where($ => $.age >= 25)
.andWhere($ => $.workExperience.reduce((prev, current) => prev + current.duration, 0) > 3)
.find();
// it executes conditions as where & andWhere[] || orWhere[]
// and selects desired properties
// to select all properties, you can use select('*') or basically you don't call select functions by default all properties are selected
console.log(result);
// [ { id: '1', name: 'Recep' }, { id: '2', name: 'Namık' } ]
// or in typescript
// import { quarray } from 'quarray';
// type Person = {
// id: string;
// name: string;
// age: number;
// address: {
// city: string;
// district: string;
// },
// workExperince: {
//. company: string;
// duration: number;
//. }[]
// };
// const quarray = new Quarray<Person>();
// and the queries are up to you...
Methods
select(inputs?: string[] | '*')
from(data: T[])
where(condition: ($) => boolean)
andWhere(($) => boolean)
orWhere(($) => boolean)
find()
take(slice: number)
findOne()
update({[key: string]: any)
updateOne( {[key: string]: any})