mirror of
https://github.com/balena-io/etcher.git
synced 2025-04-24 07:17:18 +00:00
Merge pull request #2052 from resin-io/sdk-refactor
feat(sdk): Consolidate low-level components into SDK
This commit is contained in:
commit
1fa9d7d7d7
@ -22,10 +22,10 @@ const fs = Bluebird.promisifyAll(require('fs'))
|
||||
const mountutils = Bluebird.promisifyAll(require('mountutils'))
|
||||
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
||||
const os = require('os')
|
||||
const imageStream = require('../image-stream')
|
||||
const imageStream = require('../sdk/image-stream')
|
||||
const errors = require('../shared/errors')
|
||||
const constraints = require('../shared/drive-constraints')
|
||||
const ImageWriter = require('../writer')
|
||||
const ImageWriter = require('../sdk/writer')
|
||||
const diskpart = require('./diskpart')
|
||||
|
||||
/**
|
||||
|
@ -21,7 +21,7 @@ const Bluebird = require('bluebird')
|
||||
const fs = Bluebird.promisifyAll(require('fs'))
|
||||
const path = require('path')
|
||||
const settings = require('../models/settings')
|
||||
const SDK = require('../../../shared/sdk')
|
||||
const SDK = require('../../../sdk')
|
||||
|
||||
/**
|
||||
* @summary The Etcher "blobs" directory path
|
||||
@ -31,7 +31,7 @@ const SDK = require('../../../shared/sdk')
|
||||
const BLOBS_DIRECTORY = path.join(__dirname, '..', '..', 'blobs')
|
||||
|
||||
const scanner = SDK.createScanner({
|
||||
standard: {
|
||||
blockdevice: {
|
||||
get includeSystemDrives () {
|
||||
return settings.get('unsafeMode')
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ const Bluebird = require('bluebird')
|
||||
const path = require('path')
|
||||
const messages = require('../../../../../shared/messages')
|
||||
const errors = require('../../../../../shared/errors')
|
||||
const imageStream = require('../../../../../image-stream')
|
||||
const imageStream = require('../../../../../sdk/image-stream')
|
||||
const supportedFormats = require('../../../../../shared/supported-formats')
|
||||
const analytics = require('../../../modules/analytics')
|
||||
const selectionState = require('../../../../../shared/models/selection-state')
|
||||
|
@ -22,15 +22,15 @@ const EventEmitter = require('events')
|
||||
const drivelist = Bluebird.promisifyAll(require('drivelist'))
|
||||
|
||||
/**
|
||||
* @summary StandardAdapter
|
||||
* @summary BlockDeviceAdapter
|
||||
* @class
|
||||
*/
|
||||
class StandardAdapter extends EventEmitter {
|
||||
class BlockDeviceAdapter extends EventEmitter {
|
||||
/**
|
||||
* @summary StandardAdapter constructor
|
||||
* @summary BlockDeviceAdapter constructor
|
||||
* @class
|
||||
* @example
|
||||
* const adapter = new StandardAdapter()
|
||||
* const adapter = new BlockDeviceAdapter()
|
||||
*/
|
||||
constructor () {
|
||||
super()
|
||||
@ -51,7 +51,7 @@ class StandardAdapter extends EventEmitter {
|
||||
* @param {Object} [options] - options
|
||||
* @param {Object} [options.includeSystemDrives=false] - include system drives
|
||||
* @param {Function} [callback] - optional callback
|
||||
* @returns {StandardAdapter}
|
||||
* @returns {BlockDeviceAdapter}
|
||||
*
|
||||
* @example
|
||||
* adapter.scan({
|
||||
@ -101,7 +101,7 @@ class StandardAdapter extends EventEmitter {
|
||||
* @type {String}
|
||||
* @constant
|
||||
*/
|
||||
StandardAdapter.id = 'standard'
|
||||
BlockDeviceAdapter.id = 'blockdevice'
|
||||
|
||||
// Exports
|
||||
module.exports = StandardAdapter
|
||||
module.exports = BlockDeviceAdapter
|
46
lib/sdk/adapters/index.js
Normal file
46
lib/sdk/adapters/index.js
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright 2017 resin.io
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
const _ = require('lodash')
|
||||
const os = require('os')
|
||||
|
||||
/**
|
||||
* @summary The list of loaded adapters
|
||||
* @type {Object[]}
|
||||
* @constant
|
||||
*/
|
||||
const ADAPTERS = [
|
||||
require('./blockdevice')
|
||||
]
|
||||
|
||||
// We don't support usbboot on GNU/Linux yet, given
|
||||
// that some distributions require root permissions
|
||||
// to open USB devices.
|
||||
if (os.platform() !== 'linux') {
|
||||
ADAPTERS.push(require('./usbboot'))
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Initialised adapters
|
||||
* @type {Object<String,Adapter>}
|
||||
* @constant
|
||||
*/
|
||||
module.exports = _.reduce(ADAPTERS, (adapters, Adapter) => {
|
||||
adapters[Adapter.id] = new Adapter()
|
||||
return adapters
|
||||
}, {})
|
@ -27,7 +27,7 @@ const Bluebird = require('bluebird')
|
||||
const debug = require('debug')('sdk:usbboot')
|
||||
const usb = require('./usb')
|
||||
const protocol = require('./protocol')
|
||||
const utils = require('../../utils')
|
||||
const utils = require('../../../shared/utils')
|
||||
|
||||
debug.enabled = true
|
||||
|
@ -20,7 +20,7 @@ const Bluebird = require('bluebird')
|
||||
const _ = require('lodash')
|
||||
const StreamZip = require('node-stream-zip')
|
||||
const yauzl = Bluebird.promisifyAll(require('yauzl'))
|
||||
const errors = require('../../shared/errors')
|
||||
const errors = require('../../../shared/errors')
|
||||
|
||||
/**
|
||||
* @summary Get all archive entries
|
@ -21,8 +21,8 @@ const _ = require('lodash')
|
||||
const PassThroughStream = require('stream').PassThrough
|
||||
const supportedFileTypes = require('./supported')
|
||||
const utils = require('./utils')
|
||||
const errors = require('../shared/errors')
|
||||
const fileExtensions = require('../shared/file-extensions')
|
||||
const errors = require('../../shared/errors')
|
||||
const fileExtensions = require('../../shared/file-extensions')
|
||||
|
||||
/**
|
||||
* @summary Archive metadata base path
|
@ -29,9 +29,9 @@ const udif = Bluebird.promisifyAll(require('udif'))
|
||||
const archive = require('./archive')
|
||||
const utils = require('./utils')
|
||||
const zipArchiveHooks = require('./archive-hooks/zip')
|
||||
const fileExtensions = require('../shared/file-extensions')
|
||||
const fileExtensions = require('../../shared/file-extensions')
|
||||
const path = require('path')
|
||||
const errors = require('../shared/errors')
|
||||
const errors = require('../../shared/errors')
|
||||
|
||||
/**
|
||||
* @summary Default image extension to be assumed
|
@ -23,7 +23,7 @@ const stream = require('stream')
|
||||
const mime = require('./mime')
|
||||
const handlers = require('./handlers')
|
||||
const supportedFileTypes = require('./supported')
|
||||
const errors = require('../shared/errors')
|
||||
const errors = require('../../shared/errors')
|
||||
const parsePartitions = require('./parse-partitions')
|
||||
|
||||
/**
|
||||
@ -54,7 +54,7 @@ const parsePartitions = require('./parse-partitions')
|
||||
* @returns {Promise}
|
||||
*
|
||||
* @example
|
||||
* const imageStream = require('./lib/image-stream');
|
||||
* const imageStream = require('./lib/sdk/image-stream');
|
||||
*
|
||||
* imageStream.getFromFilePath('path/to/rpi.img.xz').then((image) => {
|
||||
* console.log(`The image display name is: ${image.name}`);
|
||||
@ -106,7 +106,7 @@ exports.getFromFilePath = (file) => {
|
||||
* @returns {Promise}
|
||||
*
|
||||
* @example
|
||||
* const imageStream = require('./lib/image-stream');
|
||||
* const imageStream = require('./lib/sdk/image-stream');
|
||||
*
|
||||
* imageStream.getImageMetadata('path/to/rpi.img.xz').then((metadata) => {
|
||||
* console.log(`The image display name is: ${metadata.name}`);
|
||||
@ -131,7 +131,7 @@ exports.getImageMetadata = (file) => {
|
||||
* @public
|
||||
*
|
||||
* @example
|
||||
* const imageStream = require('./lib/image-stream');
|
||||
* const imageStream = require('./lib/sdk/image-stream');
|
||||
*
|
||||
* imageStream.supportedFileTypes.forEach((fileType) => {
|
||||
* console.log('Supported file type: ' + fileType.extension);
|
@ -18,7 +18,7 @@
|
||||
|
||||
const Bluebird = require('bluebird')
|
||||
const fs = Bluebird.promisifyAll(require('fs'))
|
||||
const errors = require('../shared/errors')
|
||||
const errors = require('../../shared/errors')
|
||||
|
||||
/**
|
||||
* @summary Read a buffer from an image file descriptor
|
47
lib/sdk/index.js
Normal file
47
lib/sdk/index.js
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright 2017 resin.io
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict'
|
||||
|
||||
const SDK = module.exports
|
||||
|
||||
/**
|
||||
* @summary Initialised adapters
|
||||
* @type {Object<String,Adapter>}
|
||||
* @constant
|
||||
*/
|
||||
SDK.adapters = require('./adapters')
|
||||
|
||||
/**
|
||||
* Adapter Scanner
|
||||
* @see scanner.js
|
||||
* @ignore
|
||||
*/
|
||||
SDK.Scanner = require('./scanner')
|
||||
|
||||
/**
|
||||
* @summary Create a new Scanner
|
||||
* @param {Object} [options] - options
|
||||
* @returns {SDK.Scanner}
|
||||
* @example
|
||||
* SDK.createScanner({
|
||||
* blockdevice: { ... },
|
||||
* usbboot: { ... }
|
||||
* })
|
||||
*/
|
||||
SDK.createScanner = (options) => {
|
||||
return new SDK.Scanner(options)
|
||||
}
|
@ -16,54 +16,28 @@
|
||||
|
||||
'use strict'
|
||||
|
||||
const EventEmitter = require('events')
|
||||
const _ = require('lodash')
|
||||
const SDK = module.exports
|
||||
const debug = require('debug')('sdk')
|
||||
const os = require('os')
|
||||
const EventEmitter = require('events')
|
||||
const debug = require('debug')('sdk:scanner')
|
||||
const SDK = require('./')
|
||||
|
||||
debug.enabled = true
|
||||
|
||||
/**
|
||||
* @summary The list of loaded adapters
|
||||
* @type {Object[]}
|
||||
* @constant
|
||||
*/
|
||||
const ADAPTERS = [
|
||||
require('./standard')
|
||||
]
|
||||
|
||||
// We don't support usbboot on GNU/Linux yet, given
|
||||
// that some distributions require root permissions
|
||||
// to open USB devices.
|
||||
if (os.platform() !== 'linux') {
|
||||
ADAPTERS.push(require('./usbboot'))
|
||||
}
|
||||
|
||||
/**
|
||||
* @summary Initialised adapters
|
||||
* @type {Object<String,Adapter>}
|
||||
* @constant
|
||||
*/
|
||||
SDK.adapters = _.reduce(ADAPTERS, (adapters, Adapter) => {
|
||||
adapters[Adapter.id] = new Adapter()
|
||||
return adapters
|
||||
}, {})
|
||||
|
||||
/* eslint-disable lodash/prefer-lodash-method */
|
||||
|
||||
/**
|
||||
* Adapter Scanner
|
||||
* @class Scanner
|
||||
* @memberOf SDK
|
||||
*/
|
||||
SDK.Scanner = class Scanner extends EventEmitter {
|
||||
class Scanner extends EventEmitter {
|
||||
/**
|
||||
* @summary Adapter Scanner constructor
|
||||
* @param {Object<String,Object>} [options] - device adapter options
|
||||
* @param {Object} [options.adapters] - map of external device adapters
|
||||
* @example
|
||||
* new SDK.Scanner({
|
||||
* standard: { ... },
|
||||
* new Scanner({
|
||||
* blockdevice: { ... },
|
||||
* usbboot: { ... }
|
||||
* })
|
||||
*/
|
||||
@ -133,7 +107,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
/**
|
||||
* @summary Start scanning for devices
|
||||
* @public
|
||||
* @returns {SDK.Scanner}
|
||||
* @returns {Scanner}
|
||||
* @example
|
||||
* scanner.start()
|
||||
*/
|
||||
@ -156,7 +130,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
const runScan = () => {
|
||||
adapter.scan(options, () => {
|
||||
if (this.isScanning) {
|
||||
setTimeout(runScan, SDK.Scanner.MIN_SCAN_DELAY)
|
||||
setTimeout(runScan, Scanner.MIN_SCAN_DELAY)
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -177,7 +151,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
/**
|
||||
* @summary Stop scanning for devices
|
||||
* @public
|
||||
* @returns {SDK.Scanner}
|
||||
* @returns {Scanner}
|
||||
* @example
|
||||
* scanner.stop()
|
||||
*/
|
||||
@ -202,7 +176,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
* @summary Subscribe to an adapter
|
||||
* @public
|
||||
* @param {Adapter} adapter - device adapter
|
||||
* @returns {SDK.Scanner}
|
||||
* @returns {Scanner}
|
||||
* @example
|
||||
* scanner.subscribe(adapter)
|
||||
*/
|
||||
@ -223,7 +197,7 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
* @summary Unsubscribe from an adapter
|
||||
* @public
|
||||
* @param {Adapter} adapter - device adapter
|
||||
* @returns {SDK.Scanner}
|
||||
* @returns {Scanner}
|
||||
* @example
|
||||
* scanner.unsubscribe(adapter)
|
||||
* // OR
|
||||
@ -253,18 +227,6 @@ SDK.Scanner = class Scanner extends EventEmitter {
|
||||
* @const
|
||||
* @type {Number}
|
||||
*/
|
||||
SDK.Scanner.MIN_SCAN_DELAY = 500
|
||||
Scanner.MIN_SCAN_DELAY = 500
|
||||
|
||||
/**
|
||||
* @summary Create a new Scanner
|
||||
* @param {Object} [options] - options
|
||||
* @returns {SDK.Scanner}
|
||||
* @example
|
||||
* SDK.createScanner({
|
||||
* standard: { ... },
|
||||
* usbboot: { ... }
|
||||
* })
|
||||
*/
|
||||
SDK.createScanner = (options) => {
|
||||
return new SDK.Scanner(options)
|
||||
}
|
||||
module.exports = Scanner
|
@ -18,7 +18,7 @@
|
||||
|
||||
const _ = require('lodash')
|
||||
const path = require('path')
|
||||
const imageStream = require('../image-stream')
|
||||
const imageStream = require('../sdk/image-stream')
|
||||
const fileExtensions = require('./file-extensions')
|
||||
|
||||
/**
|
||||
|
@ -164,7 +164,7 @@ describe('Browser: driveScanner', function () {
|
||||
path: '/mnt/foo'
|
||||
}
|
||||
],
|
||||
adapter: 'standard',
|
||||
adapter: 'blockdevice',
|
||||
isSystem: false,
|
||||
isRemovable: false
|
||||
},
|
||||
@ -178,7 +178,7 @@ describe('Browser: driveScanner', function () {
|
||||
path: '/mnt/bar'
|
||||
}
|
||||
],
|
||||
adapter: 'standard',
|
||||
adapter: 'blockdevice',
|
||||
isSystem: false,
|
||||
isRemovable: false
|
||||
}
|
||||
@ -268,7 +268,7 @@ describe('Browser: driveScanner', function () {
|
||||
description: 'Foo',
|
||||
size: '14G',
|
||||
mountpoints: [],
|
||||
adapter: 'standard',
|
||||
adapter: 'blockdevice',
|
||||
isSystem: false,
|
||||
isRemovable: false
|
||||
},
|
||||
@ -282,7 +282,7 @@ describe('Browser: driveScanner', function () {
|
||||
path: 'F:'
|
||||
}
|
||||
],
|
||||
adapter: 'standard',
|
||||
adapter: 'blockdevice',
|
||||
isSystem: false,
|
||||
isRemovable: false
|
||||
}
|
||||
|
@ -18,8 +18,8 @@
|
||||
|
||||
const m = require('mochainon')
|
||||
const path = require('path')
|
||||
const zipHooks = require('../../../lib/image-stream/archive-hooks/zip')
|
||||
const utils = require('../../../lib/image-stream/utils')
|
||||
const zipHooks = require('../../../lib/sdk/image-stream/archive-hooks/zip')
|
||||
const utils = require('../../../lib/sdk/image-stream/utils')
|
||||
const tester = require('../tester')
|
||||
const ZIP_PATH = path.join(__dirname, '..', 'data', 'zip')
|
||||
|
||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const BZ2_PATH = path.join(DATA_PATH, 'bz2')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: BZ2', function () {
|
||||
|
@ -21,7 +21,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const errors = require('../../lib/shared/errors')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
|
||||
describe('ImageStream: Directory', function () {
|
||||
describe('.getFromFilePath()', function () {
|
||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const DMG_PATH = path.join(DATA_PATH, 'dmg')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: DMG', function () {
|
||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const GZ_PATH = path.join(DATA_PATH, 'gz')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: GZ', function () {
|
||||
|
@ -21,7 +21,7 @@ const fs = require('fs')
|
||||
const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: IMG', function () {
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
const m = require('mochainon')
|
||||
const _ = require('lodash')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
|
||||
describe('ImageStream', function () {
|
||||
describe('.supportedFileTypes', function () {
|
||||
|
@ -21,7 +21,7 @@ const fs = require('fs')
|
||||
const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: ISO', function () {
|
||||
|
@ -22,7 +22,7 @@ const DATA_PATH = path.join(__dirname, '..', 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const ZIP_PATH = path.join(DATA_PATH, 'metadata', 'zip')
|
||||
const tester = require('../tester')
|
||||
const imageStream = require('../../../lib/image-stream/index')
|
||||
const imageStream = require('../../../lib/sdk/image-stream/index')
|
||||
|
||||
const testMetadataProperty = (archivePath, propertyName, expectedValue) => {
|
||||
return imageStream.getFromFilePath(archivePath).then((image) => {
|
||||
|
@ -19,7 +19,7 @@
|
||||
const m = require('mochainon')
|
||||
const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const mime = require('../../lib/image-stream/mime')
|
||||
const mime = require('../../lib/sdk/image-stream/mime')
|
||||
|
||||
describe('ImageStream: MIME', function () {
|
||||
describe('.getMimeTypeFromFileName()', function () {
|
||||
|
@ -22,7 +22,7 @@ const Bluebird = require('bluebird')
|
||||
const fs = Bluebird.promisifyAll(require('fs'))
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
|
||||
const doFilesContainTheSameData = (file1, file2) => {
|
||||
return Bluebird.props({
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
const m = require('mochainon')
|
||||
const StreamReadable = require('stream').Readable
|
||||
const utils = require('../../lib/image-stream/utils')
|
||||
const utils = require('../../lib/sdk/image-stream/utils')
|
||||
|
||||
describe('ImageStream: Utils', function () {
|
||||
describe('.extractStream()', function () {
|
||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const XZ_PATH = path.join(DATA_PATH, 'xz')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: XZ', function () {
|
||||
|
@ -22,7 +22,7 @@ const path = require('path')
|
||||
const DATA_PATH = path.join(__dirname, 'data')
|
||||
const IMAGES_PATH = path.join(DATA_PATH, 'images')
|
||||
const ZIP_PATH = path.join(DATA_PATH, 'zip')
|
||||
const imageStream = require('../../lib/image-stream/index')
|
||||
const imageStream = require('../../lib/sdk/image-stream/index')
|
||||
const tester = require('./tester')
|
||||
|
||||
describe('ImageStream: ZIP', function () {
|
||||
|
@ -39,7 +39,7 @@ module.exports = {
|
||||
// on the tree (for testing purposes) or inside a generated
|
||||
// bundle (for production purposes), by translating
|
||||
// relative require paths within the bundle.
|
||||
if (/\.\/(shared|image-stream)/i.test(request)) {
|
||||
if (/\/(sdk|shared)/i.test(request)) {
|
||||
return callback(null, `commonjs ../../../lib/${_.replace(request, /(\.\.\/)*/, '')}`)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user