mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 01:29:14 -05:00
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import {
|
|
BigIntStats,
|
|
CFISBIS,
|
|
statCallback,
|
|
statCallbackBigInt,
|
|
statOptions,
|
|
Stats,
|
|
} from "./_fs_stat.ts";
|
|
|
|
export function lstat(path: string | URL, callback: statCallback): void;
|
|
export function lstat(
|
|
path: string | URL,
|
|
options: { bigint: false },
|
|
callback: statCallback,
|
|
): void;
|
|
export function lstat(
|
|
path: string | URL,
|
|
options: { bigint: true },
|
|
callback: statCallbackBigInt,
|
|
): void;
|
|
export function lstat(
|
|
path: string | URL,
|
|
optionsOrCallback: statCallback | statCallbackBigInt | statOptions,
|
|
maybeCallback?: statCallback | statCallbackBigInt,
|
|
) {
|
|
const callback =
|
|
(typeof optionsOrCallback === "function"
|
|
? optionsOrCallback
|
|
: maybeCallback) as (
|
|
err: Error | undefined,
|
|
stat: BigIntStats | Stats,
|
|
) => void;
|
|
const options = typeof optionsOrCallback === "object"
|
|
? optionsOrCallback
|
|
: { bigint: false };
|
|
|
|
if (!callback) throw new Error("No callback function supplied");
|
|
|
|
Deno.lstat(path)
|
|
.then((stat) => callback(undefined, CFISBIS(stat, options.bigint)))
|
|
.catch((err) => callback(err, err));
|
|
}
|
|
|
|
export function lstatSync(path: string | URL): Stats;
|
|
export function lstatSync(
|
|
path: string | URL,
|
|
options: { bigint: false },
|
|
): Stats;
|
|
export function lstatSync(
|
|
path: string | URL,
|
|
options: { bigint: true },
|
|
): BigIntStats;
|
|
export function lstatSync(
|
|
path: string | URL,
|
|
options?: statOptions,
|
|
): Stats | BigIntStats {
|
|
const origin = Deno.lstatSync(path);
|
|
return CFISBIS(origin, options?.bigint || false);
|
|
}
|