本文整理汇总了TypeScript中common/format/filesize.fileSize函数的典型用法代码示例。如果您正苦于以下问题:TypeScript fileSize函数的具体用法?TypeScript fileSize怎么用?TypeScript fileSize使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了fileSize函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it("fileSize", () => {
assert.equal(fileSize(1023), "1023 B");
assert.equal(fileSize(234090), "229 KiB");
assert.equal(fileSize(6934028), "6.6 MiB");
assert.equal(fileSize(239502889), "228 MiB");
assert.equal(fileSize(2395028891), "2.2 GiB");
});
示例2: makeUploadButton
export function makeUploadButton(
upload: Upload,
opts = { showSize: true } as IMakeUploadButtonOpts
): IUploadButton {
let label = `${upload.displayName || upload.filename}`;
let tags: IModalButtonTag[] = [];
if (upload.size > 0 && opts.showSize) {
tags.push({
label: `${fileSize(upload.size)}`,
});
}
if (upload.demo) {
tags.push({
label: ["pick_update_upload.tags.demo"],
});
}
for (const prop of Object.keys(platformData)) {
if ((upload as any)[prop]) {
tags.push({
icon: platformData[prop].icon,
});
}
}
const timeAgo = {
date: upload.updatedAt,
};
const icon = uploadIcon(upload) || "download";
return { label, tags, icon, timeAgo };
}
示例3: onProgress
progressStream.on("progress", info => {
onProgress({
progress: info.percentage / 100,
eta: info.eta,
bps: info.speed,
doneBytes: (info.percentage / 100) * totalSize,
totalBytes: totalSize,
});
logger.info(
`${info.percentage.toFixed(1)}% done, eta ${info.eta.toFixed(
1
)}s @ ${fileSize(info.speed)}/s`
);
});
示例4: downloadToFile
export async function downloadToFile(
onProgress: (progress: ProgressInfo) => void,
logger: Logger,
url: string,
file: string
) {
const dir = dirname(file);
try {
await sf.mkdirp(dir);
} catch (e) {
logger.error(`Could not create ${dir}: ${e.message}`);
}
const fileSink = sf.createWriteStream(file, {
flags: "w",
mode: 0o777,
defaultEncoding: "binary",
}) as WriteStream;
try {
let totalSize = 0;
let progressStream: NodeJS.ReadWriteStream;
await request(
"get",
url,
{},
{
sink: () => {
progressStream = progress({ length: totalSize, time: 500 });
progressStream.on("progress", info => {
onProgress({
progress: info.percentage / 100,
eta: info.eta,
bps: info.speed,
doneBytes: (info.percentage / 100) * totalSize,
totalBytes: totalSize,
});
logger.info(
`${info.percentage.toFixed(1)}% done, eta ${info.eta.toFixed(
1
)}s @ ${fileSize(info.speed)}/s`
);
});
progressStream.pipe(fileSink);
return progressStream;
},
cb: res => {
logger.info(`HTTP ${res.statusCode} ${url}`);
if (!/^2/.test("" + res.statusCode)) {
const e = new Error(`HTTP ${res.statusCode} ${url}`) as HTTPError;
e.httpStatusCode = res.statusCode;
throw e;
}
const contentLengthHeader = res.headers["content-length"];
if (!isEmpty(contentLengthHeader)) {
totalSize = parseInt(contentLengthHeader[0], 10);
}
},
}
);
await sf.promised(fileSink);
const stats = await sf.lstat(file);
logger.info(
`Downloaded ${fileSize(stats.size)} / ${fileSize(totalSize)} (${
stats.size
} bytes)`
);
if (totalSize !== 0 && stats.size !== totalSize) {
throw new Error(`download failed (short size) for ${url}`);
}
} finally {
fileSink.end();
}
}