extra-path
Version:
Useful additions to inbuilt [@std/path] module.<br>
34 lines • 3.29 kB
JavaScript
import { basename, extname } from "@std/path";
import { toKebabCase } from "@nodef/extra-string";
// RE-EXPORTS
// ==========
export { // Namespaces
// posix,
// win32,
// Properties
DELIMITER as delimiter, SEPARATOR as sep, // Methods
basename, dirname, extname, isAbsolute, relative, format, join, parse, normalize, resolve, toNamespacedPath } from "@std/path";
// NAME
// ----
/**
* Get file name without extension.
* @param pth file path
* @returns file name
*/ export function filename(pth) {
return basename(pth, extname(pth));
}
/**
* Get symbol name for file.
* @param pth file path
* @returns symbol name
*/ export function symbolname(pth) {
return filename(pth).replace(/[^\w$]+/g, "_");
}
/**
* Get keyword name for file.
* @param pth file path
* @returns keyword name
*/ export function keywordname(pth) {
return toKebabCase(filename(pth));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9leHRyYS1wYXRoL2V4dHJhLXBhdGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtiYXNlbmFtZSwgZXh0bmFtZX0gZnJvbSBcIkBzdGQvcGF0aFwiO1xuaW1wb3J0IHt0b0tlYmFiQ2FzZX0gICAgICAgZnJvbSBcIkBub2RlZi9leHRyYS1zdHJpbmdcIjtcblxuXG5cblxuLy8gUkUtRVhQT1JUU1xuLy8gPT09PT09PT09PVxuXG5leHBvcnQge1xuICAvLyBUeXBlc1xuICAvLyB0eXBlIEZvcm1hdElucHV0UGF0aE9iamVjdCxcbiAgdHlwZSBQYXJzZWRQYXRoLFxuICAvLyBOYW1lc3BhY2VzXG4gIC8vIHBvc2l4LFxuICAvLyB3aW4zMixcbiAgLy8gUHJvcGVydGllc1xuICBERUxJTUlURVIgYXMgZGVsaW1pdGVyLFxuICBTRVBBUkFUT1IgYXMgc2VwLFxuICAvLyBNZXRob2RzXG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBpc0Fic29sdXRlLFxuICByZWxhdGl2ZSxcbiAgZm9ybWF0LFxuICBqb2luLFxuICBwYXJzZSxcbiAgbm9ybWFsaXplLFxuICByZXNvbHZlLFxuICB0b05hbWVzcGFjZWRQYXRoLFxufSBmcm9tIFwiQHN0ZC9wYXRoXCI7XG5cblxuXG5cbi8vIE5BTUVcbi8vIC0tLS1cblxuLyoqXG4gKiBHZXQgZmlsZSBuYW1lIHdpdGhvdXQgZXh0ZW5zaW9uLlxuICogQHBhcmFtIHB0aCBmaWxlIHBhdGhcbiAqIEByZXR1cm5zIGZpbGUgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsZW5hbWUocHRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYmFzZW5hbWUocHRoLCBleHRuYW1lKHB0aCkpO1xufVxuXG5cbi8qKlxuICogR2V0IHN5bWJvbCBuYW1lIGZvciBmaWxlLlxuICogQHBhcmFtIHB0aCBmaWxlIHBhdGhcbiAqIEByZXR1cm5zIHN5bWJvbCBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW1ib2xuYW1lKHB0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZpbGVuYW1lKHB0aCkucmVwbGFjZSgvW15cXHckXSsvZywgXCJfXCIpO1xufVxuXG5cbi8qKlxuICogR2V0IGtleXdvcmQgbmFtZSBmb3IgZmlsZS5cbiAqIEBwYXJhbSBwdGggZmlsZSBwYXRoXG4gKiBAcmV0dXJucyBrZXl3b3JkIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGtleXdvcmRuYW1lKHB0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRvS2ViYWJDYXNlKGZpbGVuYW1lKHB0aCkpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVEsUUFBUSxFQUFFLE9BQU8sUUFBTyxZQUFZO0FBQzVDLFNBQVEsV0FBVyxRQUFhLHNCQUFzQjtBQUt0RCxhQUFhO0FBQ2IsYUFBYTtBQUViLFNBSUUsYUFBYTtBQUNiLFNBQVM7QUFDVCxTQUFTO0FBQ1QsYUFBYTtBQUNiLGFBQWEsU0FBUyxFQUN0QixhQUFhLEdBQUcsRUFDaEIsVUFBVTtBQUNWLFFBQVEsRUFDUixPQUFPLEVBQ1AsT0FBTyxFQUNQLFVBQVUsRUFDVixRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixLQUFLLEVBQ0wsU0FBUyxFQUNULE9BQU8sRUFDUCxnQkFBZ0IsUUFDWCxZQUFZO0FBS25CLE9BQU87QUFDUCxPQUFPO0FBRVA7Ozs7Q0FJQyxHQUNELE9BQU8sU0FBUyxTQUFTLEdBQVc7RUFDbEMsT0FBTyxTQUFTLEtBQUssUUFBUTtBQUMvQjtBQUdBOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVMsV0FBVyxHQUFXO0VBQ3BDLE9BQU8sU0FBUyxLQUFLLE9BQU8sQ0FBQyxZQUFZO0FBQzNDO0FBR0E7Ozs7Q0FJQyxHQUNELE9BQU8sU0FBUyxZQUFZLEdBQVc7RUFDckMsT0FBTyxZQUFZLFNBQVM7QUFDOUIifQ==