UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

52 lines (51 loc) 1.51 kB
import { type Comparator, type Mapper, type SortDirection, type SortOptions, type StringMap } from '../types.js'; declare class Comparators { /** * Good for numbers. */ numericAsc(a: number, b: number): number; numericDesc(a: number, b: number): number; localeAsc(a: string, b: string): number; localeDesc(a: string, b: string): number; by<T, COMPARE_TYPE extends string | number>(mapper: Mapper<T, COMPARE_TYPE>, opt?: ComparatorByOptions): Comparator<T>; updatedAsc(a: { updated: number; }, b: { updated: number; }): number; updatedDesc(a: { updated: number; }, b: { updated: number; }): number; createdAsc(a: { created: number; }, b: { created: number; }): number; createdDesc(a: { created: number; }, b: { created: number; }): number; } export declare const comparators: Comparators; interface ComparatorByOptions { /** * Defaults to 'asc'. */ dir?: SortDirection; } /** * _sortBy([{age: 20}, {age: 10}], 'age') * // => [{age: 10}, {age: 20}] * * Same: * _sortBy([{age: 20}, {age: 10}], o => o.age) */ export declare function _sortBy<T, COMPARE_TYPE extends string | number>(items: T[], mapper: Mapper<T, COMPARE_TYPE>, opt?: SortOptions): T[]; /** * Like _stringMapValues, but values are sorted. */ export declare function _stringMapValuesSorted<T>(map: StringMap<T>, mapper: Mapper<T, any>, dir?: SortDirection): T[]; export {};