From 02c2523429b9fe4ded103ff1b9831bb202003f00 Mon Sep 17 00:00:00 2001 From: Convly Date: Thu, 13 Oct 2022 16:52:16 +0200 Subject: [PATCH] Update transfer engine exports & providers API --- .../core/data-transfer/lib/engine/index.ts | 32 +++++++++++-------- .../core/data-transfer/types/providers.d.ts | 17 +++++----- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/packages/core/data-transfer/lib/engine/index.ts b/packages/core/data-transfer/lib/engine/index.ts index 6f349ebc87..61820deb1a 100644 --- a/packages/core/data-transfer/lib/engine/index.ts +++ b/packages/core/data-transfer/lib/engine/index.ts @@ -7,7 +7,7 @@ import { ITransferEngineOptions, } from '../../types'; -export class TransferEngine implements ITransferEngine { +class TransferEngine implements ITransferEngine { sourceProvider: ISourceProvider; destinationProvider: IDestinationProvider; options: ITransferEngineOptions; @@ -141,28 +141,26 @@ export class TransferEngine implements ITransferEngine { // } // return new Promise((resolve, reject) => { // pipeline( - // // We might want to use a json-chain's Chain here since they allow transforms - // // streams as regular functions (that allows object as parameter & return type) // inStream, - // // chain([ - // // (data) => { - // // console.log('hello', data); - // // return data; - // // }, - // // ]), + // chain([ + // (data) => { + // console.log('hello', data); + // return data; + // }, + // ]), // outStream, - // (e: NodeJS.ErrnoException | null, value: unknown) => { + // (e: NodeJS.ErrnoException | null) => { // if (e) { // console.log('Something wrong happened', e); - // reject(e); - // return; + // return reject(e); // } - // console.log('value', value); // console.log('All the entities have been transferred'); // resolve(); // } // ); // }); + console.log('transferEntities not yet implemented'); + return new Promise((resolve) => resolve()); } async transferLinks(): Promise { @@ -210,3 +208,11 @@ export class TransferEngine implements ITransferEngine { return new Promise((resolve) => resolve()); } } + +export const createTransferEngine = ( + sourceProvider: T, + destinationProvider: U, + options: ITransferEngineOptions +): TransferEngine => { + return new TransferEngine(sourceProvider, destinationProvider, options); +}; diff --git a/packages/core/data-transfer/types/providers.d.ts b/packages/core/data-transfer/types/providers.d.ts index f1fe44d384..c66800bfac 100644 --- a/packages/core/data-transfer/types/providers.d.ts +++ b/packages/core/data-transfer/types/providers.d.ts @@ -1,5 +1,6 @@ import { Stream } from './utils'; import { IMetadata } from './common-entities'; +import { PipelineSource, PipelineDestination } from 'stream'; type ProviderType = 'source' | 'destination'; @@ -14,10 +15,10 @@ interface IProvider { export interface ISourceProvider extends IProvider { // Getters for the source's transfer streams - streamEntities?(): Stream | Promise; - streamLinks?(): Stream | Promise; - streamMedia?(): Stream | Promise; - streamConfiguration?(): Stream | Promise; + streamEntities?(): PipelineSource | Promise; + streamLinks?(): PipelineSource | Promise; + streamMedia?(): PipelineSource | Promise; + streamConfiguration?(): PipelineSource | Promise; } export interface IDestinationProvider extends IProvider { @@ -27,8 +28,8 @@ export interface IDestinationProvider extends IProvider { rollback?(e: T): void | Promise; // Getters for the destination's transfer streams - getEntitiesStream?(): Stream | Promise; - getLinksStream?(): Stream | Promise; - getMediaStream?(): Stream | Promise; - getConfigurationStream?(): Stream | Promise; + getEntitiesStream?(): PipelineDestination | Promise; + getLinksStream?(): PipelineDestination | Promise; + getMediaStream?(): PipelineDestination | Promise; + getConfigurationStream?(): PipelineDestination | Promise; }