| 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'; |