diff --git a/app/.prettierrc b/app/.prettierrc index d8a02c3..1774711 100644 --- a/app/.prettierrc +++ b/app/.prettierrc @@ -7,7 +7,6 @@ "experimentalTernaries": true, "printWidth": 100, "semi": false, - "svelteBracketNewLine": false, "plugins": ["prettier-plugin-svelte"], "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] } diff --git a/app/src/lib/api.ts b/app/src/lib/api.ts index 451f86a..00956e1 100644 --- a/app/src/lib/api.ts +++ b/app/src/lib/api.ts @@ -2,20 +2,20 @@ import { get } from 'svelte/store' import { Err, Ok, type Result } from './utilities' import { location } from './stores' -export namespace api { - export function get(endpoint: string, params?: RequestInit) { +export const api = { + get(endpoint: string, params?: RequestInit) { return sendRequest(endpoint, 'GET', null, params) - } + }, - export function post(endpoint: string, data?: unknown) { + post(endpoint: string, data?: unknown) { return sendRequest(endpoint, 'POST', data) - } + }, - export function put(endpoint: string, data?: unknown) { + put(endpoint: string, data?: unknown) { return sendRequest(endpoint, 'PUT', data) - } + }, - export function remove(endpoint: string) { + remove(endpoint: string) { return sendRequest(endpoint, 'DELETE') } } diff --git a/app/src/lib/components/StatusItem.svelte b/app/src/lib/components/StatusItem.svelte index 1174d43..e8cff0b 100644 --- a/app/src/lib/components/StatusItem.svelte +++ b/app/src/lib/components/StatusItem.svelte @@ -1,4 +1,6 @@ diff --git a/app/src/lib/components/input/VerticalSlider.svelte b/app/src/lib/components/input/VerticalSlider.svelte index 2a528dd..8ca6c67 100644 --- a/app/src/lib/components/input/VerticalSlider.svelte +++ b/app/src/lib/components/input/VerticalSlider.svelte @@ -3,8 +3,8 @@ min?: number max?: number step?: number - value?: any - oninput?: any + value?: number + oninput?: (value: number) => void } let { diff --git a/app/src/lib/components/menu/GithubButton.svelte b/app/src/lib/components/menu/GithubButton.svelte index 28f005b..33be628 100644 --- a/app/src/lib/components/menu/GithubButton.svelte +++ b/app/src/lib/components/menu/GithubButton.svelte @@ -2,7 +2,7 @@ import { Github } from '../icons' interface Props { - github: any + github: { url: string; version: string } } let { github }: Props = $props() diff --git a/app/src/lib/components/menu/Menu.svelte b/app/src/lib/components/menu/Menu.svelte index 93b175d..d027630 100644 --- a/app/src/lib/components/menu/Menu.svelte +++ b/app/src/lib/components/menu/Menu.svelte @@ -33,9 +33,11 @@ const github = { href: 'https://github.com/' + page.data.github, active: true } + import type { ComponentType } from 'svelte' + type menuItem = { title: string - icon: ConstructorOfATypedSvelteComponent + icon: ComponentType href?: string feature: boolean active?: boolean @@ -172,7 +174,7 @@ setActiveMenuItem(page.data.title) }) - const updateMenu = (event: any) => { + const updateMenu = (event: CustomEvent) => { setActiveMenuItem(event.details) } diff --git a/app/src/lib/components/menu/MenuList.svelte b/app/src/lib/components/menu/MenuList.svelte index 09debd9..9d45deb 100644 --- a/app/src/lib/components/menu/MenuList.svelte +++ b/app/src/lib/components/menu/MenuList.svelte @@ -1,8 +1,10 @@
    - {#each menuItems as MenuItem[] as menuItem, i (menuItem.title)} + {#each menuItems as MenuItem[] as menuItem (menuItem.title)} {#if menuItem.feature}
  • {#if menuItem.submenu} diff --git a/app/src/lib/components/toasts/notifications.ts b/app/src/lib/components/toasts/notifications.ts index 57e28e5..ea54c6f 100644 --- a/app/src/lib/components/toasts/notifications.ts +++ b/app/src/lib/components/toasts/notifications.ts @@ -1,4 +1,4 @@ -import { writable, derived, type Writable } from 'svelte/store' +import { writable } from 'svelte/store' type StateType = 'info' | 'success' | 'warning' | 'error' diff --git a/app/src/lib/components/widget/ChartWidget.svelte b/app/src/lib/components/widget/ChartWidget.svelte index dd5fe92..bdb43c4 100644 --- a/app/src/lib/components/widget/ChartWidget.svelte +++ b/app/src/lib/components/widget/ChartWidget.svelte @@ -6,12 +6,12 @@ import { slide } from 'svelte/transition' let chartElement: HTMLCanvasElement - let chart: Chart + let chart: Chart<'line', number[], string> interface Props { - label: any + label: string data: number[] - title: any + title: string } let { label, data, title }: Props = $props() diff --git a/app/src/lib/components/widget/Selector.svelte b/app/src/lib/components/widget/Selector.svelte index 7e3d606..d723525 100644 --- a/app/src/lib/components/widget/Selector.svelte +++ b/app/src/lib/components/widget/Selector.svelte @@ -3,7 +3,7 @@ options?: string[] selectedOption?: string change?: () => void - [key: string]: any + [key: string]: unknown } let { options = [], selectedOption = $bindable(''), ...rest }: Props = $props() diff --git a/app/src/lib/sceneBuilder.ts b/app/src/lib/sceneBuilder.ts index 2147a68..457bc4f 100644 --- a/app/src/lib/sceneBuilder.ts +++ b/app/src/lib/sceneBuilder.ts @@ -58,14 +58,14 @@ export default class SceneBuilder { public ground!: Mesh public renderer!: WebGLRenderer public orbit: OrbitControls - public callback: Function | undefined + public callback: (() => void) | undefined public gridHelper!: GridHelper public model!: URDFRobot public liveStreamTexture!: CanvasTexture private fog!: FogExp2 private isLoaded: boolean = false public isDragging: boolean = false - highlightMaterial: any + highlightMaterial: MeshPhongMaterial sky!: Sky transformControl: TransformControls public modelGroup!: Group @@ -229,7 +229,7 @@ export default class SceneBuilder { return this } - public addRenderCb = (callback: Function) => { + public addRenderCb = (callback: () => void) => { this.callback = callback return this } @@ -275,7 +275,7 @@ export default class SceneBuilder { isJoint = (j: URDFJoint) => j.isURDFJoint && j.jointType !== 'fixed' highlightLinkGeometry = (m: URDFMimicJoint, revert: boolean, material: MeshPhongMaterial) => { - const traverse = (c: any) => { + const traverse = (c: Object3D) => { if (c.type === 'Mesh') { if (revert) { c.material = c.__origMaterial @@ -298,9 +298,9 @@ export default class SceneBuilder { traverse(m) } - public addTransformControls = (model: any) => { + public addTransformControls = (model: Object3D) => { this.transformControl = new TransformControls(this.camera, this.renderer.domElement) - this.transformControl.addEventListener('dragging-changed', (event: any) => { + this.transformControl.addEventListener('dragging-changed', (event: { value: boolean }) => { this.orbit.enabled = !event.value this.isDragging = !event.value }) @@ -310,7 +310,7 @@ export default class SceneBuilder { return this } - public addModel = (model: any) => { + public addModel = (model: URDFRobot) => { this.modelGroup = new Group() this.modelGroup.add(model) this.model = model @@ -318,7 +318,7 @@ export default class SceneBuilder { return this } - public addDragControl = (updateAngle: any) => { + public addDragControl = (updateAngle: (angles: Record) => void) => { const highlightColor = '#FFFFFF' const highlightMaterial = new MeshPhongMaterial({ shininess: 10, diff --git a/app/src/lib/stores/analytics.ts b/app/src/lib/stores/analytics.ts index 01f44b6..4ce0cd6 100644 --- a/app/src/lib/stores/analytics.ts +++ b/app/src/lib/stores/analytics.ts @@ -1,7 +1,7 @@ import { type Analytics } from '$lib/types/models' import { writable } from 'svelte/store' -let analytics_data = { +const analytics_data = { uptime: [], free_heap: [], total_heap: [], diff --git a/app/src/lib/stores/application.ts b/app/src/lib/stores/application.ts index 1975f79..082803f 100644 --- a/app/src/lib/stores/application.ts +++ b/app/src/lib/stores/application.ts @@ -8,7 +8,7 @@ import ChartWidget from '$lib/components/widget/ChartWidget.svelte' export interface WidgetConfig { id: string | number component: keyof typeof WidgetComponents - props?: Record + props?: Record } export interface WidgetContainerConfig { diff --git a/app/src/lib/stores/telemetry.ts b/app/src/lib/stores/telemetry.ts index c197506..352ad32 100644 --- a/app/src/lib/stores/telemetry.ts +++ b/app/src/lib/stores/telemetry.ts @@ -1,7 +1,7 @@ import type { DownloadOTA } from '$lib/types/models' import { writable } from 'svelte/store' -let telemetry_data = { +const telemetry_data = { rssi: { rssi: 0 }, @@ -13,7 +13,7 @@ let telemetry_data = { } function createTelemetry() { - const { subscribe, set, update } = writable(telemetry_data) + const { subscribe, update } = writable(telemetry_data) return { subscribe, diff --git a/app/src/lib/types/uzip.d.ts b/app/src/lib/types/uzip.d.ts index 49b3d72..34fec88 100644 --- a/app/src/lib/types/uzip.d.ts +++ b/app/src/lib/types/uzip.d.ts @@ -1,12 +1,12 @@ declare module 'uzip' { interface UZIP { - parse(data: Uint8Array | ArrayBuffer): any - compress(data: any): Uint8Array | ArrayBuffer + parse(data: Uint8Array | ArrayBuffer): Record + compress(data: Record): Uint8Array | ArrayBuffer compressRaw(data: Uint8Array | ArrayBuffer): Uint8Array | ArrayBuffer - decompress(data: Uint8Array | ArrayBuffer): any + decompress(data: Uint8Array | ArrayBuffer): Record decompressRaw(data: Uint8Array | ArrayBuffer): Uint8Array | ArrayBuffer - encode(data: any): Uint8Array | ArrayBuffer - decode(data: Uint8Array | ArrayBuffer): any + encode(data: Record): Uint8Array | ArrayBuffer + decode(data: Uint8Array | ArrayBuffer): Record } const uzip: UZIP diff --git a/app/src/lib/utilities/buffer-utilities.ts b/app/src/lib/utilities/buffer-utilities.ts index 5a62dbe..039349d 100644 --- a/app/src/lib/utilities/buffer-utilities.ts +++ b/app/src/lib/utilities/buffer-utilities.ts @@ -3,7 +3,7 @@ export class throttler { constructor() { this._throttlePause = false } - throttle = (callback: Function, time: number) => { + throttle = (callback: () => void, time: number) => { if (this._throttlePause) return this._throttlePause = true diff --git a/app/src/lib/utilities/math-utilities.ts b/app/src/lib/utilities/math-utilities.ts index 2a48f6c..084bdb5 100644 --- a/app/src/lib/utilities/math-utilities.ts +++ b/app/src/lib/utilities/math-utilities.ts @@ -1,12 +1,12 @@ export const toUint8 = (number: number, min: number, max: number) => { number = Math.max(min, Math.min(max, number)) - let scaled = ((number - min) / (max - min)) * 255 + const scaled = ((number - min) / (max - min)) * 255 return Math.round(scaled) & 0xff } export const toInt8 = (number: number, min: number, max: number) => { number = Math.max(min, Math.min(max, number)) - let scaled = ((number - min) / (max - min)) * 255 - 128 + const scaled = ((number - min) / (max - min)) * 255 - 128 return Math.max(-128, Math.min(127, Math.round(scaled))) | 0 } diff --git a/app/src/lib/utilities/result/result.ts b/app/src/lib/utilities/result/result.ts index 796267c..0c85e24 100644 --- a/app/src/lib/utilities/result/result.ts +++ b/app/src/lib/utilities/result/result.ts @@ -3,18 +3,18 @@ import { Ok } from './ok' export type Result = Ok | Err -export namespace Result { +export const Result = { /** * @returns `Ok` */ - export function ok(value: T) { + ok(value: T) { return Ok.new(value) - } + }, /** * @returns `Err` */ - export function err(error: E, exception?: F) { + err(error: E, exception?: F) { return Err.new(error, exception) } } diff --git a/app/src/routes/+layout.svelte b/app/src/routes/+layout.svelte index 838efb5..4d8fad0 100644 --- a/app/src/routes/+layout.svelte +++ b/app/src/routes/+layout.svelte @@ -83,7 +83,7 @@ telemetry.setRSSI(0) } - const handleError = (data: any) => console.error(data) + const handleError = (data: unknown) => console.error(data) const handleAnalytics = (data: Analytics) => analytics.addData(data) @@ -115,13 +115,14 @@ - - {#snippet backdrop()}
    e.key === 'Escape' && modals.closeAll()} + role="button" + tabindex="0" >
    {/snippet}
    diff --git a/app/src/routes/controller/Controls.svelte b/app/src/routes/controller/Controls.svelte index d6c3958..ec3ac08 100644 --- a/app/src/routes/controller/Controls.svelte +++ b/app/src/routes/controller/Controls.svelte @@ -9,7 +9,6 @@ modes, type Modes, ModesEnum, - walkGaits, WalkGaits, walkGait, walkGaitLabels @@ -61,9 +60,9 @@ }) left.on('move', (_, data) => handleJoyMove('left', data.vector)) - left.on('end', (_, __) => handleJoyMove('left', { x: 0, y: 0 })) + left.on('end', () => handleJoyMove('left', { x: 0, y: 0 })) right.on('move', (_, data) => handleJoyMove('right', data.vector)) - right.on('end', (_, __) => handleJoyMove('right', { x: 0, y: 0 })) + right.on('end', () => handleJoyMove('right', { x: 0, y: 0 })) }) const handleJoyMove = (key: 'left' | 'right', data: vector) => { diff --git a/app/src/routes/peripherals/camera/CameraSetting.svelte b/app/src/routes/peripherals/camera/CameraSetting.svelte index add9c0b..043a6cc 100644 --- a/app/src/routes/peripherals/camera/CameraSetting.svelte +++ b/app/src/routes/peripherals/camera/CameraSetting.svelte @@ -25,7 +25,7 @@ {#await getCameraSettings()} -{:then _} +{:then}
    socket.off(MessageTopic.i2cScan, handleScan) }) - const handleScan = (data: any) => { + const handleScan = (data: { addresses: number[] }) => { active_devices = data.addresses.map( (address: number) => i2cDevices.find(device => device.address === address) || { diff --git a/app/src/routes/peripherals/i2c/i2cSetting.svelte b/app/src/routes/peripherals/i2c/i2cSetting.svelte index 8b6bd01..3fb88f4 100644 --- a/app/src/routes/peripherals/i2c/i2cSetting.svelte +++ b/app/src/routes/peripherals/i2c/i2cSetting.svelte @@ -15,7 +15,7 @@ return () => socket.off(MessageTopic.peripheralSettings, handleSettings) }) - const handleSettings = (data: any) => { + const handleSettings = (data: Record) => { settings = data } diff --git a/app/src/routes/peripherals/imu/imu.svelte b/app/src/routes/peripherals/imu/imu.svelte index 8b7be03..59cb96b 100644 --- a/app/src/routes/peripherals/imu/imu.svelte +++ b/app/src/routes/peripherals/imu/imu.svelte @@ -173,7 +173,7 @@ }) } - const updateChartData = (chart: Chart, data: number[], label: string) => { + const updateChartData = (chart: Chart, data: number[]) => { chart.data.labels = data chart.data.datasets[0].data = data chart.options.scales!.y!.min = Math.min(...data) - 1 diff --git a/app/src/routes/peripherals/servo/ServoTable.svelte b/app/src/routes/peripherals/servo/ServoTable.svelte index 5018d41..26695b7 100644 --- a/app/src/routes/peripherals/servo/ServoTable.svelte +++ b/app/src/routes/peripherals/servo/ServoTable.svelte @@ -3,7 +3,7 @@ import { onMount } from 'svelte' import { RotateCw, RotateCcw } from '$lib/components/icons' interface Props { - data?: any + data?: Record servoId?: number pwm?: number } diff --git a/app/src/routes/system/filesystem/FileSystem.svelte b/app/src/routes/system/filesystem/FileSystem.svelte index a57bc1e..5c58515 100644 --- a/app/src/routes/system/filesystem/FileSystem.svelte +++ b/app/src/routes/system/filesystem/FileSystem.svelte @@ -1,5 +1,4 @@