Fix types

This commit is contained in:
Adria Navarro 2025-01-27 15:50:36 +01:00
parent 588d4b7485
commit 8842bfe3b4
3 changed files with 14 additions and 9 deletions

View File

@ -1,7 +1,7 @@
import { get } from "svelte/store" import { get } from "svelte/store"
import { selectedScreen as selectedScreenStore } from "./screens" import { selectedScreen as selectedScreenStore } from "./screens"
import { findComponentPath } from "@/helpers/components" import { findComponentPath } from "@/helpers/components"
import { Component } from "@budibase/types" import { Component, Screen } from "@budibase/types"
import { BudiStore, PersistenceType } from "@/stores/BudiStore" import { BudiStore, PersistenceType } from "@/stores/BudiStore"
interface OpenNodesState { interface OpenNodesState {

View File

@ -35,7 +35,7 @@ export const initialScreenState: ScreenState = {
export class ScreenStore extends BudiStore<ScreenState> { export class ScreenStore extends BudiStore<ScreenState> {
history: any history: any
delete: any delete: any
save: any save: (screen: Screen) => Promise<Screen>
constructor() { constructor() {
super(initialScreenState) super(initialScreenState)
@ -281,7 +281,10 @@ export class ScreenStore extends BudiStore<ScreenState> {
* supports deeply mutating the current doc rather than just appending data. * supports deeply mutating the current doc rather than just appending data.
*/ */
sequentialScreenPatch = Utils.sequential( sequentialScreenPatch = Utils.sequential(
async (patchFn: (screen: Screen) => any, screenId: string) => { async (
patchFn: (screen: Screen) => boolean,
screenId: string
): Promise<Screen | void> => {
const state = get(this.store) const state = get(this.store)
const screen = state.screens.find(screen => screen._id === screenId) const screen = state.screens.find(screen => screen._id === screenId)
if (!screen) { if (!screen) {

View File

@ -17,12 +17,13 @@ export const sequential = <
TFunction extends (...args: any[]) => Promise<TReturn> TFunction extends (...args: any[]) => Promise<TReturn>
>( >(
fn: TFunction fn: TFunction
): ((...args: Parameters<TFunction>) => Promise<TReturn | undefined>) => { ): TFunction => {
let queue: any[] = [] let queue: (() => Promise<void>)[] = []
return (...params: Parameters<TFunction>) => { const result = (...params: Parameters<TFunction>) => {
return new Promise<TReturn | undefined>((resolve, reject) => { return new Promise<TReturn>((resolve, reject) => {
queue.push(async () => { queue.push(async () => {
let data, error let data: TReturn | undefined
let error: unknown
try { try {
data = await fn(...params) data = await fn(...params)
} catch (err) { } catch (err) {
@ -35,7 +36,7 @@ export const sequential = <
if (error) { if (error) {
reject(error) reject(error)
} else { } else {
resolve(data) resolve(data!)
} }
}) })
if (queue.length === 1) { if (queue.length === 1) {
@ -43,6 +44,7 @@ export const sequential = <
} }
}) })
} }
return result as TFunction
} }
/** /**