File tree Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Original file line number Diff line number Diff line change @@ -69,11 +69,25 @@ exports.getProtocol = function getProtocol (path) {
69
69
exports . getExtension = function getExtension ( path ) {
70
70
let lastDot = path . lastIndexOf ( "." ) ;
71
71
if ( lastDot >= 0 ) {
72
- return path . substr ( lastDot ) . toLowerCase ( ) ;
72
+ return url . stripQuery ( path . substr ( lastDot ) . toLowerCase ( ) ) ;
73
73
}
74
74
return "" ;
75
75
} ;
76
76
77
+ /**
78
+ * Removes the query, if any, from the given path.
79
+ *
80
+ * @param {string } path
81
+ * @returns {string }
82
+ */
83
+ exports . stripQuery = function stripQuery ( path ) {
84
+ let queryIndex = path . indexOf ( "?" ) ;
85
+ if ( queryIndex >= 0 ) {
86
+ path = path . substr ( 0 , queryIndex ) ;
87
+ }
88
+ return path ;
89
+ } ;
90
+
77
91
/**
78
92
* Returns the hash (URL fragment), of the given path.
79
93
* If there is no hash, then the root hash ("#") is returned.
Original file line number Diff line number Diff line change
1
+ "use strict" ;
2
+
3
+ const chai = require ( "chai" ) ;
4
+ const chaiSubset = require ( "chai-subset" ) ;
5
+ chai . use ( chaiSubset ) ;
6
+ const { expect } = chai ;
7
+ const $url = require ( "../../../lib/util/url" ) ;
8
+
9
+ describe ( "Return the extension of a URL" , ( ) => {
10
+ it ( "should return an empty string if there isn't any extension" , async ( ) => {
11
+ const extension = $url . getExtension ( "/file" ) ;
12
+ expect ( extension ) . to . equal ( "" ) ;
13
+ } ) ;
14
+
15
+ it ( "should return the extension in lowercase" , async ( ) => {
16
+ const extension = $url . getExtension ( "/file.YML" ) ;
17
+ expect ( extension ) . to . equal ( ".yml" ) ;
18
+ } ) ;
19
+
20
+ it ( "should return the extension without the query" , async ( ) => {
21
+ const extension = $url . getExtension ( "/file.yml?foo=bar" ) ;
22
+ expect ( extension ) . to . equal ( ".yml" ) ;
23
+ } ) ;
24
+ } ) ;
You can’t perform that action at this time.
0 commit comments