@nestjsvn/swagger-sse
Version:
OpenAPI documentation and interactive Swagger UI for NestJS Server-Sent Events endpoints
80 lines (79 loc) • 3.83 kB
JavaScript
;
/**
* Plugin module exports
*
* This module provides the TypeScript CLI transformer for automatic
* SSE endpoint detection and documentation generation.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.addApiSseDecorator = exports.typeNameToEventName = exports.analyzeObservableType = exports.extractEventTypes = exports.isDecoratorNamed = exports.hasApiSseDecorator = exports.hasSseDecorator = exports.sseTransformer = void 0;
exports.before = before;
exports.after = after;
exports.afterDeclarations = afterDeclarations;
exports.default = nestjsCliPlugin;
exports.createTransformerFactory = createTransformerFactory;
const transformer_1 = require("./transformer");
var transformer_2 = require("./transformer");
Object.defineProperty(exports, "sseTransformer", { enumerable: true, get: function () { return transformer_2.sseTransformer; } });
var ast_utils_1 = require("./ast-utils");
Object.defineProperty(exports, "hasSseDecorator", { enumerable: true, get: function () { return ast_utils_1.hasSseDecorator; } });
Object.defineProperty(exports, "hasApiSseDecorator", { enumerable: true, get: function () { return ast_utils_1.hasApiSseDecorator; } });
Object.defineProperty(exports, "isDecoratorNamed", { enumerable: true, get: function () { return ast_utils_1.isDecoratorNamed; } });
Object.defineProperty(exports, "extractEventTypes", { enumerable: true, get: function () { return ast_utils_1.extractEventTypes; } });
Object.defineProperty(exports, "analyzeObservableType", { enumerable: true, get: function () { return ast_utils_1.analyzeObservableType; } });
Object.defineProperty(exports, "typeNameToEventName", { enumerable: true, get: function () { return ast_utils_1.typeNameToEventName; } });
Object.defineProperty(exports, "addApiSseDecorator", { enumerable: true, get: function () { return ast_utils_1.addApiSseDecorator; } });
/**
* NestJS CLI Plugin Integration - Before hook
*
* This function is called by the NestJS CLI before TypeScript compilation.
* It provides SSE transformer functionality for the before lifecycle.
*/
function before(options = {}, program) {
if (!program) {
throw new Error('TypeScript program is required for SSE transformer');
}
return (0, transformer_1.sseTransformer)(program, options);
}
/**
* NestJS CLI Plugin Integration - After hook
*
* This function is called by the NestJS CLI after TypeScript compilation.
* Currently delegates to the before transformer.
*/
function after(options = {}, program) {
if (!program) {
throw new Error('TypeScript program is required for SSE transformer');
}
return (0, transformer_1.sseTransformer)(program, options);
}
/**
* NestJS CLI Plugin Integration - After declarations hook
*
* This function is called by the NestJS CLI after declaration files are generated.
* Currently delegates to the before transformer.
*/
function afterDeclarations(options = {}, program) {
if (!program) {
throw new Error('TypeScript program is required for SSE transformer');
}
return (0, transformer_1.sseTransformer)(program, options);
}
/**
* Legacy function factory for backward compatibility
*/
function nestjsCliPlugin(pluginOptions = {}) {
return {
before: (options, program) => (0, transformer_1.sseTransformer)(program, pluginOptions),
after: (options, program) => (0, transformer_1.sseTransformer)(program, pluginOptions),
afterDeclarations: (options, program) => (0, transformer_1.sseTransformer)(program, pluginOptions),
};
}
/**
* TypeScript Compiler Plugin Integration
*
* This function provides integration with the TypeScript compiler plugin system.
*/
function createTransformerFactory(pluginOptions = {}) {
return (program) => (0, transformer_1.sseTransformer)(program, pluginOptions);
}