Sync

Handles syncing between local and remote data stores

type SyncAddFunction = (args: ApiAddRequest) => Promise<DataOrError<Array<StoredMedia>>>
type SyncFindFunction = (args: ApiFindRequest) => Promise<DataOrError<ApiFindResponse>>
type SyncMashFunction = (args: ApiMashRequest) => Promise<DataOrError<SyncMashResponse>>
interface SyncMashResponse 
extends ApiMashResponse {
  mashMedia?: Array<StoredMedia>
  media?: StoredMedia
}
interface SyncPlugin 
extends Plugable {
  add: SyncAddFunction
  find: SyncFindFunction
  install: function
  mash: SyncMashFunction
  remove: SyncRemoveFunction
  sync: SyncSyncFunction
  unsynced: SyncUnsyncedFunction
}
interface SyncPluginOptions  {
  apis?: string
  mediaId?: string
  request?: EndpointRequest
}
type SyncRemoveFunction = (args: ApiRemoveRequest) => Promise<DataOrError<Numbers>>
type SyncSyncFunction = (media: OrArray<StoredMedia>, opts?: ClientJobOptions) => Promise<DataOrError<Array<StoredMedia>>>
type SyncUnsyncedFunction = () => Promise<DataOrError<Array<StoredMedia>>>
/** @implements SyncPlugin */
class ClientSyncPlugin {
  add: SyncAddFunction
  debugApis: (method: string) => string
  find: SyncFindFunction
  install: function
  mash: SyncMashFunction
  mediaMasher: MediaMasher
  remove: SyncRemoveFunction
  sync: SyncSyncFunction
  unsynced: SyncUnsyncedFunction
}