23 lines
1023 B
TypeScript
23 lines
1023 B
TypeScript
import * as T from '../types';
|
|
export type RequiredDependenciesOf<Manifest extends T.SDKManifest> = {
|
|
[K in keyof Manifest['dependencies']]: Exclude<Manifest['dependencies'][K], undefined>['optional'] extends false ? K : never;
|
|
}[keyof Manifest['dependencies']];
|
|
export type OptionalDependenciesOf<Manifest extends T.SDKManifest> = Exclude<keyof Manifest['dependencies'], RequiredDependenciesOf<Manifest>>;
|
|
type DependencyRequirement = {
|
|
kind: 'running';
|
|
healthChecks: Array<T.HealthCheckId>;
|
|
versionRange: string;
|
|
} | {
|
|
kind: 'exists';
|
|
versionRange: string;
|
|
};
|
|
export type CurrentDependenciesResult<Manifest extends T.SDKManifest> = {
|
|
[K in RequiredDependenciesOf<Manifest>]: DependencyRequirement;
|
|
} & {
|
|
[K in OptionalDependenciesOf<Manifest>]?: DependencyRequirement;
|
|
};
|
|
export declare function setupDependencies<Manifest extends T.SDKManifest>(fn: (options: {
|
|
effects: T.Effects;
|
|
}) => Promise<CurrentDependenciesResult<Manifest>>): (effects: T.Effects) => Promise<null>;
|
|
export {};
|