From 0b73f53974c301667d4f2972d4b3392629e2d64b Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 20 Jan 2025 14:51:37 +0100 Subject: [PATCH] Automatically type getContext response --- packages/client/src/components/app/DataProvider.svelte | 5 ++--- .../client/src/components/app/blocks/form/FormBlock.svelte | 7 +++---- .../src/components/error-states/ComponentErrorState.svelte | 5 ++--- packages/client/src/context.d.ts | 7 +++++++ 4 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 packages/client/src/context.d.ts diff --git a/packages/client/src/components/app/DataProvider.svelte b/packages/client/src/components/app/DataProvider.svelte index 154f69d4de..a80b9a5f74 100644 --- a/packages/client/src/components/app/DataProvider.svelte +++ b/packages/client/src/components/app/DataProvider.svelte @@ -14,7 +14,6 @@ GroupUserDatasource, DataFetchOptions, } from "@budibase/types" - import { SDK, Component } from "../../index" type ProviderDatasource = Exclude< DataFetchDatasource, @@ -29,8 +28,8 @@ export let paginate: boolean export let autoRefresh: number - const { styleable, Provider, ActionTypes, API } = getContext("sdk") - const component = getContext("component") + const { styleable, Provider, ActionTypes, API } = getContext("sdk") + const component = getContext("component") let interval: ReturnType let queryExtensions: Record = {} diff --git a/packages/client/src/components/app/blocks/form/FormBlock.svelte b/packages/client/src/components/app/blocks/form/FormBlock.svelte index ab3c498ca3..3f44aee1d7 100644 --- a/packages/client/src/components/app/blocks/form/FormBlock.svelte +++ b/packages/client/src/components/app/blocks/form/FormBlock.svelte @@ -4,7 +4,6 @@ import { Utils } from "@budibase/frontend-core" import FormBlockWrapper from "./FormBlockWrapper.svelte" import { get } from "svelte/store" - import { Component, Context, SDK } from "../../../../index" import { TableSchema, UIDatasource } from "@budibase/types" type Field = { name: string; active: boolean } @@ -34,9 +33,9 @@ export let saveButtonLabel: boolean export let deleteButtonLabel: boolean - const { fetchDatasourceSchema, generateGoldenSample } = getContext("sdk") - const component = getContext("component") - const context = getContext("context") + const { fetchDatasourceSchema, generateGoldenSample } = getContext("sdk") + const component = getContext("component") + const context = getContext("context") let schema: TableSchema diff --git a/packages/client/src/components/error-states/ComponentErrorState.svelte b/packages/client/src/components/error-states/ComponentErrorState.svelte index b846eaa230..d30f4916da 100644 --- a/packages/client/src/components/error-states/ComponentErrorState.svelte +++ b/packages/client/src/components/error-states/ComponentErrorState.svelte @@ -3,15 +3,14 @@ import { Icon } from "@budibase/bbui" import MissingRequiredSetting from "./MissingRequiredSetting.svelte" import MissingRequiredAncestor from "./MissingRequiredAncestor.svelte" - import { Component, SDK } from "../../index" export let missingRequiredSettings: | { key: string; label: string }[] | undefined export let missingRequiredAncestors: string[] | undefined - const component = getContext("component") - const { styleable, builderStore } = getContext("sdk") + const component = getContext("component") + const { styleable, builderStore } = getContext("sdk") $: styles = { ...$component.styles, normal: {}, custom: null, empty: true } $: requiredSetting = missingRequiredSettings?.[0] diff --git a/packages/client/src/context.d.ts b/packages/client/src/context.d.ts new file mode 100644 index 0000000000..1bc0e3f7ad --- /dev/null +++ b/packages/client/src/context.d.ts @@ -0,0 +1,7 @@ +import { Component, Context, SDK } from "." + +declare module "svelte" { + function getContext(name: "sdk"): SDK + function getContext(name: "component"): Component + function getContext(name: "context"): Context +}