diff --git a/oxlint.json b/oxlint.json index 3c7067663..a544a4b75 100644 --- a/oxlint.json +++ b/oxlint.json @@ -167,7 +167,6 @@ "typescript/no-non-null-assertion": "off", "no-unused-vars": "off", "no-empty-function": "off", - "open-pencil/no-inline-named-types": "off", "complexity": "off" } }, diff --git a/tests/engine/centerline.test.ts b/tests/engine/centerline.test.ts index 9acbe9e4f..c16e7bf49 100644 --- a/tests/engine/centerline.test.ts +++ b/tests/engine/centerline.test.ts @@ -1,5 +1,6 @@ import { describe, test, expect } from 'bun:test' +import type { Vector } from '@open-pencil/core' import type { VectorNetwork } from '@open-pencil/core/scene-graph' import { fitCircleArc, isClosedThinCrescent } from '@open-pencil/core/vector' @@ -12,13 +13,8 @@ function makeAnnularWedge( sweepDeg: number, segmentsPerArc: number ): VectorNetwork { - const vertices: { x: number; y: number }[] = [] - const segments: { - start: number - end: number - tangentStart: { x: number; y: number } - tangentEnd: { x: number; y: number } - }[] = [] + const vertices: Vector[] = [] + const segments: VectorNetwork['segments'] = [] for (let i = 0; i <= segmentsPerArc; i++) { const angle = ((startDeg + (sweepDeg * i) / segmentsPerArc) * Math.PI) / 180 diff --git a/tests/engine/editor/effects-and-resize.test.ts b/tests/engine/editor/effects-and-resize.test.ts index 30c4ef834..8fce42e4d 100644 --- a/tests/engine/editor/effects-and-resize.test.ts +++ b/tests/engine/editor/effects-and-resize.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect } from 'bun:test' -import { SceneGraph, type Effect } from '@open-pencil/core' +import { SceneGraph, type Effect, type Rect } from '@open-pencil/core' function pageId(graph: SceneGraph) { return graph.getPages()[0].id @@ -180,7 +180,7 @@ describe('Effect types on scene graph', () => { describe('Resize logic', () => { function applyResize( handle: string, - origRect: { x: number; y: number; width: number; height: number }, + origRect: Rect, startX: number, startY: number, cx: number, diff --git a/tests/engine/fig/export/variables.test.ts b/tests/engine/fig/export/variables.test.ts index bb4f7038d..07cd80525 100644 --- a/tests/engine/fig/export/variables.test.ts +++ b/tests/engine/fig/export/variables.test.ts @@ -20,12 +20,7 @@ describe('COLOR variable alpha handling', () => { const vars = [...reimported.variables.values()] const colorVar = vars.find((v) => v.name === 'brand')! expect(colorVar.type).toBe('COLOR') - const val = Object.values(colorVar.valuesByMode)[0] as { - r: number - g: number - b: number - a: number - } + const val = Object.values(colorVar.valuesByMode)[0] as Color expect(val.r).toBeCloseTo(0.2, 1) expect(val.g).toBeCloseTo(0.4, 1) expect(val.b).toBeCloseTo(0.8, 1) @@ -42,12 +37,7 @@ describe('COLOR variable alpha handling', () => { const vars = [...reimported.variables.values()] const colorVar = vars.find((v) => v.name === 'overlay')! - const val = Object.values(colorVar.valuesByMode)[0] as { - r: number - g: number - b: number - a: number - } + const val = Object.values(colorVar.valuesByMode)[0] as Color expect(val.a).toBeCloseTo(0.5, 1) }) diff --git a/tests/engine/fig/roundtrip/variables.test.ts b/tests/engine/fig/roundtrip/variables.test.ts index 780871eff..b72e624fd 100644 --- a/tests/engine/fig/roundtrip/variables.test.ts +++ b/tests/engine/fig/roundtrip/variables.test.ts @@ -9,7 +9,8 @@ import { SceneGraph, FigmaAPI, type SceneNode, - type Fill + type Fill, + type Color } from '@open-pencil/core' import { computeContentBounds } from '#core/io/formats/raster/render' @@ -57,12 +58,7 @@ describe('variable roundtrip', () => { const colorVar = vars.find((v) => v.name === 'color/primary') expect(colorVar).toBeDefined() expect(expectDefined(colorVar, 'colorVar').type).toBe('COLOR') - const colorVal = Object.values(colorVar.valuesByMode)[0] as { - r: number - g: number - b: number - a: number - } + const colorVal = Object.values(colorVar.valuesByMode)[0] as Color expect(colorVal.r).toBeCloseTo(0.23, 1) const floatVar = vars.find((v) => v.name === 'spacing/base') diff --git a/tests/engine/geometry.test.ts b/tests/engine/geometry.test.ts index 84e85ca38..3c0157ced 100644 --- a/tests/engine/geometry.test.ts +++ b/tests/engine/geometry.test.ts @@ -14,7 +14,8 @@ import { radToDeg, rotatePoint, rotatedCorners, - rotatedBBox + rotatedBBox, + type Vector } from '@open-pencil/core' import { computeVisualBounds } from '#core/geometry' @@ -159,7 +160,7 @@ describe('computeBounds', () => { describe('computeAbsoluteBounds', () => { const idPos = (id: string) => { - const map: Record = { + const map: Record = { a: { x: 10, y: 20 }, b: { x: 50, y: 60 }, c: { x: 0, y: 0 } @@ -190,7 +191,7 @@ describe('computeAbsoluteBounds', () => { describe('computeVisualBounds', () => { const idPos = (id: string) => { - const map: Record = { + const map: Record = { r1: { x: 100, y: 200 }, r2: { x: 300, y: 400 }, rotated: { x: 0, y: 0 } diff --git a/tests/engine/visual-sdf-test-matrix.ts b/tests/engine/visual-sdf-test-matrix.ts index 4652495f4..0b4fe24b4 100644 --- a/tests/engine/visual-sdf-test-matrix.ts +++ b/tests/engine/visual-sdf-test-matrix.ts @@ -7,20 +7,21 @@ import { renderNodesToImage } from '#core/io/formats/raster' import { SceneGraph } from '#core/scene-graph' import type { SceneNode } from '#core/scene-graph' import { fontManager } from '#core/text' +import type { Color, Vector } from '#core/types' interface TestCase { text: string fontSize: number - offset: { x: number; y: number } + offset: Vector radius: number spread: number - color: { r: number; g: number; b: number; a: number } + color: Color } function generateMatrix(): TestCase[] { const cases: TestCase[] = [] - const offsets: Array<{ x: number; y: number }> = [ + const offsets: Vector[] = [ { x: 0, y: 0 }, { x: 10, y: 10 }, { x: -5, y: 5 },