UNPKG

xo-vmdk-to-vhd

Version:
102 lines (101 loc) 3.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "ParsableFile", { enumerable: true, get: function () { return _ovaRead.ParsableFile; } }); exports.computeVmdkLength = computeVmdkLength; Object.defineProperty(exports, "parseOVAFile", { enumerable: true, get: function () { return _ovaRead.parseOVAFile; } }); Object.defineProperty(exports, "readCapacityAndGrainTable", { enumerable: true, get: function () { return _vmdkReadTable.readCapacityAndGrainTable; } }); Object.defineProperty(exports, "readVmdkGrainTable", { enumerable: true, get: function () { return _vmdkReadTable.default; } }); exports.vhdToVMDK = vhdToVMDK; exports.vhdToVMDKIterator = vhdToVMDKIterator; exports.vmdkToVhd = vmdkToVhd; Object.defineProperty(exports, "writeOvaOn", { enumerable: true, get: function () { return _ovaGenerate.writeOvaOn; } }); var _asyncIteratorToStream = _interopRequireDefault(require("async-iterator-to-stream")); var _createReadableSparseStream = _interopRequireDefault(require("vhd-lib/createReadableSparseStream.js")); var _ovaRead = require("./ova-read"); var _vmdkRead = _interopRequireDefault(require("./vmdk-read")); var _vmdkGenerate = require("./vmdk-generate"); var _ovaGenerate = require("./ova-generate"); var _parseVhdToBlocks = require("./parseVhdToBlocks"); var _vmdkReadTable = _interopRequireWildcard(require("./vmdk-read-table")); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } async function vmdkToVhd(vmdkReadStream, grainLogicalAddressList, grainFileOffsetList, gzipped = false, length) { const parser = new _vmdkRead.default(vmdkReadStream, grainLogicalAddressList, grainFileOffsetList, gzipped, length); const header = await parser.readHeader(); const vhdStream = await (0, _createReadableSparseStream.default)(header.capacitySectors * 512, header.grainSizeSectors * 512, grainLogicalAddressList, parser.blockIterator()); vhdStream._rawLength = parser.descriptor.extents[0].size; return vhdStream; } async function computeVmdkLength(diskName, vhdReadStream) { let length = 0; const { iterator } = await vhdToVMDKIterator(diskName, vhdReadStream); for await (const b of iterator) { length += b.length; } return length; } async function vhdToVMDK(diskName, vhdReadStreamGetter, withLength = false) { const { iterator, size } = await vhdToVMDKIterator(diskName, await vhdReadStreamGetter()); let length; const stream = await (0, _asyncIteratorToStream.default)(iterator); if (withLength) { if (size === undefined) { length = await computeVmdkLength(diskName, await vhdReadStreamGetter()); } else { length = size; } stream.length = length; } return stream; } async function vhdToVMDKIterator(diskName, vhdReadStream) { const { blockSize, blockCount, blocks, diskSize, geometry } = await (0, _parseVhdToBlocks.parseVhdToBlocks)(vhdReadStream); const dataSize = blockSize * blockCount; const { iterator, metadataSize } = await (0, _vmdkGenerate.generateVmdkData)(diskName, diskSize, blockSize, blocks, geometry, dataSize); return { iterator, size: dataSize + metadataSize }; } //# sourceMappingURL=index.js.map