123456789101112131415161718192021222324252627282930313233 |
- '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;
|