UNPKG

neumorphic-peripheral

Version:

A lightweight, framework-agnostic JavaScript/TypeScript library for beautiful neumorphic styling

76 lines (75 loc) 2.47 kB
"use strict"; /** * Validation Library Adapters * * This module provides adapters for popular validation libraries, * allowing seamless integration with neumorphic-peripheral components. */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.detectAvailableAdapters = detectAvailableAdapters; exports.suggestAdapter = suggestAdapter; // Export all adapters __exportStar(require("./zod"), exports); // export * from './yup' __exportStar(require("./joi"), exports); // Adapter detection utility function detectAvailableAdapters() { const adapters = { zod: false, yup: false, joi: false }; try { require.resolve('zod'); adapters.zod = true; } catch { // Zod not available } try { require.resolve('yup'); adapters.yup = true; } catch { // Yup not available } try { require.resolve('joi'); adapters.joi = true; } catch { // Joi not available } return adapters; } // Auto-detect and suggest adapters function suggestAdapter() { const available = detectAvailableAdapters(); const availableLibs = Object.entries(available) .filter(([, isAvailable]) => isAvailable) .map(([name]) => name); if (availableLibs.length === 0) { return 'No validation library adapters detected. Install zod, yup, or joi for enhanced validation.'; } else if (availableLibs.length === 1) { const lib = availableLibs[0]; return `${lib.charAt(0).toUpperCase() + lib.slice(1)} adapter available - great choice for validation!`; } else { return `Multiple validation libraries available: ${availableLibs.join(', ')}. Zod recommended for TypeScript projects.`; } }