本文整理匯總了TypeScript中fs-extra.closeSync函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript closeSync函數的具體用法?TypeScript closeSync怎麽用?TypeScript closeSync使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了closeSync函數的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: closeFile
closeFile() {
fs.closeSync(this.out);
}
示例2: 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);
}
}