UNPKG

json-api-nestjs

Version:
27 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createController = createController; const common_1 = require("@nestjs/common"); const nestjs_shared_1 = require("../../../utils/nestjs-shared"); const utils_1 = require("./utils"); const constants_1 = require("../../../constants"); const json_base_controller_1 = require("../controller/json-base.controller"); const interceptors_1 = require("../interceptors"); function createController(entity, controller) { const controllerClass = controller || (0, utils_1.nameIt)((0, utils_1.getProviderName)(entity, constants_1.JSON_API_CONTROLLER_POSTFIX), json_base_controller_1.JsonBaseController); const entityName = entity.name; if (!Object.prototype.isPrototypeOf.call(json_base_controller_1.JsonBaseController, controllerClass)) { throw new Error(`Controller "${controller?.name}" should be inherited of "JsonBaseController"`); } const decoratorOptions = Reflect.getMetadata(constants_1.JSON_API_DECORATOR_OPTIONS, controllerClass); const controllerPath = decoratorOptions && decoratorOptions['overrideRoute'] ? decoratorOptions['overrideRoute'].toString() : `${(0, nestjs_shared_1.camelToKebab)(entityName)}`; (0, common_1.Controller)(controllerPath)(controllerClass); (0, common_1.Inject)(constants_1.ORM_SERVICE)(controllerClass.prototype, constants_1.ORM_SERVICE_PROPS); (0, common_1.UseInterceptors)(interceptors_1.LogTimeInterceptors)(controllerClass); (0, common_1.UseInterceptors)(interceptors_1.ErrorInterceptors)(controllerClass); return controllerClass; } //# sourceMappingURL=create-controller.js.map