mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-15 04:10:40 -07:00
feat: at_least, at_most, sort_naturual for #132
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
const toLowerCase = String.prototype.toLowerCase
|
||||
|
||||
export default {
|
||||
'abs': (v: number) => Math.abs(v),
|
||||
'at_least': (v: number, n: number) => Math.max(v, n),
|
||||
'at_most': (v: number, n: number) => Math.min(v, n),
|
||||
'ceil': (v: number) => Math.ceil(v),
|
||||
'divided_by': (v: number, arg: number) => v / arg,
|
||||
'floor': (v: number) => Math.floor(v),
|
||||
@@ -10,5 +14,26 @@ export default {
|
||||
return Math.round(v * amp) / amp
|
||||
},
|
||||
'plus': (v: number, arg: number) => Number(v) + Number(arg),
|
||||
'sort_natural': sortNatural,
|
||||
'times': (v: number, arg: number) => v * arg
|
||||
}
|
||||
|
||||
function caseInsensitiveCmp (a, b) {
|
||||
if (!b) return -1
|
||||
if (!a) return 1
|
||||
a = toLowerCase.call(a)
|
||||
b = toLowerCase.call(b)
|
||||
if (a < b) return -1
|
||||
if (a > b) return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
function sortNatural (input: any[], property?: string) {
|
||||
if (!input || !input.sort) return []
|
||||
if (property !== undefined) {
|
||||
return [...input].sort(
|
||||
(lhs, rhs) => caseInsensitiveCmp(lhs[property], rhs[property])
|
||||
)
|
||||
}
|
||||
return [...input].sort(caseInsensitiveCmp)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user