function dirname(path) { if (!path) throw new Error('Path is empty'); const s = path.split(/\/|\\/); s.pop(); return s.join('/'); } function basename(path) { if (!path) throw new Error('Path is empty'); const s = path.split(/\/|\\/); return s[s.length - 1]; } function filename(path, includeDir = false) { if (!path) throw new Error('Path is empty'); let output = includeDir ? path : basename(path); if (output.indexOf('.') < 0) return output; output = output.split('.'); output.pop(); return output.join('.'); } function fileExtension(path) { if (!path) throw new Error('Path is empty'); const output = path.split('.'); if (output.length <= 1) return ''; return output[output.length - 1]; } module.exports = { basename, dirname, filename, fileExtension };