diff --git a/biome.json b/biome.json index 7235884f..aecf15f9 100644 --- a/biome.json +++ b/biome.json @@ -24,6 +24,10 @@ "recommended": true, "suspicious": { "noConsole": "error" + }, + "correctness": { + "noUnusedImports": "error", + "useHookAtTopLevel": "error" } } }, diff --git a/examples/src/app.tsx b/examples/src/app.tsx index 409c8a56..c3791095 100644 --- a/examples/src/app.tsx +++ b/examples/src/app.tsx @@ -1,9 +1,7 @@ -import React from 'react'; import { BrowserRouter, Route, Routes } from 'react-router'; import { DziDemo } from './dzi/dzi-demo'; import { Home } from './home'; import { OmezarrDemo } from './omezarr/omezarr-demo'; -import { RedirectToLayersHTML } from './layers/tempLayers'; export function App() { return ( diff --git a/examples/src/common/image-renderer.ts b/examples/src/common/image-renderer.ts index 2daac621..62c30677 100644 --- a/examples/src/common/image-renderer.ts +++ b/examples/src/common/image-renderer.ts @@ -1,4 +1,4 @@ -import type { vec2, vec4 } from '@alleninstitute/vis-geometry'; +import type { vec4 } from '@alleninstitute/vis-geometry'; import type REGL from 'regl'; import type { Framebuffer2D } from 'regl'; diff --git a/examples/src/common/react/render-server-provider.tsx b/examples/src/common/react/render-server-provider.tsx index e27fd292..282cf5d2 100644 --- a/examples/src/common/react/render-server-provider.tsx +++ b/examples/src/common/react/render-server-provider.tsx @@ -1,5 +1,5 @@ import { logger, RenderServer } from '@alleninstitute/vis-core'; -import React, { createContext, useEffect, useRef, type PropsWithChildren } from 'react'; +import { createContext, useEffect, useRef, type PropsWithChildren } from 'react'; export const renderServerContext = createContext(null); diff --git a/examples/src/data-renderers/lineRenderer.ts b/examples/src/data-renderers/lineRenderer.ts index 584e7b6d..94a1ac26 100644 --- a/examples/src/data-renderers/lineRenderer.ts +++ b/examples/src/data-renderers/lineRenderer.ts @@ -1,6 +1,5 @@ import type { box2D, vec2, vec4 } from '@alleninstitute/vis-geometry'; import type REGL from 'regl'; -import type { AttributeConfig } from 'regl'; import type { ColumnData } from '~/common/loaders/scatterplot/scatterbrain-loader'; type Attrs = { pos: REGL.AttributeConfig }; diff --git a/examples/src/data-renderers/scatterplot.ts b/examples/src/data-renderers/scatterplot.ts index d82e7dab..75742cd8 100644 --- a/examples/src/data-renderers/scatterplot.ts +++ b/examples/src/data-renderers/scatterplot.ts @@ -1,4 +1,4 @@ -import { Box2D, type box2D, type vec2, type vec4 } from '@alleninstitute/vis-geometry'; +import { Box2D, type vec2, type vec4 } from '@alleninstitute/vis-geometry'; import type REGL from 'regl'; import type { Framebuffer2D } from 'regl'; import type { RenderSettings } from '~/common/loaders/scatterplot/data'; diff --git a/examples/src/dzi/dzi-viewer.tsx b/examples/src/dzi/dzi-viewer.tsx index 2a31a4d9..668a3554 100644 --- a/examples/src/dzi/dzi-viewer.tsx +++ b/examples/src/dzi/dzi-viewer.tsx @@ -4,11 +4,10 @@ import { type DziRenderSettings, type DziTile, buildAsyncDziRenderer, - buildDziRenderer, } from '@alleninstitute/vis-dzi'; import { Vec2, type vec2 } from '@alleninstitute/vis-geometry'; import type { RenderFrameFn, buildAsyncRenderer } from '@alleninstitute/vis-core'; -import { useContext, useEffect, useRef, useState } from 'react'; +import { useContext, useEffect, useRef } from 'react'; import { renderServerContext } from '~/common/react/render-server-provider'; type Props = { diff --git a/examples/src/home.tsx b/examples/src/home.tsx index da2e5889..7ba501db 100644 --- a/examples/src/home.tsx +++ b/examples/src/home.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { Link } from 'react-router'; export function Home() { diff --git a/examples/src/index.tsx b/examples/src/index.tsx index de009fcb..7a148cd9 100644 --- a/examples/src/index.tsx +++ b/examples/src/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { createRoot } from 'react-dom/client'; import { App } from './app'; diff --git a/examples/src/layers/layers.tsx b/examples/src/layers/layers.tsx index a1327b75..3e729c72 100644 --- a/examples/src/layers/layers.tsx +++ b/examples/src/layers/layers.tsx @@ -1,5 +1,4 @@ import { Button } from '@czi-sds/components'; -import React from 'react'; import type { Demo } from '../layers'; import { AnnotationGrid } from '../ui/annotation-grid'; import { ContactSheetUI } from '../ui/contact-sheet'; diff --git a/examples/src/omezarr/omezarr-demo.tsx b/examples/src/omezarr/omezarr-demo.tsx index 66680349..21b152a6 100644 --- a/examples/src/omezarr/omezarr-demo.tsx +++ b/examples/src/omezarr/omezarr-demo.tsx @@ -1,13 +1,4 @@ -import { - Box2D, - CartesianPlane, - type Interval, - PLANE_XY, - type box2D, - type vec2, - type vec3, -} from '@alleninstitute/vis-geometry'; -import { makeRGBColorVector } from '@alleninstitute/vis-core'; +import { Box2D, type Interval, PLANE_XY, type box2D, type vec2 } from '@alleninstitute/vis-geometry'; import { type OmeZarrMetadata, loadMetadata, sizeInUnits } from '@alleninstitute/vis-omezarr'; import type { RenderSettings, RenderSettingsChannels } from '@alleninstitute/vis-omezarr'; import { logger, type WebResource } from '@alleninstitute/vis-core'; diff --git a/examples/src/omezarr/omezarr-viewer.tsx b/examples/src/omezarr/omezarr-viewer.tsx index aee7d7c5..043c6216 100644 --- a/examples/src/omezarr/omezarr-viewer.tsx +++ b/examples/src/omezarr/omezarr-viewer.tsx @@ -1,11 +1,9 @@ -import { Box2D, Vec2, type box2D, type vec2 } from '@alleninstitute/vis-geometry'; +import { Box2D, type vec2 } from '@alleninstitute/vis-geometry'; import { type RenderSettings, type VoxelTile, type OmeZarrMetadata, buildAsyncOmezarrRenderer, - pickBestScale, - planeSizeInVoxels, } from '@alleninstitute/vis-omezarr'; import type { RenderFrameFn, RenderServer } from '@alleninstitute/vis-core'; import { useContext, useEffect, useRef } from 'react'; diff --git a/examples/src/omezarr/sliceview.tsx b/examples/src/omezarr/sliceview.tsx index 13e1b07f..aafce2b6 100644 --- a/examples/src/omezarr/sliceview.tsx +++ b/examples/src/omezarr/sliceview.tsx @@ -1,4 +1,4 @@ -import { Box2D, CartesianPlane, PLANE_XY, Vec2, Vec3, type box2D } from '@alleninstitute/vis-geometry'; +import { Box2D, PLANE_XY, Vec2, type box2D } from '@alleninstitute/vis-geometry'; import { type RenderSettings, type VoxelTile, diff --git a/examples/src/ui/annotation-grid.tsx b/examples/src/ui/annotation-grid.tsx index dc7369d6..d924a252 100644 --- a/examples/src/ui/annotation-grid.tsx +++ b/examples/src/ui/annotation-grid.tsx @@ -1,5 +1,4 @@ import { InputSlider } from '@czi-sds/components'; -import React from 'react'; import type { Demo } from 'src/layers'; export function AnnotationGrid(props: { demo: Demo }) { const { demo } = props; diff --git a/examples/src/ui/contact-sheet.tsx b/examples/src/ui/contact-sheet.tsx index 2727d2d4..731990cf 100644 --- a/examples/src/ui/contact-sheet.tsx +++ b/examples/src/ui/contact-sheet.tsx @@ -1,5 +1,4 @@ import { Button, InputSlider } from '@czi-sds/components'; -import React from 'react'; import type { Demo } from 'src/layers'; export function ContactSheetUI(props: { demo: Demo }) { const { demo } = props; diff --git a/examples/src/ui/scatterplot-ui.tsx b/examples/src/ui/scatterplot-ui.tsx index 2466be40..13c144bd 100644 --- a/examples/src/ui/scatterplot-ui.tsx +++ b/examples/src/ui/scatterplot-ui.tsx @@ -1,5 +1,4 @@ import { InputSlider } from '@czi-sds/components'; -import React, { useState } from 'react'; import type { Demo } from 'src/layers'; export function ScatterplotUI(props: { demo: Demo }) { const { demo } = props; diff --git a/examples/src/ui/slice-ui.tsx b/examples/src/ui/slice-ui.tsx index 4fbe75ea..7a45ebd0 100644 --- a/examples/src/ui/slice-ui.tsx +++ b/examples/src/ui/slice-ui.tsx @@ -1,5 +1,4 @@ import { Button, InputSlider } from '@czi-sds/components'; -import React from 'react'; import type { Demo } from 'src/layers'; export function SliceViewLayer(props: { demo: Demo }) { const { demo } = props; diff --git a/packages/core/src/test/render-cache.test.ts b/packages/core/src/test/render-cache.test.ts index 3abbe002..5b6a6a90 100644 --- a/packages/core/src/test/render-cache.test.ts +++ b/packages/core/src/test/render-cache.test.ts @@ -1,7 +1,6 @@ -import { delay, partial, partialRight, uniqueId } from 'lodash'; +import { partial, uniqueId } from 'lodash'; import { beforeEach, describe, expect, it } from 'vitest'; import { AsyncDataCache } from '../dataset-cache'; -import { fakeFetch } from './test-utils'; type Columns = 'color' | 'position'; type vec3 = readonly [number, number, number]; type Data = { pretend: vec3 }; diff --git a/packages/core/src/test/render-queue.test.ts b/packages/core/src/test/render-queue.test.ts index c730d260..5b5071cc 100644 --- a/packages/core/src/test/render-queue.test.ts +++ b/packages/core/src/test/render-queue.test.ts @@ -1,5 +1,5 @@ import delay from 'lodash/delay'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { beforeEach, describe, expect, it } from 'vitest'; import { AsyncDataCache } from '../dataset-cache'; import { type NormalStatus, beginLongRunningFrame } from '../render-queue'; import { fakeFetch } from './test-utils'; diff --git a/packages/dzi/src/loader.test.ts b/packages/dzi/src/loader.test.ts index 1820d0e4..99c1e97c 100644 --- a/packages/dzi/src/loader.test.ts +++ b/packages/dzi/src/loader.test.ts @@ -1,6 +1,6 @@ import { Box2D } from '@alleninstitute/vis-geometry'; import { logger } from '@alleninstitute/vis-core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { type DziImage, firstSuitableLayer, imageSizeAtLayer, tileWithOverlap, tilesInLayer } from './loader'; describe('tiling math', () => { diff --git a/packages/geometry/src/tests/interval.test.ts b/packages/geometry/src/tests/interval.test.ts index 018c2188..35f5e209 100644 --- a/packages/geometry/src/tests/interval.test.ts +++ b/packages/geometry/src/tests/interval.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, test } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { type Interval, fixOrder, intersection, isValid, limit, size, within } from '../interval'; function I(a: number, b: number): Interval { return { min: a, max: b }; diff --git a/packages/omezarr/src/sliceview/loader.test.ts b/packages/omezarr/src/sliceview/loader.test.ts index d2d343a8..8c712b40 100644 --- a/packages/omezarr/src/sliceview/loader.test.ts +++ b/packages/omezarr/src/sliceview/loader.test.ts @@ -1,9 +1,8 @@ // TODO Unit test for loading is no longer feasible, as it requires an actual Zarr group + arrays to resolve correctly. // Best bet is to create a proper fake OmeZarr dataset and do a "unit" (really, integration) test that way. -import { Box2D, CartesianPlane, PLANE_XY, PLANE_YZ, type box2D } from '@alleninstitute/vis-geometry'; +import { Box2D, PLANE_XY, PLANE_YZ, type box2D } from '@alleninstitute/vis-geometry'; import { describe, expect, it } from 'vitest'; -import type * as zarr from 'zarrita'; import { OmeZarrMetadata } from '../zarr/types'; import { sizeInUnits } from '../zarr/loading'; import { getVisibleTiles } from './loader'; diff --git a/packages/omezarr/src/zarr/loading.ts b/packages/omezarr/src/zarr/loading.ts index 7be2dec1..dbbd3bd8 100644 --- a/packages/omezarr/src/zarr/loading.ts +++ b/packages/omezarr/src/zarr/loading.ts @@ -8,7 +8,7 @@ import { type vec2, } from '@alleninstitute/vis-geometry'; import { getResourceUrl, logger, type WebResource } from '@alleninstitute/vis-core'; -import { VisZarrDataError, VisZarrError } from '../errors'; +import { VisZarrDataError } from '../errors'; import { OmeZarrAttrsSchema, OmeZarrMetadata, diff --git a/packages/omezarr/src/zarr/types.ts b/packages/omezarr/src/zarr/types.ts index 6488ae77..24847ac3 100644 --- a/packages/omezarr/src/zarr/types.ts +++ b/packages/omezarr/src/zarr/types.ts @@ -1,7 +1,6 @@ -import { Vec4, type CartesianPlane, type Interval, type vec3, type vec4 } from '@alleninstitute/vis-geometry'; +import type { CartesianPlane, Interval, vec3, vec4 } from '@alleninstitute/vis-geometry'; import { VisZarrDataError, VisZarrIndexError } from '../errors'; -import { logger, makeRGBAColorVector, makeRGBColorVector } from '@alleninstitute/vis-core'; -import type * as zarr from 'zarrita'; +import { logger, makeRGBAColorVector } from '@alleninstitute/vis-core'; import { z } from 'zod'; export type ZarrDimension = 't' | 'c' | 'z' | 'y' | 'x';