mirror of
https://github.com/strapi/strapi.git
synced 2025-09-18 13:02:18 +00:00
Update transfer engine exports & providers API
This commit is contained in:
parent
f1ecdabd3c
commit
02c2523429
@ -7,7 +7,7 @@ import {
|
|||||||
ITransferEngineOptions,
|
ITransferEngineOptions,
|
||||||
} from '../../types';
|
} from '../../types';
|
||||||
|
|
||||||
export class TransferEngine implements ITransferEngine {
|
class TransferEngine implements ITransferEngine {
|
||||||
sourceProvider: ISourceProvider;
|
sourceProvider: ISourceProvider;
|
||||||
destinationProvider: IDestinationProvider;
|
destinationProvider: IDestinationProvider;
|
||||||
options: ITransferEngineOptions;
|
options: ITransferEngineOptions;
|
||||||
@ -141,28 +141,26 @@ export class TransferEngine implements ITransferEngine {
|
|||||||
// }
|
// }
|
||||||
// return new Promise((resolve, reject) => {
|
// return new Promise((resolve, reject) => {
|
||||||
// pipeline(
|
// 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,
|
// inStream,
|
||||||
// // chain([
|
// chain([
|
||||||
// // (data) => {
|
// (data) => {
|
||||||
// // console.log('hello', data);
|
// console.log('hello', data);
|
||||||
// // return data;
|
// return data;
|
||||||
// // },
|
// },
|
||||||
// // ]),
|
// ]),
|
||||||
// outStream,
|
// outStream,
|
||||||
// (e: NodeJS.ErrnoException | null, value: unknown) => {
|
// (e: NodeJS.ErrnoException | null) => {
|
||||||
// if (e) {
|
// if (e) {
|
||||||
// console.log('Something wrong happened', e);
|
// console.log('Something wrong happened', e);
|
||||||
// reject(e);
|
// return reject(e);
|
||||||
// return;
|
|
||||||
// }
|
// }
|
||||||
// console.log('value', value);
|
|
||||||
// console.log('All the entities have been transferred');
|
// console.log('All the entities have been transferred');
|
||||||
// resolve();
|
// resolve();
|
||||||
// }
|
// }
|
||||||
// );
|
// );
|
||||||
// });
|
// });
|
||||||
|
console.log('transferEntities not yet implemented');
|
||||||
|
return new Promise((resolve) => resolve());
|
||||||
}
|
}
|
||||||
|
|
||||||
async transferLinks(): Promise<void> {
|
async transferLinks(): Promise<void> {
|
||||||
@ -210,3 +208,11 @@ export class TransferEngine implements ITransferEngine {
|
|||||||
return new Promise((resolve) => resolve());
|
return new Promise((resolve) => resolve());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const createTransferEngine = <T extends ISourceProvider, U extends IDestinationProvider>(
|
||||||
|
sourceProvider: T,
|
||||||
|
destinationProvider: U,
|
||||||
|
options: ITransferEngineOptions
|
||||||
|
): TransferEngine => {
|
||||||
|
return new TransferEngine(sourceProvider, destinationProvider, options);
|
||||||
|
};
|
||||||
|
17
packages/core/data-transfer/types/providers.d.ts
vendored
17
packages/core/data-transfer/types/providers.d.ts
vendored
@ -1,5 +1,6 @@
|
|||||||
import { Stream } from './utils';
|
import { Stream } from './utils';
|
||||||
import { IMetadata } from './common-entities';
|
import { IMetadata } from './common-entities';
|
||||||
|
import { PipelineSource, PipelineDestination } from 'stream';
|
||||||
|
|
||||||
type ProviderType = 'source' | 'destination';
|
type ProviderType = 'source' | 'destination';
|
||||||
|
|
||||||
@ -14,10 +15,10 @@ interface IProvider {
|
|||||||
|
|
||||||
export interface ISourceProvider extends IProvider {
|
export interface ISourceProvider extends IProvider {
|
||||||
// Getters for the source's transfer streams
|
// Getters for the source's transfer streams
|
||||||
streamEntities?(): Stream | Promise<Stream>;
|
streamEntities?(): PipelineSource | Promise<PipelineSource>;
|
||||||
streamLinks?(): Stream | Promise<Stream>;
|
streamLinks?(): PipelineSource | Promise<PipelineSource>;
|
||||||
streamMedia?(): Stream | Promise<Stream>;
|
streamMedia?(): PipelineSource | Promise<PipelineSource>;
|
||||||
streamConfiguration?(): Stream | Promise<Stream>;
|
streamConfiguration?(): PipelineSource | Promise<PipelineSource>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IDestinationProvider extends IProvider {
|
export interface IDestinationProvider extends IProvider {
|
||||||
@ -27,8 +28,8 @@ export interface IDestinationProvider extends IProvider {
|
|||||||
rollback?<T extends Error = Error>(e: T): void | Promise<void>;
|
rollback?<T extends Error = Error>(e: T): void | Promise<void>;
|
||||||
|
|
||||||
// Getters for the destination's transfer streams
|
// Getters for the destination's transfer streams
|
||||||
getEntitiesStream?(): Stream | Promise<Stream>;
|
getEntitiesStream?(): PipelineDestination | Promise<PipelineDestination>;
|
||||||
getLinksStream?(): Stream | Promise<Stream>;
|
getLinksStream?(): PipelineDestination | Promise<PipelineDestination>;
|
||||||
getMediaStream?(): Stream | Promise<Stream>;
|
getMediaStream?(): PipelineDestination | Promise<PipelineDestination>;
|
||||||
getConfigurationStream?(): Stream | Promise<Stream>;
|
getConfigurationStream?(): PipelineDestination | Promise<PipelineDestination>;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user