patha
Version:
File paths library. All you need to work with paths. Tiny drop-in replacement for 'path'. Works in Node, Browser, and Deno.
28 lines • 2.89 kB
JavaScript
import { basename, dirname, extname, join } from "path";
/**
* Adds a suffix to the end of the name of the given path
*
* @example
*
* ```js
* import { addNameSuffix } from "patha"
*
* addNameSuffix("path/to/file-name.ext", "-old") // gives "path/to/file-name-old.ext"
*
* addNameSuffix("path/to/file-name.ext", ".test") // gives "path/to/file-name.test.ext"
* ```
*
* @param path The given file path
* @param suffix The suffix to add to the end of the file name
* @returns The path with a suffix added to its file name
*/
export function addNameSuffix(path, suffix) {
// get the extension and the file name
const ext = extname(path);
const nameWithoutExt = basename(path, ext);
// add the name suffix
const NameWithSuffix = `${nameWithoutExt}${suffix}${ext}`;
// add the dirname back
return join(dirname(path), NameWithSuffix);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5hbWUtc3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FkZC1uYW1lLXN1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBRXZEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUN4RCxzQ0FBc0M7SUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3pCLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFFMUMsc0JBQXNCO0lBQ3RCLE1BQU0sY0FBYyxHQUFHLEdBQUcsY0FBYyxHQUFHLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQTtJQUV6RCx1QkFBdUI7SUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSwgZGlybmFtZSwgZXh0bmFtZSwgam9pbiB9IGZyb20gXCJwYXRoXCJcblxuLyoqXG4gKiBBZGRzIGEgc3VmZml4IHRvIHRoZSBlbmQgb2YgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIHBhdGhcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIGBgYGpzXG4gKiBpbXBvcnQgeyBhZGROYW1lU3VmZml4IH0gZnJvbSBcInBhdGhhXCJcbiAqXG4gKiBhZGROYW1lU3VmZml4KFwicGF0aC90by9maWxlLW5hbWUuZXh0XCIsIFwiLW9sZFwiKSAvLyBnaXZlcyBcInBhdGgvdG8vZmlsZS1uYW1lLW9sZC5leHRcIlxuICpcbiAqIGFkZE5hbWVTdWZmaXgoXCJwYXRoL3RvL2ZpbGUtbmFtZS5leHRcIiwgXCIudGVzdFwiKSAvLyBnaXZlcyBcInBhdGgvdG8vZmlsZS1uYW1lLnRlc3QuZXh0XCJcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBnaXZlbiBmaWxlIHBhdGhcbiAqIEBwYXJhbSBzdWZmaXggVGhlIHN1ZmZpeCB0byBhZGQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSBuYW1lXG4gKiBAcmV0dXJucyBUaGUgcGF0aCB3aXRoIGEgc3VmZml4IGFkZGVkIHRvIGl0cyBmaWxlIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE5hbWVTdWZmaXgocGF0aDogc3RyaW5nLCBzdWZmaXg6IHN0cmluZykge1xuICAvLyBnZXQgdGhlIGV4dGVuc2lvbiBhbmQgdGhlIGZpbGUgbmFtZVxuICBjb25zdCBleHQgPSBleHRuYW1lKHBhdGgpXG4gIGNvbnN0IG5hbWVXaXRob3V0RXh0ID0gYmFzZW5hbWUocGF0aCwgZXh0KVxuXG4gIC8vIGFkZCB0aGUgbmFtZSBzdWZmaXhcbiAgY29uc3QgTmFtZVdpdGhTdWZmaXggPSBgJHtuYW1lV2l0aG91dEV4dH0ke3N1ZmZpeH0ke2V4dH1gXG5cbiAgLy8gYWRkIHRoZSBkaXJuYW1lIGJhY2tcbiAgcmV0dXJuIGpvaW4oZGlybmFtZShwYXRoKSwgTmFtZVdpdGhTdWZmaXgpXG59XG4iXX0=