UNPKG

balena-sdk

Version:
30 lines (29 loc) 1.63 kB
import type { BalenaModel, PineClient } from '..'; import type { StringKeyof } from '../../typings/utils'; import type { ExpandableStringKeyOf, ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core'; type DependentResourceName = { [K in StringKeyof<BalenaModel>]: BalenaModel[K] extends { Read: { id: number; value: string; }; Write: { value: string; }; } ? K : never; }[StringKeyof<BalenaModel>]; export declare function buildDependentResource<T extends DependentResourceName>({ pine }: { pine: PineClient; }, { resourceName, resourceKeyField, parentResourceName, getResourceId, }: { resourceName: T; resourceKeyField: StringKeyof<BalenaModel[T]['Read']>; parentResourceName: ExpandableStringKeyOf<BalenaModel[T]['Read']>; getResourceId: (uuidOrIdOrDict: string | number | Record<string, unknown>) => Promise<number>; }): { getAll<O extends ODataOptionsWithoutCount<BalenaModel[T]["Read"]>>(options?: O): Promise<OptionsToResponse<BalenaModel[T]["Read"], O, undefined>>; getAllByParent<O extends ODataOptionsWithoutCount<BalenaModel[T]["Read"]>>(parentParam: string | number | Record<string, unknown>, options?: O): Promise<OptionsToResponse<BalenaModel[T]["Read"], O, undefined>>; get(parentParam: string | number | Record<string, unknown>, key: string): Promise<string | undefined>; set(parentParam: string | number | Record<string, unknown>, key: string, value: string): Promise<void>; remove(parentParam: string | number | Record<string, unknown>, key: string): Promise<void>; }; export {};