feat: Complain on the volume that doesn't exist, remove unique set of Name, Manifest, Volume

This commit is contained in:
BluJ
2023-05-11 11:18:20 -06:00
parent df2ca832c5
commit c7feab7747
3 changed files with 47 additions and 48 deletions

View File

@@ -1,4 +1,5 @@
import { Effects } from "../types"
import { _ } from "../util"
import {
Path,
ManifestId,
@@ -7,11 +8,12 @@ import {
matchPath,
} from "./setupDependencyMounts"
export type MountDependenciesOut<A> =
export type MountDependenciesOut<A> = _<
// prettier-ignore
A extends Path ? string : A extends Record<string, unknown> ? {
[P in keyof A]: MountDependenciesOut<A[P]>;
} : never
>
export async function mountDependencies<
In extends
| Record<ManifestId, Record<VolumeName, Record<NamedPath, Path>>>
@@ -20,14 +22,14 @@ export async function mountDependencies<
| Path,
>(effects: Effects, value: In): Promise<MountDependenciesOut<In>> {
if (matchPath.test(value)) {
const mountPath = `${value.manifest.id}/${value.volume}/${value.name}`
const mountPath = `${value.manifestId}/${value.volume}/${value.name}`
return (await effects.mount({
location: {
path: mountPath,
},
target: {
packageId: value.manifest.id,
packageId: value.manifestId,
path: value.path,
readonly: value.readonly,
volumeId: value.volume,