60 lines
No EOL
1.1 KiB
TypeScript
60 lines
No EOL
1.1 KiB
TypeScript
import * as z from "zod/v4";
|
|
|
|
export type MixFile = {
|
|
[key: string]: {
|
|
packages: MixPackage[];
|
|
};
|
|
};
|
|
|
|
export type MixPackage = {
|
|
id: string;
|
|
version: string;
|
|
config: {
|
|
type: "raw" | "json";
|
|
path: string;
|
|
data: unknown;
|
|
}[]
|
|
}
|
|
|
|
export const MixPackageSchema = z.object({
|
|
id: z.string(),
|
|
version: z.string(),
|
|
config: z.array(z.object({
|
|
type: z.enum(["raw", "json"]),
|
|
path: z.string(),
|
|
data: z.unknown()
|
|
}))
|
|
.optional()
|
|
.default([]),
|
|
});
|
|
|
|
export const MixFileSchema = z.record(
|
|
z.string(),
|
|
z.object({
|
|
packages: z.array(MixPackageSchema)
|
|
})
|
|
);
|
|
|
|
export type MixLockFile = MixLockPackage[]
|
|
|
|
export type MixLockPackage = {
|
|
id: string;
|
|
version: string;
|
|
config: {
|
|
type: "raw" | "json";
|
|
path: string;
|
|
data: string;
|
|
}[];
|
|
}
|
|
|
|
export const MixLockPackageSchema = z.object({
|
|
id: z.string(),
|
|
version: z.string(),
|
|
config: z.array(z.object({
|
|
type: z.enum(["raw", "json"]),
|
|
path: z.string(),
|
|
data: z.string()
|
|
}))
|
|
});
|
|
|
|
export const MixLockFileSchema = z.array(MixLockPackageSchema); |