Compare commits

..

1 Commits

Author SHA1 Message Date
3048b74b2f Handle sorting with undefined values
All checks were successful
Build / Publish Docs (push) Successful in 47s
Build / Build NPM Project (push) Successful in 1m4s
Build / Tag Version (push) Successful in 10s
2025-12-13 00:27:47 -05:00
3 changed files with 8 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@ztimson/utils",
"version": "0.28.2",
"version": "0.28.3",
"description": "Utility library",
"author": "Zak Timson",
"license": "MIT",

View File

@@ -122,6 +122,8 @@ export function sortByProp(prop: string, reverse = false) {
return function (a: any, b: any) {
const aVal = dotNotation<any>(a, prop);
const bVal = dotNotation<any>(b, prop);
if(aVal === undefined) return 1;
if(bVal === undefined) return -1;
if(typeof aVal == 'number' && typeof bVal == 'number')
return (reverse ? -1 : 1) * (aVal - bVal);
if(aVal > bVal) return reverse ? -1 : 1;

View File

@@ -62,6 +62,11 @@ describe('Object utilities', () => {
dotNotation(obj, 'd.e.f', 5);
expect(obj.d.e.f).toBe(5);
});
it('undefined', () => {
const obj: any = {a: 1};
const resp = dotNotation(obj, 'a.b');
expect(resp).toBe(undefined);
})
});
describe('encodeQuery', () => {