@strapi/data-transfer
Version:
Data transfer capabilities for Strapi
49 lines • 2.57 kB
TypeScript
import type { Readable, Writable } from 'stream';
import type { Struct } from '@strapi/types';
import type { IDestinationProviderTransferResults, IProviderTransferResults, ISourceProviderTransferResults, MaybePromise, StageTotalsEstimate, TransferStage } from './utils';
import type { IMetadata } from './common-entities';
import type { IDiagnosticReporter } from '../utils/diagnostic';
export type ProviderType = 'source' | 'destination';
export interface IProvider {
type: ProviderType;
name: string;
results?: IProviderTransferResults;
/**
* bootstrap() is called during transfer engine bootstrap
* It is used for initialization operations such as making a database connection, opening a file, checking authorization, etc
*/
bootstrap?(diagnostics?: IDiagnosticReporter): MaybePromise<void>;
close?(): MaybePromise<void>;
getMetadata(): MaybePromise<IMetadata | null>;
getSchemas?(): MaybePromise<Record<string, Struct.Schema> | null>;
beforeTransfer?(): MaybePromise<void>;
}
export interface ISourceProvider extends IProvider {
results?: ISourceProviderTransferResults;
/**
* Optional totals for a stage. Called by the engine after the stage read stream is created and before `stage::start`.
* Used for CLI progress (e.g. bytes/count remaining, ETA). Omit or return null when unknown (older remotes, file providers).
*/
getStageTotals?(stage: TransferStage): MaybePromise<StageTotalsEstimate | null | undefined>;
createEntitiesReadStream?(): MaybePromise<Readable>;
createLinksReadStream?(): MaybePromise<Readable>;
createAssetsReadStream?(): MaybePromise<Readable>;
createConfigurationReadStream?(): MaybePromise<Readable>;
createSchemasReadStream?(): MaybePromise<Readable>;
}
export interface IDestinationProvider extends IProvider {
results?: IDestinationProviderTransferResults;
/**
* Optional rollback implementation
* Called when an error is thrown during a transfer to allow rollback operations to be performed
*/
rollback?<T extends Error = Error>(e: T): MaybePromise<void>;
setMetadata?(target: ProviderType, metadata: IMetadata): IDestinationProvider;
onWarning?: (message: string) => void;
createEntitiesWriteStream?(): MaybePromise<Writable>;
createLinksWriteStream?(): MaybePromise<Writable>;
createAssetsWriteStream?(): MaybePromise<Writable>;
createConfigurationWriteStream?(): MaybePromise<Writable>;
createSchemasWriteStream?(): MaybePromise<Writable>;
}
//# sourceMappingURL=providers.d.ts.map