mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-23 11:16:39 +00:00
Fix imports in child-writer.ts
Change-type: none
This commit is contained in:
parent
4e68955981
commit
50730bd3df
@ -15,12 +15,23 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Drive as DrivelistDrive } from 'drivelist';
|
import { Drive as DrivelistDrive } from 'drivelist';
|
||||||
import * as sdk from 'etcher-sdk';
|
import {
|
||||||
|
BlockDevice,
|
||||||
|
File,
|
||||||
|
Http,
|
||||||
|
Metadata,
|
||||||
|
SourceDestination,
|
||||||
|
} from 'etcher-sdk/build/source-destination';
|
||||||
|
import {
|
||||||
|
MultiDestinationProgress,
|
||||||
|
OnProgressFunction,
|
||||||
|
OnFailFunction,
|
||||||
|
decompressThenFlash,
|
||||||
|
} from 'etcher-sdk/build/multi-write';
|
||||||
import { cleanupTmpFiles } from 'etcher-sdk/build/tmp';
|
import { cleanupTmpFiles } from 'etcher-sdk/build/tmp';
|
||||||
import * as ipc from 'node-ipc';
|
import * as ipc from 'node-ipc';
|
||||||
import { totalmem } from 'os';
|
import { totalmem } from 'os';
|
||||||
|
|
||||||
import { BlockDevice, File, Http } from 'etcher-sdk/build/source-destination';
|
|
||||||
import { toJSON } from '../../shared/errors';
|
import { toJSON } from '../../shared/errors';
|
||||||
import { GENERAL_ERROR, SUCCESS } from '../../shared/exit-codes';
|
import { GENERAL_ERROR, SUCCESS } from '../../shared/exit-codes';
|
||||||
import { delay } from '../../shared/utils';
|
import { delay } from '../../shared/utils';
|
||||||
@ -85,7 +96,7 @@ export interface WriteResult {
|
|||||||
successful: number;
|
successful: number;
|
||||||
};
|
};
|
||||||
errors: FlashError[];
|
errors: FlashError[];
|
||||||
sourceMetadata?: sdk.sourceDestination.Metadata;
|
sourceMetadata?: Metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FlashResults extends WriteResult {
|
export interface FlashResults extends WriteResult {
|
||||||
@ -112,19 +123,15 @@ async function writeAndValidate({
|
|||||||
onProgress,
|
onProgress,
|
||||||
onFail,
|
onFail,
|
||||||
}: {
|
}: {
|
||||||
source: sdk.sourceDestination.SourceDestination;
|
source: SourceDestination;
|
||||||
destinations: sdk.sourceDestination.BlockDevice[];
|
destinations: BlockDevice[];
|
||||||
verify: boolean;
|
verify: boolean;
|
||||||
autoBlockmapping: boolean;
|
autoBlockmapping: boolean;
|
||||||
decompressFirst: boolean;
|
decompressFirst: boolean;
|
||||||
onProgress: sdk.multiWrite.OnProgressFunction;
|
onProgress: OnProgressFunction;
|
||||||
onFail: sdk.multiWrite.OnFailFunction;
|
onFail: OnFailFunction;
|
||||||
}): Promise<WriteResult> {
|
}): Promise<WriteResult> {
|
||||||
const {
|
const { sourceMetadata, failures, bytesWritten } = await decompressThenFlash({
|
||||||
sourceMetadata,
|
|
||||||
failures,
|
|
||||||
bytesWritten,
|
|
||||||
} = await sdk.multiWrite.decompressThenFlash({
|
|
||||||
source,
|
source,
|
||||||
destinations,
|
destinations,
|
||||||
onFail,
|
onFail,
|
||||||
@ -149,7 +156,7 @@ async function writeAndValidate({
|
|||||||
};
|
};
|
||||||
for (const [destination, error] of failures) {
|
for (const [destination, error] of failures) {
|
||||||
const err = error as FlashError;
|
const err = error as FlashError;
|
||||||
const drive = destination as sdk.sourceDestination.BlockDevice;
|
const drive = destination as BlockDevice;
|
||||||
err.device = drive.device;
|
err.device = drive.device;
|
||||||
err.description = drive.description;
|
err.description = drive.description;
|
||||||
result.errors.push(err);
|
result.errors.push(err);
|
||||||
@ -201,7 +208,7 @@ ipc.connectTo(IPC_SERVER_ID, () => {
|
|||||||
* @example
|
* @example
|
||||||
* writer.on('progress', onProgress)
|
* writer.on('progress', onProgress)
|
||||||
*/
|
*/
|
||||||
const onProgress = (state: sdk.multiWrite.MultiDestinationProgress) => {
|
const onProgress = (state: MultiDestinationProgress) => {
|
||||||
ipc.of[IPC_SERVER_ID].emit('state', state);
|
ipc.of[IPC_SERVER_ID].emit('state', state);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -237,10 +244,7 @@ ipc.connectTo(IPC_SERVER_ID, () => {
|
|||||||
* @example
|
* @example
|
||||||
* writer.on('fail', onFail)
|
* writer.on('fail', onFail)
|
||||||
*/
|
*/
|
||||||
const onFail = (
|
const onFail = (destination: SourceDestination, error: Error) => {
|
||||||
destination: sdk.sourceDestination.SourceDestination,
|
|
||||||
error: Error,
|
|
||||||
) => {
|
|
||||||
ipc.of[IPC_SERVER_ID].emit('fail', {
|
ipc.of[IPC_SERVER_ID].emit('fail', {
|
||||||
// TODO: device should be destination
|
// TODO: device should be destination
|
||||||
// @ts-ignore (destination.drive is private)
|
// @ts-ignore (destination.drive is private)
|
||||||
@ -257,7 +261,7 @@ ipc.connectTo(IPC_SERVER_ID, () => {
|
|||||||
log(`Auto blockmapping: ${options.autoBlockmapping}`);
|
log(`Auto blockmapping: ${options.autoBlockmapping}`);
|
||||||
log(`Decompress first: ${options.decompressFirst}`);
|
log(`Decompress first: ${options.decompressFirst}`);
|
||||||
const dests = options.destinations.map((destination) => {
|
const dests = options.destinations.map((destination) => {
|
||||||
return new sdk.sourceDestination.BlockDevice({
|
return new BlockDevice({
|
||||||
drive: destination,
|
drive: destination,
|
||||||
unmountOnSuccess: options.unmountOnSuccess,
|
unmountOnSuccess: options.unmountOnSuccess,
|
||||||
write: true,
|
write: true,
|
||||||
@ -298,7 +302,6 @@ ipc.connectTo(IPC_SERVER_ID, () => {
|
|||||||
await delay(DISCONNECT_DELAY);
|
await delay(DISCONNECT_DELAY);
|
||||||
await terminate(exitCode);
|
await terminate(exitCode);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
log(`Error: ${error.message}`);
|
|
||||||
exitCode = GENERAL_ERROR;
|
exitCode = GENERAL_ERROR;
|
||||||
ipc.of[IPC_SERVER_ID].emit('error', toJSON(error));
|
ipc.of[IPC_SERVER_ID].emit('error', toJSON(error));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user