type-compiler
Version:
A TypeScript compiler plugin for enhanced runtime type checking and analysis with Zod validation
70 lines (69 loc) • 3.25 kB
JavaScript
;
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;