@tsdotnet/compare
Version:
Utility for common comparison functions including sorting and type reflection.
25 lines (19 loc) • 614 B
TypeScript
/*!
* @author electricessence / https://github.com/electricessence/
* Licensing: MIT
*/
import type {Primitive, Selector} from '@tsdotnet/common-interfaces';
import type {Comparison} from './Comparable';
import type {OrderValue as Order} from './Order';
export type OrderByOption = {
order?: Order;
};
export type OrderByComparison<T> = Comparison<T> | OrderByOption & {
comparison: Comparison<T>;
};
export type OrderBySelector<T> = Selector<T, Primitive> | OrderByOption & {
selector: Selector<T, Primitive>;
};
export type OrderByKey<T extends object> = keyof T | OrderByOption & {
key: keyof T;
};