Skip to content

Commit f22add7

Browse files
authored
Merge pull request #207 from webdeveric/dev
Moved sort functions
2 parents fa9aeae + 4e106ac commit f22add7

19 files changed

+128
-86
lines changed

src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ export * from './redactCredentialsInURL.js';
5353
export * from './resultify.js';
5454
export * from './secToString.js';
5555
export * from './set.js';
56-
export * from './sort-factory.js';
57-
export * from './sort.js';
5856
export * from './stripWhitespace.js';
5957
export * from './suffix.js';
6058
export * from './toPascalCase.js';

src/predicate/factory/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export * from './matching.js';
99
export * from './maybeArray.js';
1010
export * from './nonNullable.js';
1111
export * from './nullable.js';
12+
export * from './nullish.js';
1213
export * from './optional.js';
1314
export * from './range.js';
1415
export * from './shape.js';

src/predicate/factory/nullish.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { Nullish } from '../../types/common.js';
2+
import type { TypePredicateFn } from '../../types/functions.js';
3+
4+
export const nullish =
5+
<T>(predicate: TypePredicateFn<T>): TypePredicateFn<Nullish<T>> =>
6+
(input: unknown): input is Nullish<T> =>
7+
input == null || predicate(input);

src/sort.ts

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/sort/byLocaleCompare.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const byLocaleCompare = (left: string, right: string): number => left.localeCompare(right);

src/sort/bySimpleComparison.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const bySimpleComparison = <T>(left: T, right: T): number => {
2+
return left === right ? 0 : left > right ? 1 : -1;
3+
};

src/sort/bySubtraction.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { parseNumber } from '../parseNumber.js';
2+
3+
export const bySubtraction = <T extends number | bigint | string>(left: T, right: T): number =>
4+
parseNumber(left) - parseNumber(right);

src/sort/byTimestamp.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { getMilliseconds } from '../getMilliseconds.js';
2+
3+
export const byTimestamp = <T extends string | number | Date>(left: T, right: T): number => {
4+
const timeDiff = getMilliseconds(left) - getMilliseconds(right);
5+
6+
return Number.isNaN(timeDiff) ? -1 : timeDiff;
7+
};
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import type { CompareFn } from './types/functions.js';
1+
import type { CompareFn } from '../../types/functions.js';
22

33
export const byProperty =
44
<T extends object, K extends keyof T = keyof T>(compareFn: CompareFn<T[K]>, property: K): CompareFn<T> =>
55
(left, right) =>
66
compareFn(left[property], right[property]);
7-
8-
export const byReverseOf =
9-
<T>(compareFn: CompareFn<T>): CompareFn<T> =>
10-
(left, right) =>
11-
0 - compareFn(left, right);

src/sort/factory/byReverseOf.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import type { CompareFn } from '../../types/functions.js';
2+
3+
export const byReverseOf =
4+
<T>(compareFn: CompareFn<T>): CompareFn<T> =>
5+
(left, right) =>
6+
0 - compareFn(left, right);

0 commit comments

Comments
 (0)