UNPKG

weavebot-core

Version:

Generic content processing framework for web scraping and AI extraction

72 lines 1.64 kB
// src/schemas/index.ts var SchemaRegistry = class { schemas = /* @__PURE__ */ new Map(); fieldMappings = /* @__PURE__ */ new Map(); /** * Register a schema with optional field mapping */ register(name, schema, fieldMapping) { this.schemas.set(name, schema); if (fieldMapping) { this.fieldMappings.set(name, fieldMapping); } } /** * Validate data against a registered schema */ validate(schemaName, data) { const schema = this.schemas.get(schemaName); if (!schema) { throw new Error(`Schema '${schemaName}' not found`); } return schema.parse(data); } /** * Get a registered schema */ getSchema(name) { return this.schemas.get(name); } /** * Get field mapping for a schema */ getFieldMapping(name) { return this.fieldMappings.get(name); } /** * List all registered schema names */ listSchemas() { return Array.from(this.schemas.keys()); } /** * Check if a schema is registered */ hasSchema(name) { return this.schemas.has(name); } /** * Clear all registered schemas */ clear() { this.schemas.clear(); this.fieldMappings.clear(); } }; var defaultSchemaRegistry = new SchemaRegistry(); function createSchemaRegistry(schemas, mappings) { const registry = new SchemaRegistry(); if (schemas) { Object.entries(schemas).forEach(([name, schema]) => { const mapping = mappings?.[name]; registry.register(name, schema, mapping); }); } return registry; } export { SchemaRegistry, createSchemaRegistry, defaultSchemaRegistry }; //# sourceMappingURL=schemas.mjs.map