import { PiecesSource } from '@tonyshark/server-shared' import { LocalPieceManager } from './local-piece-manager' import { PieceManager } from './piece-manager' import { RegistryPieceManager } from './registry-piece-manager' const pieceManagerVariant: Record PieceManager> = { [PiecesSource.FILE]: LocalPieceManager, [PiecesSource.CLOUD_AND_DB]: RegistryPieceManager, [PiecesSource.DB]: RegistryPieceManager, } const getPieceManager = (source: PiecesSource): PieceManager => { return new pieceManagerVariant[source]() } export const pieceManager = (source: PiecesSource) => getPieceManager(source)