mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 04:01:58 +00:00
* update actions response types and partially implement in UI * further remove diagnostic ui * convert action response nested to array * prepare action res modal for Alex * ad dproperties action for Bitcoin * feat: add action success dialog (#2753) * feat: add action success dialog * mocks for string action res and hide properties from actions page --------- Co-authored-by: Matt Hill <mattnine@protonmail.com> * return null * remove properties from backend * misc fixes * make severity separate argument * rename ActionRequest to ActionRequestOptions * add clearRequests * fix s9pk build * remove config and properties, introduce action requests * better ux, better moocks, include icons * fix dependency types * add variant for versionCompat * fix dep icon display and patch operation display * misc fixes * misc fixes * alpha 12 * honor provided input to set values in action * fix: show full descriptions of action success items (#2758) * fix type * fix: fix build:deps command on Windows (#2752) * fix: fix build:deps command on Windows * fix: add escaped quotes --------- Co-authored-by: Aiden McClelland <me@drbonez.dev> * misc db compatibility fixes --------- Co-authored-by: Alex Inkin <alexander@inkin.ru> Co-authored-by: Aiden McClelland <me@drbonez.dev> Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import * as T from "../types"
|
|
import { once } from "../util"
|
|
|
|
type DependencyType<Manifest extends T.SDKManifest> = {
|
|
[K in keyof Manifest["dependencies"]]: Omit<T.DependencyRequirement, "id">
|
|
}
|
|
|
|
export function setupDependencies<Manifest extends T.SDKManifest>(
|
|
fn: (options: { effects: T.Effects }) => Promise<DependencyType<Manifest>>,
|
|
): (options: { effects: T.Effects }) => Promise<null> {
|
|
const cell = { updater: async (_: { effects: T.Effects }) => null }
|
|
cell.updater = async (options: { effects: T.Effects }) => {
|
|
options.effects = {
|
|
...options.effects,
|
|
constRetry: once(() => {
|
|
cell.updater(options)
|
|
}),
|
|
}
|
|
const dependencyType = await fn(options)
|
|
return await options.effects.setDependencies({
|
|
dependencies: Object.entries(dependencyType).map(
|
|
([id, { versionRange, ...x }, ,]) =>
|
|
({
|
|
id,
|
|
...x,
|
|
versionRange: versionRange.toString(),
|
|
}) as T.DependencyRequirement,
|
|
),
|
|
})
|
|
}
|
|
return cell.updater
|
|
}
|