strapi-nextgen-framework
Version:
Production-ready, type-safe framework bridging Strapi v4 CMS and Next.js 14+ App Router with automatic cache management, Error Boundaries, and SEO optimization
47 lines • 1.6 kB
JavaScript
;
/**
* Zod validation utilities for component data
* Provides runtime type safety for Strapi component data
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasStrapiComponent = exports.validateComponentData = void 0;
/**
* Validates component data against a Zod schema
*
* @param data - Component data to validate
* @param schema - Zod schema to validate against
* @param componentType - Component type name (for logging)
* @param mode - Validation mode ('error' | 'warn' | 'silent')
* @returns Validation result
*/
function validateComponentData(data, schema, componentType, mode) {
try {
schema.parse(data);
return { success: true };
}
catch (error) {
// Handle validation failure based on mode
if (mode === 'error') {
console.error(`[StrapiRenderer] Validation failed for component: ${componentType}`, '\nData:', data, '\nError:', error);
}
else if (mode === 'warn') {
console.warn(`[StrapiRenderer] Validation warning for component: ${componentType}`, '\nData:', data, '\nError:', error);
}
return {
success: false,
error,
};
}
}
exports.validateComponentData = validateComponentData;
/**
* Type guard to check if data has __component field
*/
function hasStrapiComponent(data) {
return (typeof data === 'object' &&
data !== null &&
'__component' in data &&
typeof data.__component === 'string');
}
exports.hasStrapiComponent = hasStrapiComponent;
//# sourceMappingURL=validator.js.map