Files
recap/node_modules/@start9labs/start-sdk/base/lib/dependencies/setupDependencies.d.ts
T

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 {};