From 0d3b2bc814dfbdd7f90cf84f1c8aa00883fa95ff Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 5 Oct 2018 10:44:03 +0200 Subject: [PATCH] fix(vhd-lib,xo-vmdk-to-vhd): add polyfill for Symbol.asyncIterator (#3492) Fixes part of #3468. Fixes tests on CI. --- CHANGELOG.md | 2 ++ packages/vhd-lib/{src => }/merge.integ.spec.js | 10 ++++------ packages/vhd-lib/package.json | 1 + packages/vhd-lib/src/index.js | 3 +++ packages/vhd-lib/{src => }/vhd.integ.spec.js | 12 ++++++------ packages/xo-vmdk-to-vhd/package.json | 1 + packages/xo-vmdk-to-vhd/src/vmdk-read.js | 3 ++- yarn.lock | 5 +++++ 8 files changed, 24 insertions(+), 13 deletions(-) rename packages/vhd-lib/{src => }/merge.integ.spec.js (97%) rename packages/vhd-lib/{src => }/vhd.integ.spec.js (89%) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb572e712..ecff1b0c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ ### Released packages +- vhd-lib v0.3.2 +- xo-vmdk-to-vhd v0.1.5 - xo-server-usage-report v0.6.0 - xo-acl-resolver v0.3.0 - xo-server v5.28.0 diff --git a/packages/vhd-lib/src/merge.integ.spec.js b/packages/vhd-lib/merge.integ.spec.js similarity index 97% rename from packages/vhd-lib/src/merge.integ.spec.js rename to packages/vhd-lib/merge.integ.spec.js index 12804afee..315f26b9e 100644 --- a/packages/vhd-lib/src/merge.integ.spec.js +++ b/packages/vhd-lib/merge.integ.spec.js @@ -9,11 +9,9 @@ import { fromEvent, pFromCallback } from 'promise-toolbox' import { getHandler } from '@xen-orchestra/fs' import { randomBytes } from 'crypto' -import chainVhd from './chain' -import createReadStream from './createSyntheticStream' -import Vhd from './vhd' -import vhdMerge from './merge' -import { SECTOR_SIZE } from './_constants' +import Vhd, { chainVhd, createSyntheticStream, mergeVhd as vhdMerge } from './' + +import { SECTOR_SIZE } from './src/_constants' const initialDir = process.cwd() @@ -273,7 +271,7 @@ test('createSyntheticStream passes vhd-util check', async () => { await createRandomFile('randomfile', initalSize) await convertFromRawToVhd('randomfile', 'randomfile.vhd') const handler = getHandler({ url: 'file://' + process.cwd() }) - const stream = createReadStream(handler, 'randomfile.vhd') + const stream = createSyntheticStream(handler, 'randomfile.vhd') await fromEvent( stream.pipe(await fs.createWriteStream('recovered.vhd')), 'finish' diff --git a/packages/vhd-lib/package.json b/packages/vhd-lib/package.json index ce23b80b6..43e3e44ba 100644 --- a/packages/vhd-lib/package.json +++ b/packages/vhd-lib/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "async-iterator-to-stream": "^1.0.2", + "core-js": "3.0.0-beta.3", "from2": "^2.3.0", "fs-extra": "^7.0.0", "limit-concurrency-decorator": "^0.4.0", diff --git a/packages/vhd-lib/src/index.js b/packages/vhd-lib/src/index.js index e1a2d7282..f7122aebf 100644 --- a/packages/vhd-lib/src/index.js +++ b/packages/vhd-lib/src/index.js @@ -1,3 +1,6 @@ +// see https://github.com/babel/babel/issues/8450 +import 'core-js/features/symbol/async-iterator' + export { default } from './vhd' export { default as chainVhd } from './chain' export { default as createContentStream } from './createContentStream' diff --git a/packages/vhd-lib/src/vhd.integ.spec.js b/packages/vhd-lib/vhd.integ.spec.js similarity index 89% rename from packages/vhd-lib/src/vhd.integ.spec.js rename to packages/vhd-lib/vhd.integ.spec.js index 80a32b0ac..6e714e77e 100644 --- a/packages/vhd-lib/src/vhd.integ.spec.js +++ b/packages/vhd-lib/vhd.integ.spec.js @@ -5,9 +5,9 @@ import tmp from 'tmp' import { createWriteStream, readFile } from 'fs-promise' import { fromEvent, pFromCallback } from 'promise-toolbox' -import { createFooter } from './_createFooterHeader' -import createReadableRawVHDStream from './createReadableRawStream' -import createReadableSparseVHDStream from './createReadableSparseStream' +import { createReadableRawStream, createReadableSparseStream } from './' + +import { createFooter } from './src/_createFooterHeader' const initialDir = process.cwd() @@ -54,7 +54,7 @@ test('ReadableRawVHDStream does not crash', async () => { }, } const fileSize = 1000 - const stream = createReadableRawVHDStream(fileSize, mockParser) + const stream = createReadableRawStream(fileSize, mockParser) const pipe = stream.pipe(createWriteStream('output.vhd')) await fromEvent(pipe, 'finish') await execa('vhd-util', ['check', '-t', '-i', '-n', 'output.vhd']) @@ -85,7 +85,7 @@ test('ReadableRawVHDStream detects when blocks are out of order', async () => { } return expect( new Promise((resolve, reject) => { - const stream = createReadableRawVHDStream(100000, mockParser) + const stream = createReadableRawStream(100000, mockParser) stream.on('error', reject) const pipe = stream.pipe(createWriteStream('outputStream')) pipe.on('finish', resolve) @@ -107,7 +107,7 @@ test('ReadableSparseVHDStream can handle a sparse file', async () => { }, ] const fileSize = blockSize * 110 - const stream = createReadableSparseVHDStream( + const stream = createReadableSparseStream( fileSize, blockSize, blocks.map(b => b.offsetBytes), diff --git a/packages/xo-vmdk-to-vhd/package.json b/packages/xo-vmdk-to-vhd/package.json index bd9a467e0..071a8f640 100644 --- a/packages/xo-vmdk-to-vhd/package.json +++ b/packages/xo-vmdk-to-vhd/package.json @@ -24,6 +24,7 @@ }, "dependencies": { "child-process-promise": "^2.0.3", + "core-js": "3.0.0-beta.3", "pipette": "^0.9.3", "promise-toolbox": "^0.10.1", "tmp": "^0.0.33", diff --git a/packages/xo-vmdk-to-vhd/src/vmdk-read.js b/packages/xo-vmdk-to-vhd/src/vmdk-read.js index aa5ed4209..2a354424a 100644 --- a/packages/xo-vmdk-to-vhd/src/vmdk-read.js +++ b/packages/xo-vmdk-to-vhd/src/vmdk-read.js @@ -1,4 +1,5 @@ -'use strict' +// see https://github.com/babel/babel/issues/8450 +import 'core-js/features/symbol/async-iterator' import zlib from 'zlib' diff --git a/yarn.lock b/yarn.lock index fcdbec061..15de2a1ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3569,6 +3569,11 @@ copy-to-clipboard@^3, copy-to-clipboard@^3.0.8: dependencies: toggle-selection "^1.0.3" +core-js@3.0.0-beta.3: + version "3.0.0-beta.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0-beta.3.tgz#b0f22009972b8c6c04550ebf38513ca4b3cc9559" + integrity sha512-kM/OfrnMThP5PwGAj5HhQLdjUqzjrllqN2EVnk/X9qrLsfYjR2hzZ+E/8CzH0xuosexZtqMTLQrk//BULrBj9w== + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"