@uppy/utils
Advanced tools
Comparing version 2.1.1 to 2.1.2
@@ -7,9 +7,29 @@ /** | ||
* @returns {string} the fileID | ||
* | ||
*/ | ||
module.exports = function generateFileID(file) { | ||
// filter is needed to not join empty values with `-` | ||
return ['uppy', file.name ? encodeFilename(file.name.toLowerCase()) : '', file.type, file.meta && file.meta.relativePath ? encodeFilename(file.meta.relativePath.toLowerCase()) : '', file.data.size, file.data.lastModified].filter(function (val) { | ||
return val; | ||
}).join('-'); | ||
// It's tempting to do `[items].filter(Boolean).join('-')` here, but that | ||
// is slower! simple string concatenation is fast | ||
var id = 'uppy'; | ||
if (typeof file.name === 'string') { | ||
id += '-' + encodeFilename(file.name.toLowerCase()); | ||
} | ||
if (file.type !== undefined) { | ||
id += '-' + file.type; | ||
} | ||
if (file.meta && typeof file.meta.relativePath === 'string') { | ||
id += '-' + encodeFilename(file.meta.relativePath.toLowerCase()); | ||
} | ||
if (file.data.size !== undefined) { | ||
id += '-' + file.data.size; | ||
} | ||
if (file.data.lastModified !== undefined) { | ||
id += '-' + file.data.lastModified; | ||
} | ||
return id; | ||
}; | ||
@@ -16,0 +36,0 @@ |
@@ -8,9 +8,15 @@ /** | ||
module.exports = function getFileNameAndExtension(fullFileName) { | ||
var re = /(?:\.([^.]+))?$/; | ||
var fileExt = re.exec(fullFileName)[1]; | ||
var fileName = fullFileName.replace('.' + fileExt, ''); | ||
return { | ||
name: fileName, | ||
extension: fileExt | ||
}; | ||
var lastDot = fullFileName.lastIndexOf('.'); // these count as no extension: "no-dot", "trailing-dot." | ||
if (lastDot === -1 || lastDot === fullFileName.length - 1) { | ||
return { | ||
name: fullFileName, | ||
extension: undefined | ||
}; | ||
} else { | ||
return { | ||
name: fullFileName.slice(0, lastDot), | ||
extension: fullFileName.slice(lastDot + 1) | ||
}; | ||
} | ||
}; |
{ | ||
"name": "@uppy/utils", | ||
"description": "Shared utility functions for Uppy Core and plugins maintained by the Uppy team.", | ||
"version": "2.1.1", | ||
"version": "2.1.2", | ||
"license": "MIT", | ||
@@ -23,3 +23,3 @@ "main": "lib/index.js", | ||
}, | ||
"gitHead": "18180d577854d1a78588d67eb210528b207bf130" | ||
"gitHead": "2b91a96c95ea1aa32980984904f9877d8a4c4440" | ||
} |
@@ -7,14 +7,28 @@ /** | ||
* @returns {string} the fileID | ||
* | ||
*/ | ||
module.exports = function generateFileID (file) { | ||
// filter is needed to not join empty values with `-` | ||
return [ | ||
'uppy', | ||
file.name ? encodeFilename(file.name.toLowerCase()) : '', | ||
file.type, | ||
file.meta && file.meta.relativePath ? encodeFilename(file.meta.relativePath.toLowerCase()) : '', | ||
file.data.size, | ||
file.data.lastModified | ||
].filter(val => val).join('-') | ||
// It's tempting to do `[items].filter(Boolean).join('-')` here, but that | ||
// is slower! simple string concatenation is fast | ||
let id = 'uppy' | ||
if (typeof file.name === 'string') { | ||
id += '-' + encodeFilename(file.name.toLowerCase()) | ||
} | ||
if (file.type !== undefined) { | ||
id += '-' + file.type | ||
} | ||
if (file.meta && typeof file.meta.relativePath === 'string') { | ||
id += '-' + encodeFilename(file.meta.relativePath.toLowerCase()) | ||
} | ||
if (file.data.size !== undefined) { | ||
id += '-' + file.data.size | ||
} | ||
if (file.data.lastModified !== undefined) { | ||
id += '-' + file.data.lastModified | ||
} | ||
return id | ||
} | ||
@@ -21,0 +35,0 @@ |
@@ -8,9 +8,15 @@ /** | ||
module.exports = function getFileNameAndExtension (fullFileName) { | ||
var re = /(?:\.([^.]+))?$/ | ||
var fileExt = re.exec(fullFileName)[1] | ||
var fileName = fullFileName.replace('.' + fileExt, '') | ||
return { | ||
name: fileName, | ||
extension: fileExt | ||
const lastDot = fullFileName.lastIndexOf('.') | ||
// these count as no extension: "no-dot", "trailing-dot." | ||
if (lastDot === -1 || lastDot === fullFileName.length - 1) { | ||
return { | ||
name: fullFileName, | ||
extension: undefined | ||
} | ||
} else { | ||
return { | ||
name: fullFileName.slice(0, lastDot), | ||
extension: fullFileName.slice(lastDot + 1) | ||
} | ||
} | ||
} |
@@ -122,3 +122,3 @@ declare module '@uppy/utils/lib/Translator' { | ||
declare module '@uppy/utils/lib/getFileNameAndExtension' { | ||
function getFileNameAndExtension(filename: string): { name: string, extension: string }; | ||
function getFileNameAndExtension(filename: string): { name: string, extension: string | undefined }; | ||
export = getFileNameAndExtension | ||
@@ -125,0 +125,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
118968
2381