@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
52 lines (51 loc) • 1.51 kB
TypeScript
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 {};