1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- '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);
- };
|