@tsed/common
Version:
A TypeScript Framework on top of Express
47 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHandlerMetadata = void 0;
const HandlerType_1 = require("../../mvc/interfaces/HandlerType");
const EndpointMetadata_1 = require("../../mvc/models/EndpointMetadata");
const HandlerMetadata_1 = require("../../mvc/models/HandlerMetadata");
function isMetadata(input) {
return input instanceof HandlerMetadata_1.HandlerMetadata;
}
/**
* @ignore
*/
function createHandlerMetadata(injector, obj, routeOptions = {}) {
if (isMetadata(obj)) {
return obj;
}
let options;
if (obj instanceof EndpointMetadata_1.EndpointMetadata) {
const provider = injector.getProvider(obj.token);
options = {
token: provider.token,
target: provider.useClass,
type: HandlerType_1.HandlerType.ENDPOINT,
propertyKey: obj.propertyKey
};
}
else {
const provider = injector.getProvider(obj);
if (provider) {
options = {
token: provider.token,
target: provider.useClass,
type: HandlerType_1.HandlerType.MIDDLEWARE,
propertyKey: "use"
};
}
else {
options = {
target: obj
};
}
}
options.routeOptions = routeOptions;
return new HandlerMetadata_1.HandlerMetadata(options);
}
exports.createHandlerMetadata = createHandlerMetadata;
//# sourceMappingURL=createHandlerMetadata.js.map