mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
60 lines
1.5 KiB
TypeScript
60 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);
|
||
|
}
|