123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- import {
- type ExecFileOptionsWithStringEncoding,
- type ExecFileSyncOptionsWithStringEncoding,
- type PromiseWithChild,
- } from 'node:child_process';
- /**
- Converts a `URL` or path to a path.
- __Not available in browsers.__
- @example
- ```
- import path from 'node:path';
- import {toPath} from 'unicorn-magic';
- // `cwd` can be `URL` or a path string.
- const getUnicornPath = cwd => path.join(toPath(cwd), 'unicorn');
- ```
- */
- export function toPath(urlOrPath: URL | string): string;
- /**
- Finds the root directory of the given path.
- __Not available in browsers.__
- On Unix-based systems, the root is always `'/'`.
- On Windows, the root varies and includes the drive letter (e.g., `'C:\\'`).
- This function operates purely on paths and does not interact with the file system.
- @param path - The path or URL to check.
- @returns The root directory of the path.
- @example
- ```
- import {rootDirectory} from 'unicorn-magic';
- console.log(rootDirectory('/Users/x/y/z'));
- //=> '/'
- console.log(rootDirectory('C:\\Users\\x\\y\\z'));
- //=> 'C:\\'
- ```
- */
- export function rootDirectory(path: string | URL): string;
- /**
- Creates an iterable for traversing from a given start path up to the root directory.
- __Not available in browsers.__
- This function operates purely on paths and does not interact with the file system.
- @param startPath - The starting path. Can be relative.
- @returns An iterable that iterates over each parent directory up to the root.
- Tip: To stop iteration before reaching the root, use a `break` statement within a conditional check.
- @example
- ```
- import {traversePathUp} from 'unicorn-magic';
- for (const directory of traversePathUp('/Users/x/y/z')) {
- console.log(directory);
- //=> '/Users/x/y/z'
- //=> '/Users/x/y'
- //=> '/Users/x'
- //=> '/Users'
- //=> '/'
- }
- ```
- */
- export function traversePathUp(startPath: string | URL): Iterable<string>;
- /**
- Executes a file.
- Same as the built-in `execFile` but with:
- - Promise API
- - 10 MB `maxBuffer` instead of 1 MB
- @example
- ```
- import {execFile} from 'unicorn-magic';
- console.log(await execFile('ls', ['-l']));
- ```
- __Not available in browsers.__
- */
- export function execFile(
- file: string,
- arguments_: readonly string[],
- options?: ExecFileOptionsWithStringEncoding
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- /**
- Executes a file synchronously.
- Same as the built-in `execFileSync` but with:
- - String output instead of buffer (same as `execFile`)
- - Does not output `stderr` to the terminal by default (same as `execFile`)
- - 10 MB `maxBuffer` instead of 1 MB
- @example
- ```
- import {execFileSync} from 'unicorn-magic';
- console.log(execFileSync('ls', ['-l']));
- ```
- __Not available in browsers.__
- */
- export function execFileSync(
- file: string,
- arguments_?: readonly string[],
- options?: ExecFileSyncOptionsWithStringEncoding
- ): string;
- export * from './default.js';
|