UNPKG

type-compiler

Version:

A TypeScript compiler plugin for enhanced runtime type checking and analysis with Zod validation

70 lines (69 loc) 3.25 kB
"use strict"; 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.getLogger = exports.LogLevel = exports.Logger = exports.logger = exports.typeToZodSchema = exports.createTypeCompilerPlugin = void 0; exports.typeCompilerPlugin = typeCompilerPlugin; exports.zodSchemaPlugin = zodSchemaPlugin; const transformers_1 = require("./transformers"); const logger_1 = require("./logger"); /** * Create a TypeScript compiler plugin */ function typeCompilerPlugin(program, options = {}) { // Configure the logger from the options logger_1.logger.configureFromOptions(options); // Log plugin initialization logger_1.logger.info('Initializing type-compiler plugin', { generateZodSchemas: options.generateZodSchemas, parallelProcessing: options.parallelProcessing }); const transformerFactory = (0, transformers_1.createZodTransformer)(program, options); // Log completion logger_1.logger.debug('Transformer factory created'); return { before: [ (program) => { logger_1.logger.debug('Running transformer'); return transformerFactory(program); } ], }; } /** * Create a TypeScript compiler plugin with Zod schema generation */ function zodSchemaPlugin(program, options = {}) { return typeCompilerPlugin(program, { ...options, generateZodSchemas: true, }); } // Export main API var transformers_2 = require("./transformers"); Object.defineProperty(exports, "createTypeCompilerPlugin", { enumerable: true, get: function () { return transformers_2.createTypeCompilerPlugin; } }); var type_processor_1 = require("./type-processor"); Object.defineProperty(exports, "typeToZodSchema", { enumerable: true, get: function () { return type_processor_1.typeToZodSchema; } }); __exportStar(require("./types"), exports); __exportStar(require("./cache"), exports); __exportStar(require("./parallel"), exports); __exportStar(require("./utils"), exports); var logger_2 = require("./logger"); Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_2.logger; } }); Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_2.Logger; } }); Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return logger_2.LogLevel; } }); Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_2.getLogger; } }); // Default export for backward compatibility exports.default = typeCompilerPlugin;