mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-20 15:00:42 -07:00
feat: pop/shift/unshift filters from Jekyll
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
import { isNil, isString, isObject, isArray, isIterable, toValue } from './underscore'
|
||||
|
||||
export function toEnumerable<T = unknown> (val: any): T[] {
|
||||
val = toValue(val)
|
||||
if (isArray(val)) return val
|
||||
if (isString(val) && val.length > 0) return [val] as unknown as T[]
|
||||
if (isIterable(val)) return Array.from(val)
|
||||
if (isObject(val)) return Object.keys(val).map((key) => [key, val[key]]) as unknown as T[]
|
||||
return []
|
||||
}
|
||||
|
||||
export function toArray (val: any) {
|
||||
if (isNil(val)) return []
|
||||
if (isArray(val)) return val
|
||||
return [ val ]
|
||||
}
|
||||
@@ -6,7 +6,6 @@ export * from './underscore'
|
||||
export * from './operator-trie'
|
||||
export * from './type-guards'
|
||||
export * from './async'
|
||||
export * from './collection'
|
||||
export * from './strftime'
|
||||
export * from './liquid-date'
|
||||
export * from './timezone-date'
|
||||
|
||||
@@ -46,6 +46,22 @@ export function stringify (value: any): string {
|
||||
return String(value)
|
||||
}
|
||||
|
||||
export function toEnumerable<T = unknown> (val: any): T[] {
|
||||
val = toValue(val)
|
||||
if (isArray(val)) return val
|
||||
if (isString(val) && val.length > 0) return [val] as unknown as T[]
|
||||
if (isIterable(val)) return Array.from(val)
|
||||
if (isObject(val)) return Object.keys(val).map((key) => [key, val[key]]) as unknown as T[]
|
||||
return []
|
||||
}
|
||||
|
||||
export function toArray (val: any) {
|
||||
val = toValue(val)
|
||||
if (isNil(val)) return []
|
||||
if (isArray(val)) return val
|
||||
return [ val ]
|
||||
}
|
||||
|
||||
export function toValue (value: any): any {
|
||||
return (value instanceof Drop && isFunction(value.valueOf)) ? value.valueOf() : value
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user