summaryrefslogtreecommitdiff
path: root/src/node_modules/class-validator/esm5/container.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/class-validator/esm5/container.js')
-rw-r--r--src/node_modules/class-validator/esm5/container.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/node_modules/class-validator/esm5/container.js b/src/node_modules/class-validator/esm5/container.js
new file mode 100644
index 0000000..6cbaf33
--- /dev/null
+++ b/src/node_modules/class-validator/esm5/container.js
@@ -0,0 +1,48 @@
+/**
+ * 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.
+ */
+var defaultContainer = new (/** @class */ (function () {
+ function class_1() {
+ this.instances = [];
+ }
+ class_1.prototype.get = function (someClass) {
+ var instance = this.instances.find(function (instance) { return instance.type === someClass; });
+ if (!instance) {
+ instance = { type: someClass, object: new someClass() };
+ this.instances.push(instance);
+ }
+ return instance.object;
+ };
+ return class_1;
+}()))();
+var userContainer;
+var 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 {
+ var 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