| 'use strict'; |
| |
| var path = require('path'); |
| |
| function getLongExtension(basename) { |
| if (basename[basename.length - 1] === '.') { |
| return null; |
| } |
| |
| var startIndex = (basename[0] === '.') ? 1 : 0; |
| |
| var dotIndex = basename.indexOf('.', startIndex); |
| if (dotIndex <= startIndex) { |
| return null; |
| } |
| |
| return basename.slice(dotIndex); |
| } |
| |
| function getPossibleExtensions(longExtension) { |
| var arr = [longExtension]; |
| var len = longExtension.length; |
| var startIndex = 1; |
| |
| while (startIndex < len) { |
| var dotIndex = longExtension.indexOf('.', startIndex); |
| if (dotIndex < 0) { |
| break; |
| } |
| arr.push(longExtension.slice(dotIndex)); |
| startIndex = dotIndex + 1; |
| } |
| |
| return arr; |
| } |
| |
| module.exports = function(input) { |
| var basename = path.basename(input); |
| var longExtension = getLongExtension(basename); |
| if (!longExtension) { |
| return; |
| } |
| return getPossibleExtensions(longExtension); |
| }; |