balena-sdk
Version:
The Balena JavaScript SDK
30 lines (29 loc) • 1.63 kB
TypeScript
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 {};