Skip to content

Commit 79b421d

Browse files
fix: return error if metadata doesn't specific ome-zarr version
1 parent e4e26e5 commit 79b421d

1 file changed

Lines changed: 31 additions & 23 deletions

File tree

‎src/validator.ts‎

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -34,34 +34,42 @@ export function validateViewer(
3434
dataVersion = parseFloat(metadata.multiscales[0].version);
3535
}
3636

37-
if (dataVersion !== null) {
38-
if (
39-
!viewer.capabilities.ome_zarr_versions ||
40-
viewer.capabilities.ome_zarr_versions.length === 0
41-
) {
42-
errors.push({
43-
capability: 'ome_zarr_versions',
44-
message: `Viewer does not specify OME-Zarr version support (data is v${dataVersion})`,
45-
required: dataVersion,
46-
found: []
47-
});
48-
} else if (!viewer.capabilities.ome_zarr_versions.includes(dataVersion)) {
49-
errors.push({
50-
capability: 'ome_zarr_versions',
51-
message: `Viewer does not support OME-Zarr v${dataVersion} (supports: ${viewer.capabilities.ome_zarr_versions.join(', ')})`,
52-
required: dataVersion,
53-
found: viewer.capabilities.ome_zarr_versions
54-
});
55-
}
37+
if (dataVersion === null) {
38+
errors.push({
39+
capability: 'ome_zarr_versions',
40+
message: 'Metadata does not specify an OME-Zarr version',
41+
required: 'version',
42+
found: null
43+
});
44+
} else if (
45+
!viewer.capabilities.ome_zarr_versions ||
46+
viewer.capabilities.ome_zarr_versions.length === 0
47+
) {
48+
errors.push({
49+
capability: 'ome_zarr_versions',
50+
message: `Viewer does not specify OME-Zarr version support (data is v${dataVersion})`,
51+
required: dataVersion,
52+
found: []
53+
});
54+
} else if (!viewer.capabilities.ome_zarr_versions.includes(dataVersion)) {
55+
errors.push({
56+
capability: 'ome_zarr_versions',
57+
message: `Viewer does not support OME-Zarr v${dataVersion} (supports: ${viewer.capabilities.ome_zarr_versions.join(', ')})`,
58+
required: dataVersion,
59+
found: viewer.capabilities.ome_zarr_versions
60+
});
5661
}
5762

5863
// Check compression codecs
5964
if (metadata.compressor) {
6065
const codec = metadata.compressor.id || metadata.compressor;
61-
if (
62-
viewer.capabilities.compression_codecs &&
63-
!viewer.capabilities.compression_codecs.includes(codec)
64-
) {
66+
if (!viewer.capabilities.compression_codecs) {
67+
// Viewer doesn't declare codec support - can't guarantee compatibility
68+
warnings.push({
69+
capability: 'compression_codecs',
70+
message: `Data uses codec '${codec}' but viewer doesn't declare codec support - compatibility unknown`
71+
});
72+
} else if (!viewer.capabilities.compression_codecs.includes(codec)) {
6573
errors.push({
6674
capability: 'compression_codecs',
6775
message: `Viewer does not support compression codec: ${codec}`,

0 commit comments

Comments
 (0)