From 46e43f4bde4a35785b4997b81e86cd19f046b69b Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 21 Dec 2021 16:52:28 +0100 Subject: Commit --- .../class-validator/esm2015/container.js | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/node_modules/class-validator/esm2015/container.js (limited to 'src/node_modules/class-validator/esm2015/container.js') diff --git a/src/node_modules/class-validator/esm2015/container.js b/src/node_modules/class-validator/esm2015/container.js new file mode 100644 index 0000000..6e93b02 --- /dev/null +++ b/src/node_modules/class-validator/esm2015/container.js @@ -0,0 +1,47 @@ +/** + * Container to be used by this library for inversion control. If container was not implicitly set then by default + * container simply creates a new instance of the given class. + */ +const defaultContainer = new (class { + constructor() { + this.instances = []; + } + get(someClass) { + let instance = this.instances.find(instance => instance.type === someClass); + if (!instance) { + instance = { type: someClass, object: new someClass() }; + this.instances.push(instance); + } + return instance.object; + } +})(); +let userContainer; +let userContainerOptions; +/** + * Sets container to be used by this library. + */ +export function useContainer(iocContainer, options) { + userContainer = iocContainer; + userContainerOptions = options; +} +/** + * Gets the IOC container used by this library. + */ +export function getFromContainer(someClass) { + if (userContainer) { + try { + const instance = userContainer.get(someClass); + if (instance) + return instance; + if (!userContainerOptions || !userContainerOptions.fallback) + return instance; + } + catch (error) { + if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) + throw error; + } + } + return defaultContainer.get(someClass); +} + +//# sourceMappingURL=container.js.map -- cgit