jec-sandcat
Version:
JEC Sandcat - The default RESTful web services framework for GlassCat applications.
41 lines (40 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const MethodDescriptor_1 = require("../reflect/MethodDescriptor");
const fnArgs = require("function-arguments");
const SingletonErrorFactory_1 = require("../utils/SingletonErrorFactory");
class MethodDescriptorBuilder {
constructor() {
if (MethodDescriptorBuilder._locked || MethodDescriptorBuilder.INSTANCE) {
new SingletonErrorFactory_1.SingletonErrorFactory().throw(MethodDescriptorBuilder);
}
MethodDescriptorBuilder._locked = true;
}
static getInstance() {
if (MethodDescriptorBuilder.INSTANCE === null) {
MethodDescriptorBuilder._locked = false;
MethodDescriptorBuilder.INSTANCE = new MethodDescriptorBuilder();
}
return MethodDescriptorBuilder.INSTANCE;
}
build(httpMethod, key, descriptor, params) {
const methodDesc = new MethodDescriptor_1.MethodDescriptor();
const action = descriptor.value;
let route = null;
methodDesc.httpMethod = httpMethod;
methodDesc.name = key;
methodDesc.action = action;
methodDesc.parameterNames = fnArgs(descriptor.value);
if (params) {
methodDesc.route = params.route || null;
methodDesc.produces = params.produces || null;
methodDesc.consumes = params.consumes || null;
methodDesc.crossDomainPolicy = params.crossDomainPolicy || null;
}
return methodDesc;
}
}
MethodDescriptorBuilder._locked = true;
MethodDescriptorBuilder.INSTANCE = null;
exports.MethodDescriptorBuilder = MethodDescriptorBuilder;
;