jec-sandcat
Version:
JEC Sandcat - The default RESTful web services framework for GlassCat applications.
31 lines (30 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const SandcatResourceJsletProxy_1 = require("../jslet/SandcatResourceJsletProxy");
const jec_commons_1 = require("jec-commons");
const ResourceDescriptorRegistry_1 = require("../metadata/ResourceDescriptorRegistry");
const ResourceDescriptor_1 = require("../reflect/ResourceDescriptor");
const ResourceDescriptorUtil_1 = require("../utils/ResourceDescriptorUtil");
const jec_sokoke_1 = require("jec-sokoke");
class ResourceProxyJsletFactory {
constructor() { }
create(file, contextRoot, sandcatContainer) {
const descriptor = new ResourceDescriptor_1.ResourceDescriptor();
ResourceDescriptorRegistry_1.ResourceDescriptorRegistry.registerDescriptor(descriptor);
descriptor.contextRoot = contextRoot;
const jslet = new SandcatResourceJsletProxy_1.SandcatResourceJsletProxy();
const filePath = jec_commons_1.PathUtils.getInstance().buildFilePath(file.path, file.name);
const ConstObj = jec_commons_1.GlobalClassLoader.getInstance().loadClass(filePath);
const resourceObj = new ConstObj();
const descriptorUtil = new ResourceDescriptorUtil_1.ResourceDescriptorUtil(resourceObj, descriptor, sandcatContainer);
descriptorUtil.decorate();
descriptorUtil.fixCompositeValues();
jslet.setResource(resourceObj);
jec_sokoke_1.SokokeInjector.getInstance()
.inject(resourceObj, jec_sokoke_1.SokokeInjector.DEFAULT_SCOPE_TYPES);
ResourceDescriptorRegistry_1.ResourceDescriptorRegistry.registerDescriptor(null);
return jslet;
}
}
exports.ResourceProxyJsletFactory = ResourceProxyJsletFactory;
;