cad:options schema

This commit is contained in:
Code 2025-02-07 00:03:04 +01:00
parent 581278f434
commit 1804c2d1bf
4 changed files with 155 additions and 1 deletions

21
packages/cad/dist/zod_schema.d.ts vendored Normal file
View File

@ -0,0 +1,21 @@
import { z } from 'zod';
export declare const ZPathInfoSchema: z.ZodUnknown;
export declare const ZOptionsCacheSchema: z.ZodObject<{
cache: z.ZodOptional<z.ZodBoolean>;
clear: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
cache?: boolean;
clear?: boolean;
}, {
cache?: boolean;
clear?: boolean;
}>;
export declare const ZNodeCallbackSchema: any;
export declare const ZOptionsBaseSchema: any;
export declare const ZSolidworkOptionsSchema: any;
export type ZOptionsCache = z.infer<typeof ZOptionsCacheSchema>;
export type ZOptionsBase = z.infer<typeof ZOptionsBaseSchema>;
export type ZNodeCallback = z.infer<typeof ZNodeCallbackSchema>;
export type ZSolidworkOptions = z.infer<typeof ZSolidworkOptionsSchema>;
export declare const types: () => void;
export declare const schemas: () => void;

57
packages/cad/dist/zod_schema.js vendored Normal file
View File

@ -0,0 +1,57 @@
import { z } from 'zod';
import { generate_interfaces } from '@polymech/commons/schemas';
export const ZPathInfoSchema = z.unknown();
export const ZOptionsCacheSchema = z.object({
cache: z.boolean().optional(),
clear: z.boolean().optional(),
});
export const ZNodeCallbackSchema = z.lazy(() => z.object({
src: z.string(),
target: z.string(),
options: ZOptionsBaseSchema,
}));
export const ZOptionsBaseSchema = z.lazy(() => ZOptionsCacheSchema.extend({
src: z.string(),
srcInfo: ZPathInfoSchema.optional(),
dstInfo: ZPathInfoSchema.optional(),
dst: z.string().optional(),
alt: z.boolean().optional(),
debug: z.boolean().optional(),
verbose: z.boolean().optional(),
dry: z.boolean().optional(),
report: z.string().optional(),
variables: z.record(z.string()),
script: z.string().optional(),
args: z.string().optional(),
onNode: z.function().args(ZNodeCallbackSchema).returns(z.promise(z.void())),
}));
export const ZSolidworkOptionsSchema = ZOptionsBaseSchema.extend({
'bom-template': z.string().optional(),
'bom-detail': z.number().optional(),
'bom-type': z.number().optional(),
'bom-images': z.boolean().optional(),
'bom-config': z.string().optional(),
close: z.boolean().optional(),
configuration: z.string().optional(),
height: z.number().optional(),
hidden: z.string().optional(),
light: z.boolean().optional(),
logLevel: z.string().optional(),
pack: z.boolean().optional(),
quality: z.number().optional(),
rebuild: z.boolean().optional(),
renderer: z.string().optional(),
save: z.boolean().optional(),
sw: z.string().optional(),
swv: z.number().optional(),
view: z.string().optional(),
width: z.number().optional(),
write: z.boolean().optional(),
});
export const types = () => {
generate_interfaces([ZSolidworkOptionsSchema], 'src/zod_types.ts');
schemas();
};
export const schemas = () => {
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLDJCQUEyQixDQUFBO0FBRWxGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM5QixDQUFDLENBQUM7QUFHSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUM3QyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1AsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsQixPQUFPLEVBQUUsa0JBQWtCO0NBQzVCLENBQUMsQ0FDSCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDNUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2YsT0FBTyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQy9CLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Q0FDNUUsQ0FBQyxDQUNILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFDL0QsY0FBYyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDckMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsWUFBWSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekIsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDMUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUIsQ0FBQyxDQUFDO0FBUUgsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtJQUN0QixtQkFBbUIsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUNsRSxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7QUFFNUIsQ0FBQyxDQUFBIn0=

View File

@ -51,7 +51,8 @@
"tslint": "^5.10.0",
"tslog": "^3.3.3",
"which": "^2.0.2",
"yargs": "^17.7.2"
"yargs": "^17.7.2",
"zod": "^3.24.1"
},
"devDependencies": {
"@types/js-yaml": "^4.0.9",

View File

@ -0,0 +1,75 @@
import { z } from 'zod';
import { generate_interfaces, write, ZodMetaMap } from '@polymech/commons/schemas'
export const ZPathInfoSchema = z.unknown();
export const ZOptionsCacheSchema = z.object({
cache: z.boolean().optional(),
clear: z.boolean().optional(),
});
export const ZNodeCallbackSchema = z.lazy(() =>
z.object({
src: z.string(),
target: z.string(),
options: ZOptionsBaseSchema,
})
);
export const ZOptionsBaseSchema = z.lazy(() =>
ZOptionsCacheSchema.extend({
src: z.string(),
srcInfo: ZPathInfoSchema.optional(),
dstInfo: ZPathInfoSchema.optional(),
dst: z.string().optional(),
alt: z.boolean().optional(),
debug: z.boolean().optional(),
verbose: z.boolean().optional(),
dry: z.boolean().optional(),
report: z.string().optional(),
variables: z.record(z.string()),
script: z.string().optional(),
args: z.string().optional(),
onNode: z.function().args(ZNodeCallbackSchema).returns(z.promise(z.void())),
})
);
export const ZSolidworkOptionsSchema = ZOptionsBaseSchema.extend({
'bom-template': z.string().optional(),
'bom-detail': z.number().optional(),
'bom-type': z.number().optional(),
'bom-images': z.boolean().optional(),
'bom-config': z.string().optional(),
close: z.boolean().optional(),
configuration: z.string().optional(),
height: z.number().optional(),
hidden: z.string().optional(),
light: z.boolean().optional(),
logLevel: z.string().optional(),
pack: z.boolean().optional(),
quality: z.number().optional(),
rebuild: z.boolean().optional(),
renderer: z.string().optional(),
save: z.boolean().optional(),
sw: z.string().optional(),
swv: z.number().optional(),
view: z.string().optional(),
width: z.number().optional(),
write: z.boolean().optional(),
});
export type ZOptionsCache = z.infer<typeof ZOptionsCacheSchema>;
export type ZOptionsBase = z.infer<typeof ZOptionsBaseSchema>;
export type ZNodeCallback = z.infer<typeof ZNodeCallbackSchema>;
export type ZSolidworkOptions = z.infer<typeof ZSolidworkOptionsSchema>;
export const types = () => {
generate_interfaces([ZSolidworkOptionsSchema], 'src/zod_types.ts')
schemas()
}
export const schemas = () => {
}