Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@oleksii-pavlov/collections

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@oleksii-pavlov/collections

The list of utils for collections

latest
Source
npmnpm
Version
1.1.0
Version published
Maintainers
1
Created
Source

Collections

Introduction

This npm package provides a Collection class designed to facilitate common operations on collections of data. The Collection class offers a variety of methods for manipulating and querying data, making it easier to work with collections in JavaScript and TypeScript applications.

Installation

You can install the package via npm by running the following command:

npm install @oleksii-pavlov/collections

Usage

Collection Class

The Collection class provides methods for working with collections of data. Here's how you can use it:

import { Collection } from '@oleksii-pavlov/collections';

// Define the book entity interface
interface Book {
  name: string;
  price: number;
}

// Create a collection of books
const books: Book[] = [
  { name: 'Book A', price: 20 },
  { name: 'Book B', price: 15 },
  { name: 'Book C', price: 25 },
];

// Initialize the collection
const bookCollection = new Collection(books);

// Get the items in the collection
const bookItems = bookCollection.getItems();
console.log(bookItems);
// Output: [
//   { name: 'Book A', price: 20 },
//   { name: 'Book B', price: 15 },
//   { name: 'Book C', price: 25 }
// ]

// Find the most expensive book
const mostExpensiveBook = bookCollection.getMaximumBy(book => book.price);
console.log(mostExpensiveBook);
// Output: { name: 'Book C', price: 25 }

// Filter books with price greater than a certain value
const expensiveBooks = bookCollection.filterByGreaterThan(book => book.price, 20);
console.log(expensiveBooks.getItems());
// Output: [
//   { name: 'Book A', price: 20 },
//   { name: 'Book C', price: 25 }
// ]

// Sort books by price in ascending order
const sortedBooks = bookCollection.sortAscendingBy(book => book.price);
console.log(sortedBooks.getItems());
// Output: [
//   { name: 'Book B', price: 15 },
//   { name: 'Book A', price: 20 },
//   { name: 'Book C', price: 25 }
// ]

API Reference

Collection Class

Constructor

constructor(items: T[])

Initializes a Collection instance with the specified array of items.

Methods

getItems()
getItems(): T[]

Returns the array of items in the collection.

getMaximumBy(selector: (item: T) => number): T | null
getMaximumBy(selector: (item: T) => number): T | null

Finds and returns the item with the maximum value determined by the selector function. If the collection is empty, it returns null.

filterByGreaterThan(selector: (item: T) => number, threshold: number): Collection<T>
filterByGreaterThan(selector: (item: T) => number, threshold: number): Collection<T>

Filters the items in the collection, returning a new Collection instance containing items where the value selected by the selector function is greater than the specified threshold.

sortAscendingBy(selector: (item: T) => number): Collection<T>
sortAscendingBy(selector: (item: T) => number): Collection<T>

Sorts the items in the collection in ascending order based on the value determined by the selector function, returning a new Collection instance with the sorted items.

Examples

Initializing a Collection

import { Collection } from '@oleksii-pavlov/collections';

interface Book {
  name: string;
  price: number;
}

const books: Book[] = [
  { name: 'Book A', price: 20 },
  { name: 'Book B', price: 15 },
  { name: 'Book C', price: 25 },
];

const bookCollection = new Collection(books);

Getting Items from a Collection

const bookItems = bookCollection.getItems();
console.log(bookItems);
// Output: [
//   { name: 'Book A', price: 20 },
//   { name: 'Book B', price: 15 },
//   { name: 'Book C', price: 25 }
// ]

Finding the Item with the Maximum Value

const mostExpensiveBook = bookCollection.getMaximumBy(book => book.price);
console.log(mostExpensiveBook);
// Output: { name: 'Book C', price: 25 }

Filtering Items by a Threshold

const expensiveBooks = bookCollection.filterByGreaterThan(book => book.price, 20);
console.log(expensiveBooks.getItems());
// Output: [
//   { name: 'Book A', price: 20 },
//   { name: 'Book C', price: 25 }
// ]

Sorting Items in Ascending Order

const sortedBooks = bookCollection.sortAscendingBy(book => book.price);
console.log(sortedBooks.getItems());
// Output: [
//   { name: 'Book B', price: 15 },
//   { name: 'Book A', price: 20 },
//   { name: 'Book C', price: 25 }
// ]

Keywords

collections

FAQs

Package last updated on 23 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts