vitessce
Version:
Vitessce app and React component library
44 lines (40 loc) • 1.99 kB
JavaScript
import { FileType } from '../app/constants';
import {
getLoaderClassesForPluginFileType,
} from '../app/plugins';
import JsonLoader from './JsonLoader';
import MatrixZarrLoader from './MatrixZarrLoader';
import GenesJsonAsMatrixZarrLoader from './GenesJsonAsMatrixZarrLoader';
import ClustersJsonAsMatrixZarrLoader from './ClustersJsonAsMatrixZarrLoader';
import RasterJsonLoader from './RasterJsonLoader';
import OmeZarrLoader from './OmeZarrLoader';
import CellSetsJsonLoader from './CellSetsJsonLoader';
import AnnDataLoaders from './anndata-loaders';
import GenomicProfilesZarrLoader from './GenomicProfilesZarrLoader';
import { AnnDataSource, ZarrDataSource, JsonSource } from './data-sources';
export const fileTypeToLoaderAndSource = {
[]: [ZarrDataSource, MatrixZarrLoader],
[]: [JsonSource, ClustersJsonAsMatrixZarrLoader],
[]: [JsonSource, GenesJsonAsMatrixZarrLoader],
[]: [JsonSource, JsonLoader],
[]: [JsonSource, JsonLoader],
[]: [JsonSource, JsonLoader],
[]: [JsonSource, RasterJsonLoader],
[]: [ZarrDataSource, OmeZarrLoader],
[]: [JsonSource, CellSetsJsonLoader],
[]: [AnnDataSource, AnnDataLoaders.CellSetsZarrLoader],
[]: [AnnDataSource, AnnDataLoaders.CellsZarrLoader],
[]: [AnnDataSource, AnnDataLoaders.MatrixZarrLoader],
[]: [ZarrDataSource, GenomicProfilesZarrLoader],
};
export function getSourceAndLoaderFromFileType(type) {
if (fileTypeToLoaderAndSource[type]) {
return fileTypeToLoaderAndSource[type];
}
const pluginFileType = getLoaderClassesForPluginFileType(type);
if (pluginFileType) {
return pluginFileType;
}
// Fallback to JSON.
return [JsonSource, JsonLoader];
}