1.0.12 • Published 2 years ago

quarray v1.0.12

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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)

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago