wishthis/node_modules/replace-ext/index.js

34 lines
767 B
JavaScript
Raw Normal View History

2022-01-21 08:28:41 +00:00
'use strict';
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;