mono/packages/commons/dist/component.js
2025-01-25 08:08:52 +01:00

110 lines
9.3 KiB
JavaScript

import * as path from 'path';
import { z } from "zod";
// Author schema
export const AuthorSchema = z.object({
name: z.string(),
url: z.string(),
});
// Content schema
export const ContentSchema = z.object({
body: z.string().optional(),
features: z.string().optional(),
highlights: z.string().optional(),
specs: z.string().optional(),
license: z.string().optional()
});
// Assets schema
export const AssetsSchema = z.object({
gallery: z.array(z.string()).optional(),
renderings: z.array(z.string()).optional(),
components: z.array(z.string()).optional()
});
// Production schema
export const ProductionSchema = z.object({
"fusion-folder": z.string(),
"nc-folder": z.string(),
cam: z.array(AuthorSchema),
});
// Component config schema
export const ComponentConfigSchema = z.object({
// shop
cart_id: z.string().optional(),
code: z.string(),
price: z.number().optional(),
cscartCats: z.array(z.number()).optional(),
cscartId: z.number().optional(),
vendorId: z.number().optional(),
//internal
version: z.string().optional(),
status: z.string().optional(),
authors: z.array(AuthorSchema).optional(),
replaced_by: z.string().optional(),
alternatives: z.array(z.string()).optional(),
flags: z.number().optional(),
// public
download: z.boolean().optional(),
name: z.string(),
edrawings: z.string().optional(),
showDimensions: z.boolean().optional(),
showParts: z.boolean().optional(),
slug: z.string(),
score: z.number().optional(),
Preview3d: z.boolean().optional(),
keywords: z.string().optional(),
meta_keywords: z.string().optional(),
content: ContentSchema.optional(),
assets: AssetsSchema.optional(),
/**
* @deprecated
*/
howto_categories: z.union([z.string(), z.array(z.string())]).optional(),
steps: z.any().optional(),
sourceLanguage: z.string().optional(),
category: z.string(),
product_dimensions: z.string().optional(),
production: ProductionSchema.optional(),
}).passthrough();
import { isInvalidMarketplaceComponent, isValidLibraryComponent, isValidMarketplaceComponent, PFilterInvalid, PFilterValid } from './filter.js';
import { forward_slash, pathInfoEx } from './fs/_glob.js';
import { resolve } from './variables.js';
import { readOSRConfig } from './config.js';
const find_items = (nodes, options) => {
nodes = nodes.filter(options.filter);
return nodes.map((c) => {
const root = resolve(options.root, false, {});
return {
rel: forward_slash(`${path.relative(root, c)}`),
path: forward_slash(`${options.root}/${path.relative(root, c)}`),
config: readOSRConfig(c)
};
});
};
export const get = (src, root, type) => {
const srcInfo = pathInfoEx(src, false, {
absolute: true
});
switch (type) {
case PFilterValid.marketplace_component: {
const options = {
filter: isValidMarketplaceComponent,
root
};
return find_items(srcInfo.FILES, options);
}
case PFilterValid.library_component: {
const options = {
filter: isValidLibraryComponent,
root
};
return find_items(srcInfo.FILES, options);
}
case PFilterInvalid.marketplace_component: {
const options = {
filter: isInvalidMarketplaceComponent,
root
};
return find_items(srcInfo.FILES, options);
}
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUU1QixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLGdCQUFnQjtBQUNoQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNsQixDQUFDLENBQUM7QUFFSCxpQkFBaUI7QUFDakIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDakMsQ0FBQyxDQUFDO0FBRUgsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN2QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsVUFBVSxFQUFF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