Skip to content

Commit 623e63e

Browse files
committed
Fix exceptions in path.extname for node v6, close #70 (#71)
* Fix exceptions in path.extname for node v6, close #70
1 parent 2cb5e11 commit 623e63e

File tree

4 files changed

+13
-7
lines changed

4 files changed

+13
-7
lines changed

lib/filename-generators/by-site-structure.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
var url = require('url');
22
var path = require('path');
3+
var utils = require('../utils');
34

45
module.exports = function generateFilename (resource, options) {
56
var urlObject = url.parse(resource.getUrl());
6-
var extension = path.extname(urlObject.pathname);
7-
if(resource.isHtml() && !extension){
7+
var extension = utils.getFilenameExtension(urlObject.pathname);
8+
if (resource.isHtml() && !extension) {
89
var fileName = options.defaultFilename + (urlObject.search || '');
910
return getSafeAbsoluteFilename(path.join(urlObject.pathname || '/', fileName));
1011
}
11-
else{
12+
else {
1213
return getSafeAbsoluteFilename(urlObject.pathname);
1314
}
1415
};

lib/filename-generators/by-type.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module.exports = function generateFilename (resource, options, loadedResources)
77
var occupiedFilenames = getOccupiedFilenames(loadedResources, options);
88

99
var filename = getFilenameForResource(resource, options);
10-
var extension = path.extname(filename);
10+
var extension = utils.getFilenameExtension(filename);
1111
var directory = getDirectoryByExtension(extension, options);
1212

1313
var currentFilename = path.join(directory, filename);
@@ -27,7 +27,7 @@ function getFilenameForResource (resource, options) {
2727
var filename = preferredFilename || urlFilename || options.defaultFilename;
2828

2929
var resourceType = resource.getType();
30-
var extension = path.extname(filename);
30+
var extension = utils.getFilenameExtension(filename);
3131

3232
if (!extension && defaultExtensions[resourceType]) {
3333
extension = defaultExtensions[resourceType];

lib/resource.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var _ = require('lodash');
2-
var path = require('path');
2+
var utils = require('./utils');
33
var types = require('./config/resource-types');
44
var typesByHtmlData = require('./config/resource-types-by-tag');
55

@@ -97,7 +97,7 @@ Resource.prototype.setHtmlData = function setHtmlData (data) {
9797
};
9898

9999
Resource.prototype.getType = function getType () {
100-
var ext = path.extname(this.filename);
100+
var ext = utils.getFilenameExtension(this.filename);
101101
var parent = this.parent;
102102
var hasHtmlData = !_.isEmpty(this.htmlData);
103103

lib/utils.js

+5
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,17 @@ function waitAllFulfilled (promises) {
4141
}));
4242
}
4343

44+
function getFilenameExtension (filename) {
45+
return (typeof filename === 'string') ? path.extname(filename) : null;
46+
}
47+
4448
module.exports = {
4549
isUrl: isUrl,
4650
getUrl: getUrl,
4751
getUnixPath: getUnixPath,
4852
getRelativePath: getRelativePath,
4953
getFilenameFromUrl: getFilenameFromUrl,
54+
getFilenameExtension: getFilenameExtension,
5055
getHashFromUrl: getHashFromUrl,
5156
waitAllFulfilled: waitAllFulfilled
5257
};

0 commit comments

Comments
 (0)