You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.9 KiB
JavaScript
73 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
const dotty = require("dotty");
|
|
const asciiDataTable = require("ascii-data-table");
|
|
const defaultValue = require("default-value");
|
|
const buffertrim = require("buffertrim");
|
|
|
|
const renderBytes = require("./bytes");
|
|
|
|
function formatCreationDate(creationDate) {
|
|
if (creationDate != null) {
|
|
return creationDate.format("llll");
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
function formatVolumePosition(sequenceNumber, setSize) {
|
|
if (sequenceNumber != null) {
|
|
return `${sequenceNumber}/${setSize}`;
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
function formatEncodings(encodings) {
|
|
if (encodings != null) {
|
|
return encodings.join(", ");
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
let headers = [
|
|
"ID",
|
|
"Type",
|
|
"System",
|
|
"Volume",
|
|
"Volume identifier",
|
|
"Encoding",
|
|
"Extent",
|
|
"Creation date"
|
|
];
|
|
|
|
module.exports = function renderVolumeTable(volumeDescriptors) {
|
|
let tableData = volumeDescriptors.map((descriptor, i) => {
|
|
|
|
let volumeIndex = descriptor.volumeDescriptorIndex;
|
|
let volumeType = descriptor.type;
|
|
let systemIdentifier = defaultValue(descriptor.data.systemIdentifier, "");
|
|
let volumeIdentifier = defaultValue(descriptor.data.volumeIdentifier, "");
|
|
let extentSector = defaultValue(dotty.get(descriptor, "data.rootDirectory.extentLocation"), "");
|
|
let creationDate = formatCreationDate(descriptor.data.creationDate);
|
|
let volumePosition = formatVolumePosition(descriptor.data.sequenceNumber, descriptor.data.setSize);
|
|
let encodings = formatEncodings(descriptor.data.encodings);
|
|
|
|
return [
|
|
volumeIndex,
|
|
volumeType,
|
|
systemIdentifier,
|
|
volumePosition,
|
|
volumeIdentifier,
|
|
encodings,
|
|
extentSector,
|
|
creationDate
|
|
];
|
|
});
|
|
|
|
let tableDataWithHeaders = [headers].concat(tableData);
|
|
|
|
return asciiDataTable.default.run(tableDataWithHeaders);
|
|
};
|