summaryrefslogtreecommitdiff
path: root/node_modules/thenby/thenBy.module.d.ts
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:54:57 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:57:48 +0100
commitb1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch)
tree49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/thenby/thenBy.module.d.ts
Docs
Diffstat (limited to 'node_modules/thenby/thenBy.module.d.ts')
-rw-r--r--node_modules/thenby/thenBy.module.d.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/node_modules/thenby/thenBy.module.d.ts b/node_modules/thenby/thenBy.module.d.ts
new file mode 100644
index 0000000..becb6d5
--- /dev/null
+++ b/node_modules/thenby/thenBy.module.d.ts
@@ -0,0 +1,51 @@
+// Type definitions for thenBy
+// Definitions by: Teun Duynstee (with significant help from @HonoluluHenk)
+type SortOrder = "asc" | "desc" | -1 | 1;
+declare class opt {
+ direction?:SortOrder;
+ ignoreCase?:boolean;
+}
+declare class typedOpt<T> extends opt {
+ cmp?: (a:T, b:T)=> number;
+}
+interface IThenBy<T> {
+ (v1: T, v2: T) : number;
+ /**
+ * Full format to compare two elements and determine which sorts first.
+ * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first.
+ * @param direction can be used to reverse the sorting by passing -1
+ **/
+ thenBy<T>(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy<T>;
+ /**
+ * Shorthand for selecting a value to sort on from the sorted element.
+ * @param select function that receives a value from the sorted array and selects the thing to sort on
+ * @param direction reverse by passing -1. opt for other options
+ **/
+ thenBy<T, U>(select: ((v: T) => U), direction?: SortOrder | typedOpt<U>): IThenBy<T>;
+ /**
+ * Shorthand for sorting on a simple property.
+ * @param byPropertyName is the name of the property to sort on as a string
+ * @param direction reverse by passing -1. opt for other options
+ **/
+ thenBy<T>(byPropertyName: (keyof T), direction?: SortOrder | typedOpt<any>): IThenBy<T>;
+}
+declare module "thenby" {
+ /**
+ * Full format to compare two elements and determine which sorts first.
+ * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first.
+ * @param direction can be used to reverse the sorting by passing -1
+ **/
+ export function firstBy<T>(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy<T>;
+ /**
+ * Shorthand for selecting a value to sort on from the sorted element.
+ * @param select function that receives a value from the sorted array and selects the thing to sort on
+ * @param direction reverse by passing -1. opt for other options
+ **/
+ export function firstBy<T,U>(select: ((v: T) => U), direction?: SortOrder | typedOpt<U>): IThenBy<T>;
+ /**
+ * Shorthand for sorting on a simple property.
+ * @param byPropertyName is the name of the property to sort on as a string
+ * @param direction reverse by passing -1. opt for other options
+ **/
+ export function firstBy<T>(byPropertyName: (keyof T), direction?: SortOrder | typedOpt<any>): IThenBy<T>;
+ }