mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 18:31:52 +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>
31 lines
905 B
TypeScript
31 lines
905 B
TypeScript
import { literals, some, string } from "ts-matches"
|
|
|
|
type NestedPath<A extends string, B extends string> = `/${A}/${string}/${B}`
|
|
type NestedPaths = NestedPath<"actions", "run" | "getInput">
|
|
// prettier-ignore
|
|
type UnNestPaths<A> =
|
|
A extends `${infer A}/${infer B}` ? [...UnNestPaths<A>, ... UnNestPaths<B>] :
|
|
[A]
|
|
|
|
export function unNestPath<A extends string>(a: A): UnNestPaths<A> {
|
|
return a.split("/") as UnNestPaths<A>
|
|
}
|
|
function isNestedPath(path: string): path is NestedPaths {
|
|
const paths = path.split("/")
|
|
if (paths.length !== 4) return false
|
|
if (paths[1] === "actions" && (paths[3] === "run" || paths[3] === "getInput"))
|
|
return true
|
|
return false
|
|
}
|
|
export const jsonPath = some(
|
|
literals(
|
|
"/packageInit",
|
|
"/packageUninit",
|
|
"/backup/create",
|
|
"/backup/restore",
|
|
),
|
|
string.refine(isNestedPath, "isNestedPath"),
|
|
)
|
|
|
|
export type JsonPath = typeof jsonPath._TYPE
|