fix: use realpath for fs.contains

This commit is contained in:
Yang Jun
2026-04-05 03:57:54 +08:00
parent abc058be0f
commit cca3da6147
38 changed files with 188 additions and 48 deletions
+13
View File
@@ -1,5 +1,18 @@
import { isPromise, isIterator } from './underscore'
export type LiquidAsync<F extends (...args: any[]) => any> =
(sync: boolean, ...args: Parameters<F>) => ReturnType<F> | Promise<ReturnType<F>>
export function toLiquidAsync<F extends (...args: any[]) => any> (
syncFn: F,
asyncFn?: (...args: Parameters<F>) => Promise<ReturnType<F>>
): LiquidAsync<F> {
const asyncImpl = asyncFn || syncFn as any
return (sync: boolean, ...args: any[]) => {
return sync ? syncFn(...args as Parameters<F>) : asyncImpl(...args as Parameters<F>)
}
}
// convert an async iterator to a Promise
export async function toPromise<T> (val: Generator<unknown, T, unknown> | Promise<T> | T): Promise<T> {
if (!isIterator(val)) return val