@flex-development/pathe
Version:
Universal drop-in replacement for node:path
72 lines (71 loc) • 1.81 kB
text/typescript
/**
* @file addExt
* @module pathe/lib/addExt
*/
export default addExt;
/**
* Append a file extension to `input`.
*
* Does nothing if a file extension is not provided, or the {@linkcode extname}
* of `input` is already `ext`.
*
* @category
* utils
*
* @this {void}
*
* @param {string} input
* The path or URL string to handle
* @param {string | null | undefined} ext
* The file extension to add
* @return {string}
* `input` unmodified or with new extension
*/
declare function addExt(this: void, input: string, ext: string | null | undefined): string;
/**
* Append a file extension to `url`.
*
* Does nothing if a file extension is not provided, or the {@linkcode extname}
* of `url` is already `url`.
*
* @category
* utils
*
* @this {void}
*
* @param {URL} url
* The {@linkcode URL} to handle
* @param {string | null | undefined} ext
* The file extension to add
* @return {URL}
* `url` unmodified or with new extension
*/
declare function addExt(this: void, url: URL, ext: string | null | undefined): URL;
/**
* Append a file extension to `input`.
*
* Does nothing if a file extension is not provided, or the {@linkcode extname}
* of `input` is already `ext`.
*
* @example
* addExt('file', null) // 'file'
* @example
* addExt('file', 'mjs') // 'file.mjs'
* @example
* addExt('file', '.mjs') // 'file.mjs'
* @example
* addExt('file.d.mts', '.mts') // 'file.d.mts'
*
* @category
* utils
*
* @this {void}
*
* @param {URL | string} input
* The {@linkcode URL}, URL string, or path to handle
* @param {string | null | undefined} ext
* The file extension to add
* @return {URL | string}
* `input` unmodified or with new extension
*/
declare function addExt(this: void, input: URL | string, ext: string | null | undefined): URL | string;