feat: pop/shift/unshift filters from Jekyll

This commit is contained in:
Jun Yang
2024-04-14 19:34:07 +08:00
parent 18d55929e5
commit 258780e9a8
17 changed files with 240 additions and 35 deletions
+16
View File
@@ -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
}