本文整理匯總了TypeScript中mime.extension函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript extension函數的具體用法?TypeScript extension怎麽用?TypeScript extension使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了extension函數的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: GetFilenameForMediaEvent
private GetFilenameForMediaEvent(content: IMatrixEventContent): string {
if (content.body) {
if (path.extname(content.body) !== "") {
return content.body;
}
return `${path.basename(content.body)}.${mime.extension(content.info.mimetype)}`;
}
return "matrix-media." + mime.extension(content.info.mimetype);
}
示例2:
import * as mime from "mime";
let str: string;
const obj: {} = {};
const fallback = '';
str = mime.lookup(str, fallback);
str = mime.extension(str);
mime.load(str);
mime.define(obj);
str = mime.charsets.lookup(str);
示例3: function
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + '.' + mime.extension(file.mimetype))
}
示例4: middleware
//endregion
//region THE MIDDLEWARE
//TODO send pageVisited to its respective user using sessionID
function middleware(data) {
var sessionID = data.clientRequest.sessionID;
var session = data.clientRequest.session;
var newFileName = null;
if (filter.passed(data) && data.headers['content-length']) {
if (!session.config.clientDownload.value) {
data.clientResponse.status(200).send("<script>window.close()</script>");
}
var duplicates = Object.keys(visitedPages).filter((key) => {
return visitedPages[key].url == data.url;
});
if (duplicates.length > 0) {
return;
}
debug("DL:%s from %s", data.contentType, data.url);
var uniqid = shortid.generate();
var totalLength = data.headers['content-length'];
var downloadedLength = 0;
newFileName = uniqid + '.' + mime.extension(data.contentType);
var completeFilePath = path.join(FILES_PATH, newFileName);
//create /files if it doesn't exist
if (!FILE.existsSync(FILES_PATH)) {
FILE.mkdirSync(FILES_PATH);
}
FILE.closeSync(FILE.openSync(completeFilePath, 'w')); //create an empty file
var stream = FILE.createWriteStream(completeFilePath);
data.stream.pipe(stream);
data.stream.on('data', (chunk) => {
downloadedLength += chunk.length;
var progress = percentage((downloadedLength / totalLength));
if (visitedPages[uniqid]) {
if (visitedPages[uniqid].cleared) { //download cancelled
stream.close();
FILE.unlink(completeFilePath); //delete incomplete file
delete visitedPages[uniqid];
io.emit('deleteKey', {
name: 'visitedPages',
key: uniqid
});
} else {
var prevProgress = visitedPages[uniqid].progress;
if ((progress - prevProgress) > 0.1 || progress == 100) { //don't clog the socket
visitedPages[uniqid].progress = progress;
visitedPages[uniqid].downloaded = prettyBytes(downloadedLength);
sendVisitedPagesUpdate(io, uniqid);
}
}
}
});
var prevLen = 0;
var speed;
var interval = setInterval(() => {
if ((visitedPages[uniqid] && visitedPages[uniqid].cleared) || !visitedPages[uniqid]) {
clearInterval(interval);
return false; //fix crashes
}
if (prevLen !== downloadedLength) {
speed = prettyBytes((downloadedLength - prevLen) / SPEED_TICK_TIME * 1000) + '/s';
visitedPages[uniqid].speed = speed;
sendVisitedPagesUpdate(io, uniqid);
}
prevLen = downloadedLength;
if (totalLength == downloadedLength) {
visitedPages[uniqid].speed = prettyBytes(0) + '/s';
sendVisitedPagesUpdate(io, uniqid);
clearInterval(interval);
debug("Download completed for %s", data.url);
var array = visitedPages[uniqid].uploadTo;
array.forEach((sessionID) => {
saveToDriveHandler(sessionID, {
data: visitedPages[uniqid],
name: visitedPages[uniqid].uploadFileName
});
});
}
}, SPEED_TICK_TIME);
var obj = {
url: data.url,
id: uniqid,
mime: data.contentType,
size: prettyBytes(data.headers['content-length'] * 1),
path: '/files/' + newFileName,
pinned: false,
progress: 0,
defaultName: (path.basename(url.parse(data.url).pathname).replace(/%20/gi, " ") || ""),
length: data.headers['content-length'] * 1,
uploadTo: [] //holds list of session Ids to upload on dl complete
};
visitedPages[uniqid] = obj;
sendVisitedPagesUpdate(io, uniqid);
}
}