mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-15 04:10:40 -07:00
feat: support allow_false for default filter, see #435
This commit is contained in:
@@ -2,10 +2,13 @@ import { isFalsy } from '../../render/boolean'
|
||||
import { isArray, isString, toValue } from '../../util/underscore'
|
||||
import { FilterImpl } from '../../template/filter/filter-impl'
|
||||
|
||||
export function Default<T1, T2> (this: FilterImpl, v: string | T1, arg: T2): string | T1 | T2 {
|
||||
if (isArray(v) || isString(v)) return v.length ? v : arg
|
||||
return isFalsy(toValue(v), this.context) ? arg : v
|
||||
export function Default<T1 extends boolean, T2> (this: FilterImpl, value: T1, defaultValue: T2, ...args: Array<[string, any]>): T1 | T2 {
|
||||
if (isArray(value) || isString(value)) return value.length ? value : defaultValue
|
||||
value = toValue(value)
|
||||
if (value === false && (new Map(args)).get('allow_false')) return false as T1
|
||||
return isFalsy(value, this.context) ? defaultValue : value
|
||||
}
|
||||
export function json (v: any) {
|
||||
return JSON.stringify(v)
|
||||
|
||||
export function json (value: any) {
|
||||
return JSON.stringify(value)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user