UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

154 lines 5.63 kB
import { internalVectorDatasourceSchema, externalVectorDatasourceSchema, externalDatasourceSchema, internalRasterDatasourceSchema, externalRasterDatasourceSchema, internalDatasourceSchema, vectorDatasourceSchema, importRasterDatasourceOptionsSchema, importVectorDatasourceOptionsSchema, rasterDatasourceSchema, } from "../types/index.js"; /** * Returns the first item that returns true for filter */ export const firstMatching = (list, filter) => { const item = list.find((m) => filter(m)); if (!item) throw new Error(`firstMatching: matching item not found for ${JSON.stringify(item)}`); return item; }; /** Returns mapping of class ID to class DataClass objects */ export const classIdMapping = (classes) => { return classes.reduce((acc, curClass) => ({ ...acc, ...(curClass.numericClassId ? { [curClass.numericClassId]: curClass.classId } : {}), }), {}); }; export const isinternalDatasource = ( /** Datasource object */ ds) => { return internalDatasourceSchema.safeParse(ds).success; }; export const isVectorDatasource = ( /** VectorDatasource object */ ds) => { return vectorDatasourceSchema.safeParse(ds).success; }; export const isInternalVectorDatasource = ( /** InternalVectorDatasource object */ ds) => { return internalVectorDatasourceSchema.safeParse(ds).success; }; export const isRasterDatasource = ( /** RasterDatasource object */ ds) => { return rasterDatasourceSchema.safeParse(ds).success; }; export const isInternalRasterDatasource = ( /** InternalRasterDatasource object */ ds) => { return internalRasterDatasourceSchema.safeParse(ds).success; }; export const isExternalDatasource = ( /** Datasource object */ ds) => { return externalDatasourceSchema.safeParse(ds).success; }; export const isExternalVectorDatasource = ( /** ExternalVectorDatasource object */ ds) => { return externalVectorDatasourceSchema.safeParse(ds).success; }; export const isExternalRasterDatasource = ( /** ExternalRasterDatasource object */ ds) => { return externalRasterDatasourceSchema.safeParse(ds).success; }; export const isImportRasterDatasourceConfig = ( /** ImportRasterDatasourceConfig object */ ds) => { return importRasterDatasourceOptionsSchema.safeParse(ds).success; }; export const isImportVectorDatasourceConfig = ( /** ImportVectorDatasourceConfig object */ ds) => { return importVectorDatasourceOptionsSchema.safeParse(ds).success; }; /** find and return datasource from passed datasources */ export const getDatasourceById = (datasourceId, datasources) => { const ds = datasources.find((ds) => ds.datasourceId === datasourceId); if (ds) { return ds; } else { throw new Error(`Datasource not found - ${datasourceId}`); } }; /** find and return vector datasource (internal or external) from passed datasources */ export const getVectorDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isVectorDatasource(ds)) { return ds; } else { throw new Error(`Vector datasource not found - ${datasourceId}`); } }; /** find and return external vector datasource from passed datasources */ export const getExternalVectorDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isExternalVectorDatasource(ds)) { return ds; } else { throw new Error(`External vector datasource not found - ${datasourceId}`); } }; /** find and return internal vector datasource from passed datasources */ export const getInternalVectorDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isInternalVectorDatasource(ds)) { return ds; } else { throw new Error(`Internal Vector datasource not found - ${datasourceId}`); } }; /** find and return raster datasource (internal or external) from passed datasources */ export const getRasterDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isRasterDatasource(ds)) { return ds; } else { throw new Error(`Raster datasource not found - ${datasourceId}`); } }; /** find and return external raster datasource from passed datasources */ export const getExternalRasterDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isExternalRasterDatasource(ds)) { return ds; } else { throw new Error(`External raster datasource not found - ${datasourceId}`); } }; /** find and return internal datasource from passed datasources */ export const getInternalRasterDatasourceById = (datasourceId, datasources) => { const ds = getDatasourceById(datasourceId, datasources); if (isInternalRasterDatasource(ds)) { return ds; } else { throw new Error(`Internal raster datasource not found -${datasourceId}`); } }; /** Returns datasource filename in geojson format */ export function getJsonFilename(datasource) { return datasource.datasourceId + ".json"; } /** Returns datasource filename in flatgeobuf format */ export function getFlatGeobufFilename(datasource) { return datasource.datasourceId + ".fgb"; } export function getCogFilename(datasource, postfix) { return datasource.datasourceId + (postfix ? postfix : "") + ".tif"; } export function getDatasetBucketName(config) { return `gp-${config.package.name}-datasets`; } //# sourceMappingURL=helpers.js.map