; | |
var path = require('path'); | |
function replaceExt(npath, ext) { | |
if (typeof npath !== 'string') { | |
return npath; | |
} | |
if (npath.length === 0) { | |
return npath; | |
} | |
var nFileName = path.basename(npath, path.extname(npath)) + ext; | |
var nFilepath = path.join(path.dirname(npath), nFileName); | |
// Because `path.join` removes the head './' from the given path. | |
// This removal can cause a problem when passing the result to `require` or | |
// `import`. | |
if (startsWithSingleDot(npath)) { | |
return '.' + path.sep + nFilepath; | |
} | |
return nFilepath; | |
} | |
function startsWithSingleDot(fpath) { | |
var first2chars = fpath.slice(0, 2); | |
return first2chars === '.' + path.sep || first2chars === './'; | |
} | |
module.exports = replaceExt; | |