From eb1e1d4f5c1c09aba320834d86af1f717c2d9d9c Mon Sep 17 00:00:00 2001 From: Stefan Dej Date: Sun, 22 Aug 2021 23:25:56 +0200 Subject: [PATCH] chore: fix some eslint warnings Signed-off-by: Stefan Dej --- src/store/farm/printer/actions.ts | 2 +- src/store/farm/printer/getters.ts | 2 + src/store/farm/printer/index.ts | 1 + src/store/farm/printer/mutations.ts | 2 + src/store/farm/printer/types.ts | 3 ++ src/store/files/getters.ts | 1 + src/store/files/index.ts | 1 + src/store/files/mutations.ts | 6 +-- src/store/files/types.ts | 1 + src/store/gui/actions.ts | 3 +- src/store/gui/getters.ts | 15 +++--- src/store/gui/index.ts | 1 + src/store/gui/mutations.ts | 1 + src/store/gui/types.ts | 7 +++ src/store/printer/getters.ts | 37 +++++++++++++-- src/store/printer/index.ts | 1 + src/store/printer/mutations.ts | 1 + src/store/printer/tempHistory/actions.ts | 1 + src/store/printer/tempHistory/getters.ts | 10 ++-- src/store/printer/tempHistory/index.ts | 1 + src/store/printer/tempHistory/mutations.ts | 1 - src/store/printer/tempHistory/types.ts | 1 + src/store/printer/types.ts | 20 +++++++- src/store/server/actions.ts | 4 +- src/store/server/getters.ts | 32 ++++++++++--- src/store/server/history/getters.ts | 19 +++++++- src/store/server/history/index.ts | 1 + src/store/server/history/types.ts | 1 + src/store/server/index.ts | 5 +- src/store/server/mutations.ts | 4 +- src/store/server/power/getters.ts | 1 + src/store/server/power/index.ts | 1 + src/store/server/types.ts | 55 ++++++++++++++++++++-- src/store/server/updateManager/getters.ts | 22 ++++++--- src/store/server/updateManager/index.ts | 1 + src/store/server/updateManager/types.ts | 50 +++++++++++++++++++- src/typos/shims-tsx.d.ts | 2 + src/typos/vue-headful.d.ts | 2 + src/typos/vue-load-image.d.ts | 2 + vue.config.js | 1 + 40 files changed, 275 insertions(+), 47 deletions(-) diff --git a/src/store/farm/printer/actions.ts b/src/store/farm/printer/actions.ts index 1c6fa6ee..a2dc2bb6 100644 --- a/src/store/farm/printer/actions.ts +++ b/src/store/farm/printer/actions.ts @@ -146,7 +146,7 @@ export const actions: ActionTree = { ] let subscripts = {} - payload.objects.forEach((object: any) => { + payload.objects.forEach((object: string) => { const splits = object.split(" ") const objectName = splits[0] diff --git a/src/store/farm/printer/getters.ts b/src/store/farm/printer/getters.ts index bcc60a6e..12da87eb 100644 --- a/src/store/farm/printer/getters.ts +++ b/src/store/farm/printer/getters.ts @@ -3,6 +3,7 @@ import {convertName} from "@/plugins/helpers" import {GetterTree} from "vuex"; import {FarmPrinterState} from "@/store/farm/printer/types"; +// eslint-disable-next-line export const getters: GetterTree = { getSocketUrl: (state) => { @@ -20,6 +21,7 @@ export const getters: GetterTree = { ) }, + // eslint-disable-next-line getSetting: (state) => (name: string, fallback: any) => { return state.settings[name] ?? fallback }, diff --git a/src/store/farm/printer/index.ts b/src/store/farm/printer/index.ts index ae765120..1e65a384 100644 --- a/src/store/farm/printer/index.ts +++ b/src/store/farm/printer/index.ts @@ -42,6 +42,7 @@ const state = () => { return getDefaultState() } +// eslint-disable-next-line export const printer: Module = { namespaced: true, state, diff --git a/src/store/farm/printer/mutations.ts b/src/store/farm/printer/mutations.ts index fe23761d..f9aee8c2 100644 --- a/src/store/farm/printer/mutations.ts +++ b/src/store/farm/printer/mutations.ts @@ -56,6 +56,7 @@ export const mutations: MutationTree = { }, setConfigDir(state, payload) { + // eslint-disable-next-line Object.values(payload).forEach((file: any) => { if ("filename" in file) { if (file.filename.startsWith(".theme/")) { @@ -70,6 +71,7 @@ export const mutations: MutationTree = { }, setMainsailData(state, payload) { + // eslint-disable-next-line const setDataDeep = (currentState: any, payload: any) => { Object.entries(payload).forEach(([key, value]) => { if (typeof value === 'object' && !Array.isArray(value) && key in currentState) { diff --git a/src/store/farm/printer/types.ts b/src/store/farm/printer/types.ts index a1666a00..1539ea5c 100644 --- a/src/store/farm/printer/types.ts +++ b/src/store/farm/printer/types.ts @@ -14,12 +14,15 @@ export interface FarmPrinterState { reconnects: number maxReconnects: number reconnectInterval: number + // eslint-disable-next-line wsData: any[] }, data: { gui: GuiState + // eslint-disable-next-line [key: string]: any }, + // eslint-disable-next-line settings: any, databases: string[], current_file: FileStateFile, diff --git a/src/store/files/getters.ts b/src/store/files/getters.ts index 1dbf7eee..504c599b 100644 --- a/src/store/files/getters.ts +++ b/src/store/files/getters.ts @@ -3,6 +3,7 @@ import { themeDir } from "@/store/variables" import {GetterTree} from "vuex"; import {FileState, FileStateFile} from "@/store/files/types"; +// eslint-disable-next-line export const getters: GetterTree = { getThemeFileUrl: (state, getters, rootState, rootGetters) => (acceptName: string, acceptExtensions: string[]) => { diff --git a/src/store/files/index.ts b/src/store/files/index.ts index 32fa9b91..438db550 100644 --- a/src/store/files/index.ts +++ b/src/store/files/index.ts @@ -13,6 +13,7 @@ export const getDefaultState = (): FileState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const files: Module = { namespaced: true, state, diff --git a/src/store/files/mutations.ts b/src/store/files/mutations.ts index af237618..5858b654 100644 --- a/src/store/files/mutations.ts +++ b/src/store/files/mutations.ts @@ -3,9 +3,6 @@ import { getDefaultState } from './index' import { findDirectory } from "@/plugins/helpers" import {MutationTree} from "vuex"; import { - ApiGetDirectoryReturn, - ApiGetDirectoryReturnDir, - ApiGetDirectoryReturnFile, FileState, FileStateFile } from "@/store/files/types"; @@ -36,8 +33,9 @@ export const mutations: MutationTree = { filename = dirArray[dirArray.length-1] const path = findDirectory(state.filetree, dirArray) - const fileIndex = path?.findIndex((element: any) => element.filename === filename) + const fileIndex = path?.findIndex((element: FileStateFile) => element.filename === filename) if (path && fileIndex && fileIndex !== -1) { + // eslint-disable-next-line const currentFile = path[fileIndex] as any allowedMetadata.forEach((key: string) => { if (key in payload) currentFile[key] = payload[key] diff --git a/src/store/files/types.ts b/src/store/files/types.ts index 390b6852..e9b969ff 100644 --- a/src/store/files/types.ts +++ b/src/store/files/types.ts @@ -44,6 +44,7 @@ export interface ApiGetDirectoryReturn { dirs: ApiGetDirectoryReturnDir[] files: ApiGetDirectoryReturnFile[] disk_usage: FileStateDiskUsage + // eslint-disable-next-line requestParams?: any } diff --git a/src/store/gui/actions.ts b/src/store/gui/actions.ts index 428d531c..42652b20 100644 --- a/src/store/gui/actions.ts +++ b/src/store/gui/actions.ts @@ -24,7 +24,7 @@ export const actions: ActionTree = { dispatch('printer/init', null, { root: true }) }, - updateDataFromDB({ state, commit }, payload) { + updateDataFromDB({ commit }, payload) { commit('saveSetting', { name: payload.key, value: payload.value @@ -205,6 +205,7 @@ export const actions: ActionTree = { resetLayout({ dispatch }, name) { const defaultState = getDefaultState() + // eslint-disable-next-line const newVal: any = defaultState.dashboard[name] ?? [] dispatch('saveSetting', { diff --git a/src/store/gui/getters.ts b/src/store/gui/getters.ts index 6b0d1209..439d811b 100644 --- a/src/store/gui/getters.ts +++ b/src/store/gui/getters.ts @@ -1,7 +1,8 @@ import {caseInsensitiveSort} from "@/plugins/helpers"; import {GetterTree} from "vuex"; -import {GuiState} from "@/store/gui/types"; +import {GuiState, GuiStateConsoleFilter, GuiStatePreset} from "@/store/gui/types"; +// eslint-disable-next-line export const getters: GetterTree = { getPreheatPresets:(state) => { @@ -31,7 +32,7 @@ export const getters: GetterTree = { output.push('^(?:ok\\s+)?(B|C|T\\d*):') if (Array.isArray(state.console.customFilters) && state.console.customFilters.length) { - state.console.customFilters.filter((filter: any) => filter.bool === true).forEach((filter: any) => { + state.console.customFilters.filter((filter: GuiStateConsoleFilter) => filter.bool === true).forEach((filter: GuiStateConsoleFilter) => { filter.regex.split("\n").forEach((rule: string) => { if (rule !== "") output.push(rule) }) @@ -51,7 +52,7 @@ export const getters: GetterTree = { return caseInsensitiveSort(output, 'name') }, - getDatasetValue: (state) => (payload: any) => { + getDatasetValue: (state) => (payload: { name: string, type: string }) => { if ( payload.name in state.tempchart.datasetSettings && payload.type in state.tempchart.datasetSettings[payload.name] @@ -62,7 +63,7 @@ export const getters: GetterTree = { return false }, - getDatasetAdditionalSensorValue: (state) => (payload: any) => { + getDatasetAdditionalSensorValue: (state) => (payload: { name: string, sensor: string }) => { if ( payload.name in state.tempchart.datasetSettings && 'additionalSensors' in state.tempchart.datasetSettings[payload.name] && @@ -72,7 +73,7 @@ export const getters: GetterTree = { return true }, - getPresetsFromHeater: state => (payload: any) => { + getPresetsFromHeater: state => (payload: { name: string }) => { interface preset { value: number } @@ -83,11 +84,11 @@ export const getters: GetterTree = { value: 0 }) - Object.values(state.presets).forEach((preset: any) => { + Object.values(state.presets).forEach((preset: GuiStatePreset) => { if ( payload.name in preset.values && preset.values[payload.name].bool && - output.findIndex((entry: any) => entry.value === preset.values[payload.name].value) === -1 + output.findIndex((entry: preset) => entry.value === preset.values[payload.name].value) === -1 ) { output.push({ value: preset.values[payload.name].value, diff --git a/src/store/gui/index.ts b/src/store/gui/index.ts index 6b2caec3..5c6de186 100644 --- a/src/store/gui/index.ts +++ b/src/store/gui/index.ts @@ -171,6 +171,7 @@ export const getDefaultState = (): GuiState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const gui: Module = { namespaced: true, state, diff --git a/src/store/gui/mutations.ts b/src/store/gui/mutations.ts index df57cd5e..a704cd0c 100644 --- a/src/store/gui/mutations.ts +++ b/src/store/gui/mutations.ts @@ -26,6 +26,7 @@ export const mutations: MutationTree = { }, saveSetting(state, payload) { + // eslint-disable-next-line const deepSet = (obj:any, is:string[] | string, value:any):any => { if (is !== undefined && typeof is === 'string') return deepSet(obj,is.split('.'), value); diff --git a/src/store/gui/types.ts b/src/store/gui/types.ts index bc52c2ca..9037ccd9 100644 --- a/src/store/gui/types.ts +++ b/src/store/gui/types.ts @@ -31,4 +31,11 @@ export interface GuiStatePreset { value: number } } +} + +export interface GuiStateConsoleFilter { + bool: boolean + index?: string + name: string + regex: string } \ No newline at end of file diff --git a/src/store/printer/getters.ts b/src/store/printer/getters.ts index bb321b1a..367b13bd 100644 --- a/src/store/printer/getters.ts +++ b/src/store/printer/getters.ts @@ -326,6 +326,7 @@ export const getters: GetterTree = { if (sensorName+" "+name in state) { Object.keys(state[sensorName+" "+name]).forEach(key => { if (key !== "temperature") { + // eslint-disable-next-line const tmp: any = {} tmp[key] = {} tmp[key]['value'] = state[sensorName+" "+name][key].toFixed(1) @@ -398,7 +399,26 @@ export const getters: GetterTree = { }, getMcus: (state, getters) => { - const mcus: any[] = [] + interface Mcu { + name: string + mcu_constants: { [key: string]: string | number } + last_stats: { [key: string]: number } + version: string + chip: string | null + freq: number | null + freqFormat: string + awake: string + load: string + loadPercent: number + loadProgressColor: string + tempSensor: { + temperature: number + measured_min_temp: number | null + measured_max_temp: number | null + } + } + + const mcus: Mcu[] = [] Object.keys(state).forEach((key) => { if (key === "mcu" || key.startsWith("mcu ")) { @@ -441,6 +461,7 @@ export const getters: GetterTree = { }, getPrinterConfigObjects: (state) => (objectNames: string[]) => { + // eslint-disable-next-line const output: any = {} if (state.configfile?.settings) { @@ -484,7 +505,8 @@ export const getters: GetterTree = { getMcuTempSensors: (state, getters) => { const checkObjects = ['temperature_sensor', 'temperature_fan'] - const output: any = [] + // eslint-disable-next-line + const output: { key: string, settings: any, object: any }[] = [] const objects = getters.getPrinterConfigObjects(checkObjects) Object.keys(objects).forEach((key) => { @@ -502,10 +524,17 @@ export const getters: GetterTree = { }, getMcuTempSensor: (state, getters) => (mcuName: string) => { - let output: any = null + interface McuTempSensor { + temperature: number + measured_min_temp: number | null + measured_max_temp: number | null + } + + let output: McuTempSensor | null = null const sensors = getters.getMcuTempSensors - sensors.forEach((sensor: any) => { + // eslint-disable-next-line + sensors.forEach((sensor: { key: string, settings: any, object: any }) => { if (sensor.settings?.sensor_mcu === mcuName && sensor.object?.temperature) { output = { temperature: sensor.object.temperature.toFixed(0), diff --git a/src/store/printer/index.ts b/src/store/printer/index.ts index 311e7493..1e6de193 100644 --- a/src/store/printer/index.ts +++ b/src/store/printer/index.ts @@ -14,6 +14,7 @@ export const getDefaultState = (): PrinterState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const printer: Module = { namespaced: true, state, diff --git a/src/store/printer/mutations.ts b/src/store/printer/mutations.ts index faa0cf7c..909178b8 100644 --- a/src/store/printer/mutations.ts +++ b/src/store/printer/mutations.ts @@ -19,6 +19,7 @@ export const mutations: MutationTree = { }, setData(state, payload) { + // eslint-disable-next-line const setDataDeep = (currentState: any, payload: any) => { if (payload !== null && typeof payload === 'object') { Object.keys(payload).forEach((key: string) => { diff --git a/src/store/printer/tempHistory/actions.ts b/src/store/printer/tempHistory/actions.ts index 36a59a3f..ad84c374 100644 --- a/src/store/printer/tempHistory/actions.ts +++ b/src/store/printer/tempHistory/actions.ts @@ -30,6 +30,7 @@ export const actions: ActionTree = { if (payload !== undefined) { const objectKeys = Object.keys(payload) + // eslint-disable-next-line const importData: any = {} objectKeys.forEach((key: string) => { diff --git a/src/store/printer/tempHistory/getters.ts b/src/store/printer/tempHistory/getters.ts index 685705c8..7a7e313b 100644 --- a/src/store/printer/tempHistory/getters.ts +++ b/src/store/printer/tempHistory/getters.ts @@ -1,6 +1,10 @@ import {datasetTypes, datasetTypesInPercents} from '@/store/variables' import {GetterTree} from "vuex"; -import {PrinterTempHistoryState, PrinterTempHistoryStateSourceEntry} from "@/store/printer/tempHistory/types"; +import { + PrinterTempHistoryState, + PrinterTempHistoryStateSerie, + PrinterTempHistoryStateSourceEntry +} from "@/store/printer/tempHistory/types"; import {RootState} from "@/store/types"; export const getters: GetterTree = { @@ -18,11 +22,11 @@ export const getters: GetterTree = { getSerieNames: (state) => (name: string) => { const output: string[] = [] - if (state.series.findIndex((serie: any) => serie.name === name) !== -1) { + if (state.series.findIndex((serie: PrinterTempHistoryStateSerie) => serie.name === name) !== -1) { output.push("temperature") } - state.series.filter((serie: any) => serie.name.startsWith(name+"-")).forEach((serie) => { + state.series.filter((serie: PrinterTempHistoryStateSerie) => serie.name.startsWith(name+"-")).forEach((serie) => { output.push(serie.name.substr(name.length + 1)) }) diff --git a/src/store/printer/tempHistory/index.ts b/src/store/printer/tempHistory/index.ts index 52f56d55..15e85db7 100644 --- a/src/store/printer/tempHistory/index.ts +++ b/src/store/printer/tempHistory/index.ts @@ -14,6 +14,7 @@ export const getDefaultState = (): PrinterTempHistoryState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const tempHistory: Module = { namespaced: true, state, diff --git a/src/store/printer/tempHistory/mutations.ts b/src/store/printer/tempHistory/mutations.ts index 1c4e52a6..bfe6e209 100644 --- a/src/store/printer/tempHistory/mutations.ts +++ b/src/store/printer/tempHistory/mutations.ts @@ -1,5 +1,4 @@ import { getDefaultState } from './index' -import { datasetTypesInPercents } from '@/store/variables' import Vue from "vue"; import {MutationTree} from "vuex"; import {PrinterTempHistoryState, PrinterTempHistoryStateSerie} from "@/store/printer/tempHistory/types"; diff --git a/src/store/printer/tempHistory/types.ts b/src/store/printer/tempHistory/types.ts index 4f4d13c4..8a7a3c36 100644 --- a/src/store/printer/tempHistory/types.ts +++ b/src/store/printer/tempHistory/types.ts @@ -40,5 +40,6 @@ export interface PrinterTempHistoryStateSerie { } export interface PrinterTempHistoryStateSourceEntry { + // eslint-disable-next-line [key: string]: any } \ No newline at end of file diff --git a/src/store/printer/types.ts b/src/store/printer/types.ts index a844b790..069b7348 100644 --- a/src/store/printer/types.ts +++ b/src/store/printer/types.ts @@ -18,6 +18,7 @@ export interface ConsoleCommandHelp { } export interface PrinterState { + // eslint-disable-next-line [key: string]: any helplist?: CommandHelp[] tempHistory?: PrinterTempHistoryState @@ -91,7 +92,9 @@ export interface PrinterStateMiscellaneous { pwm: boolean rpm: number scale: number + // eslint-disable-next-line object: any, + // eslint-disable-next-line config: any off_below?: number max_power?: number @@ -105,7 +108,20 @@ export interface PrinterStateFilamentSensors { export interface PrinterStateBedMesh { name: string - data: any + data: { + algo: string + max_x: number + max_y: number + mesh_x_pps: number + mesh_y_pps: number + min_x: number + min_y: number + points: { [key: number]: number[] } + tension: number + version: number + x_count: number + y_count: number + } points: number[] min: number max: number @@ -117,10 +133,12 @@ export interface PrinterStateMacro { name: string description: string | null prop: { + // eslint-disable-next-line [key: string]: any } } export interface PrinterStateKlipperConfig { + // eslint-disable-next-line [key: string]: any } diff --git a/src/store/server/actions.ts b/src/store/server/actions.ts index 7782d981..a2e2b99f 100644 --- a/src/store/server/actions.ts +++ b/src/store/server/actions.ts @@ -79,7 +79,7 @@ export const actions: ActionTree = { let events: ServerStateEvent[] = payload.gcode_store const filters = rootGetters["gui/getConsoleFilterRules"] - filters.forEach((filter: any) => { + filters.forEach((filter: string) => { try { const regex = new RegExp(filter) events = events.filter(event => event.type !== 'response' || !regex.test(event.message)) @@ -110,7 +110,7 @@ export const actions: ActionTree = { const filters = rootGetters["gui/getConsoleFilterRules"] let boolImport = true if (type === "response") { - filters.every((filter: any) => { + filters.every((filter: string) => { try { const regex = new RegExp(filter) if (regex.test(formatMessage)) boolImport = false diff --git a/src/store/server/getters.ts b/src/store/server/getters.ts index 743c359b..52684e78 100644 --- a/src/store/server/getters.ts +++ b/src/store/server/getters.ts @@ -2,6 +2,7 @@ import {GetterTree} from "vuex"; import {ServerState} from "@/store/server/types"; import {formatConsoleMessage, formatFilesize, formatTime} from "@/plugins/helpers"; +// eslint-disable-next-line export const getters: GetterTree = { getConsoleEvents: (state) => (reverse = true, limit = 500) => { @@ -39,7 +40,26 @@ export const getters: GetterTree = { }, getHostStats: (state, getters, rootState, rootGetters) => { - let output: any = null + interface HostStats { + cpuName: string | null + cpuDesc: string | null + version: string | null + os: string | null + load: number + loadPercent: number + loadProgressColor: string + memoryFormat: string | null + memUsed: string + memAvail: string + memTotal: string + tempSensor: { + temperature: number + measured_min_temp: number | null, + measured_max_temp: number | null + } + } + + let output: HostStats | null = null //state.printer.system_stats if ('system_info' in state) { @@ -48,7 +68,7 @@ export const getters: GetterTree = { version = rootState.printer?.software_version.split('-').slice(0, 4).join('-') } - const cpuCors = state.system_info.cpu_info?.cpu_count ?? 1 + const cpuCors = state.system_info?.cpu_info?.cpu_count ?? 1 const load = Math.round((rootState.printer.system_stats?.sysload ?? 0) * 100) / 100 const loadPercent = Math.round(load / cpuCors * 100) @@ -58,7 +78,7 @@ export const getters: GetterTree = { let memoryFormat: null | string = null const memAvail = (rootState.printer.system_stats?.memavail ?? 0) * 1024 - const memTotal = (state.system_info.cpu_info?.total_memory ?? 0) * 1024 + const memTotal = (state.system_info?.cpu_info?.total_memory ?? 0) * 1024 if (memAvail > 0 && memTotal > 0) { memoryFormat = formatFilesize(memTotal - memAvail) + " / " + formatFilesize(memTotal) @@ -76,10 +96,10 @@ export const getters: GetterTree = { } output = { - cpuName: state.system_info.cpu_info?.processor ?? null, - cpuDesc: state.system_info.cpu_info?.cpu_desc ?? null, + cpuName: state.system_info?.cpu_info?.processor ?? null, + cpuDesc: state.system_info?.cpu_info?.cpu_desc ?? null, version, - os: state.system_info.distribution?.name ?? null, + os: state.system_info?.distribution?.name ?? null, load, loadPercent: loadPercent < 100 ? loadPercent : 100, loadProgressColor, diff --git a/src/store/server/history/getters.ts b/src/store/server/history/getters.ts index 7e186a2d..c9f53c34 100644 --- a/src/store/server/history/getters.ts +++ b/src/store/server/history/getters.ts @@ -1,6 +1,7 @@ import {GetterTree} from "vuex"; import {ServerHistoryState, ServerHistoryStateJob} from "@/store/server/history/types"; +// eslint-disable-next-line export const getters: GetterTree = { getTotalPrintTime(state) { @@ -59,12 +60,23 @@ export const getters: GetterTree = { }, getAllPrintStatusArray(state, getters, rootState) { + interface allPrintStatusEntryItemStyle { + opacity: number + color: string + borderColor: string + borderWidth: number + borderRadius: number + } + interface allPrintStatusEntryLabel { + color: string + } + interface allPrintStatusEntry { name: string value: number showInTable: boolean - itemStyle: any - label: any + itemStyle: allPrintStatusEntryItemStyle + label: allPrintStatusEntryLabel } const output: allPrintStatusEntry[] = [] @@ -111,6 +123,7 @@ export const getters: GetterTree = { }, getFilamentUsageArray(state) { + // eslint-disable-next-line const output: any = [] const startDate = new Date() startDate.setTime(startDate.getTime() - 60*60*24*14*1000) @@ -130,11 +143,13 @@ export const getters: GetterTree = { if (jobsFiltered.length) { jobsFiltered.forEach(current => { const currentStartDate = new Date(current.start_time * 1000).setHours(0,0,0,0) + // eslint-disable-next-line const index = output.findIndex((element: any) => element[0] === currentStartDate) if (index !== -1) output[index][1] += Math.round(current.filament_used) / 1000 }) } + // eslint-disable-next-line return output.sort((a: any, b: any) => { return b[0] - a[0] }) diff --git a/src/store/server/history/index.ts b/src/store/server/history/index.ts index 2c26c9a4..865a926f 100644 --- a/src/store/server/history/index.ts +++ b/src/store/server/history/index.ts @@ -21,6 +21,7 @@ export const getDefaultState = (): ServerHistoryState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const history: Module = { namespaced: true, state, diff --git a/src/store/server/history/types.ts b/src/store/server/history/types.ts index 619c5d09..a50c9bd7 100644 --- a/src/store/server/history/types.ts +++ b/src/store/server/history/types.ts @@ -16,6 +16,7 @@ export interface ServerHistoryStateJob { end_time: number filament_used: number filename:string + // eslint-disable-next-line metadata: any print_duration: number status: string diff --git a/src/store/server/index.ts b/src/store/server/index.ts index db1ef441..8fc288ce 100644 --- a/src/store/server/index.ts +++ b/src/store/server/index.ts @@ -21,9 +21,9 @@ export const getDefaultState = (): ServerState => { registered_directories: [], events: [], config: { }, - system_info: { }, + system_info: null, cpu_temp: 0, - moonraker_stats: { }, + moonraker_stats: null, throttled_state: { bits: 0, flags: [], @@ -34,6 +34,7 @@ export const getDefaultState = (): ServerState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const server: Module = { namespaced: true, state, diff --git a/src/store/server/mutations.ts b/src/store/server/mutations.ts index b05fe540..1440f941 100644 --- a/src/store/server/mutations.ts +++ b/src/store/server/mutations.ts @@ -43,14 +43,14 @@ export const mutations: MutationTree = { Vue.set(state, 'events', []) }, - setGcodeStore(state, payload: any) { + setGcodeStore(state, payload: { time: number, type: string, message: string }[]) { //const t0 = performance.now() if (payload.length >= maxEventHistory) { payload = payload.slice(payload.length - maxEventHistory); } - payload.forEach((message: any) => { + payload.forEach((message) => { const date = new Date(message.time * 1000) let formatMessage = formatConsoleMessage(message.message) diff --git a/src/store/server/power/getters.ts b/src/store/server/power/getters.ts index 973a75af..ea9ac045 100644 --- a/src/store/server/power/getters.ts +++ b/src/store/server/power/getters.ts @@ -1,6 +1,7 @@ import { GetterTree } from "vuex" import { ServerPowerState } from "@/store/server/power/types" +// eslint-disable-next-line export const getters: GetterTree = { getDevices: state => { return state.devices; diff --git a/src/store/server/power/index.ts b/src/store/server/power/index.ts index 1602c82b..249e5ec6 100644 --- a/src/store/server/power/index.ts +++ b/src/store/server/power/index.ts @@ -13,6 +13,7 @@ export const getDefaultState = (): ServerPowerState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const power: Module = { namespaced: true, state, diff --git a/src/store/server/types.ts b/src/store/server/types.ts index 285c34de..b6a2bb80 100644 --- a/src/store/server/types.ts +++ b/src/store/server/types.ts @@ -11,9 +11,22 @@ export interface ServerState { warnings: string[], registered_directories: string[], events: ServerStateEvent[], - config: any, - system_info: any, - moonraker_stats: any + config: { + // eslint-disable-next-line + [key: string]: any + }, + system_info: { + available_services: { [key: number]: string }[] + cpu_info: ServerStateCpuInfo + distribution: ServerStateDistribution + sd_info: ServerStateSdInfo + } | null + moonraker_stats: { + cpu_usage: number, + mem_units: string + memory: number + time: number + } | null cpu_temp: number, throttled_state: { bits: number @@ -31,4 +44,40 @@ export interface ServerStateEvent { type: string message: string formatMessage: string | string[] +} + +export interface ServerStateCpuInfo { + bits: string + cpu_count: number + cpu_desc: string + hardware_desc: string + memory_units: string + model: string + processor: string + total_memory: number +} + +export interface ServerStateDistribution { + codename: string + id: string + like: string + name: string + version: string + version_parts: { + build_number: string + major: string + minor: string + } +} + +export interface ServerStateSdInfo { + capacity: string + manufacturer: string + manufacturer_date: string + manufacturer_id: string + oem_id: string + product_name: string + product_revision: string + serial_number: string + total_bytes: number } \ No newline at end of file diff --git a/src/store/server/updateManager/getters.ts b/src/store/server/updateManager/getters.ts index 282f65db..53bfcfe4 100644 --- a/src/store/server/updateManager/getters.ts +++ b/src/store/server/updateManager/getters.ts @@ -1,9 +1,13 @@ import {GetterTree} from "vuex" -import {ServerUpdateMangerState} from "@/store/server/updateManager/types" +import { + ServerUpdateMangerState +} from "@/store/server/updateManager/types" import semver from "semver" +// eslint-disable-next-line export const getters: GetterTree = { getUpdateableSoftwares(state) { + // eslint-disable-next-line const output: any = {} const sortKeys = Object.keys(state.version_info).sort((a,b) => { if (a === 'klipper') return -1 @@ -26,13 +30,17 @@ export const getters: GetterTree = { }, isUpdateAvailable(state) { - for (const key of Object.keys(state.version_info)) { + const keys = Object.keys(state.version_info).filter((key: string) => key !== 'system') + + for (const key of keys) { + const versionInfo = state.version_info[key] + if ( - 'version' in state.version_info[key] && - 'remote_version' in state.version_info[key] && - semver.valid(state.version_info[key].version) && - semver.valid(state.version_info[key].remote_version) && - semver.gt(state.version_info[key].remote_version, state.version_info[key].version) + 'version' in versionInfo && + 'remote_version' in versionInfo && + semver.valid(versionInfo.version) && + semver.valid(versionInfo.remote_version) && + semver.gt(versionInfo.remote_version, versionInfo.version) ) return true } diff --git a/src/store/server/updateManager/index.ts b/src/store/server/updateManager/index.ts index b00fbe50..420b8afc 100644 --- a/src/store/server/updateManager/index.ts +++ b/src/store/server/updateManager/index.ts @@ -18,6 +18,7 @@ export const getDefaultState = (): ServerUpdateMangerState => { // initial state const state = getDefaultState() +// eslint-disable-next-line export const updateManager: Module = { namespaced: true, state, diff --git a/src/store/server/updateManager/types.ts b/src/store/server/updateManager/types.ts index ab0163cb..a5c142be 100644 --- a/src/store/server/updateManager/types.ts +++ b/src/store/server/updateManager/types.ts @@ -1,5 +1,8 @@ export interface ServerUpdateMangerState { - version_info: any + version_info: { + // eslint-disable-next-line + [key: string]: any + } updateResponse: { application: string, complete: boolean, @@ -10,4 +13,49 @@ export interface ServerUpdateMangerState { export interface ServerUpdateMangerStateMessages { date: Date message: string +} + +export interface ServerUpdateMangerStateVersionInfoGitRepoCommits { + sha: string + author: string + date: string + subject: string + message: string + tag: string | null +} + +export interface ServerUpdateMangerStateVersionInfoGitRepo { + branch: string + channel: string + commits_behind: ServerUpdateMangerStateVersionInfoGitRepoCommits[] + configured_type: string + current_hash: string + debug_enabled: boolean + detached: boolean + detected_type: string + full_version_string: string + git_messages: string[] + is_dirty: boolean + is_valid: boolean + need_channel_update: boolean + owner: string + pristine: boolean + remote_alias: string + remote_hash: string + remote_version: string + version: string +} + +export interface ServerUpdateMangerStateVersionInfoWeb { + channel: string + configured_type: string + name: string + owner: string + remote_version: string + version: string +} + +export interface ServerUpdateMangerStateVersionInfoSystem { + package_count: number + package_list: string[] } \ No newline at end of file diff --git a/src/typos/shims-tsx.d.ts b/src/typos/shims-tsx.d.ts index d83ebca7..12550257 100644 --- a/src/typos/shims-tsx.d.ts +++ b/src/typos/shims-tsx.d.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + import Vue, { VNode } from "vue"; declare global { diff --git a/src/typos/vue-headful.d.ts b/src/typos/vue-headful.d.ts index 9a6912f2..c3213298 100644 --- a/src/typos/vue-headful.d.ts +++ b/src/typos/vue-headful.d.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + declare module 'vue-headful' { export const vueHeadful: any } diff --git a/src/typos/vue-load-image.d.ts b/src/typos/vue-load-image.d.ts index 70841707..9ad2599e 100644 --- a/src/typos/vue-load-image.d.ts +++ b/src/typos/vue-load-image.d.ts @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + declare module 'vue-load-image' { export const VueLoadImage: any } diff --git a/vue.config.js b/vue.config.js index 9fe5200c..51597e2d 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ const path = require('path') const webpack = require('webpack') const generate = require('generate-file-webpack-plugin')