summaryrefslogtreecommitdiff
path: root/src/node_modules/inversify/es/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_modules/inversify/es/utils')
-rw-r--r--src/node_modules/inversify/es/utils/binding_utils.js11
-rw-r--r--src/node_modules/inversify/es/utils/exceptions.js5
-rw-r--r--src/node_modules/inversify/es/utils/id.js5
-rw-r--r--src/node_modules/inversify/es/utils/serialization.js97
4 files changed, 118 insertions, 0 deletions
diff --git a/src/node_modules/inversify/es/utils/binding_utils.js b/src/node_modules/inversify/es/utils/binding_utils.js
new file mode 100644
index 0000000..3df9d8f
--- /dev/null
+++ b/src/node_modules/inversify/es/utils/binding_utils.js
@@ -0,0 +1,11 @@
+export var multiBindToService = function (container) {
+ return function (service) {
+ return function () {
+ var types = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ types[_i] = arguments[_i];
+ }
+ return types.forEach(function (t) { return container.bind(t).toService(service); });
+ };
+ };
+};
diff --git a/src/node_modules/inversify/es/utils/exceptions.js b/src/node_modules/inversify/es/utils/exceptions.js
new file mode 100644
index 0000000..e458934
--- /dev/null
+++ b/src/node_modules/inversify/es/utils/exceptions.js
@@ -0,0 +1,5 @@
+import * as ERROR_MSGS from "../constants/error_msgs";
+export function isStackOverflowExeption(error) {
+ return (error instanceof RangeError ||
+ error.message === ERROR_MSGS.STACK_OVERFLOW);
+}
diff --git a/src/node_modules/inversify/es/utils/id.js b/src/node_modules/inversify/es/utils/id.js
new file mode 100644
index 0000000..2976c9f
--- /dev/null
+++ b/src/node_modules/inversify/es/utils/id.js
@@ -0,0 +1,5 @@
+var idCounter = 0;
+function id() {
+ return idCounter++;
+}
+export { id };
diff --git a/src/node_modules/inversify/es/utils/serialization.js b/src/node_modules/inversify/es/utils/serialization.js
new file mode 100644
index 0000000..9cda0d0
--- /dev/null
+++ b/src/node_modules/inversify/es/utils/serialization.js
@@ -0,0 +1,97 @@
+import * as ERROR_MSGS from "../constants/error_msgs";
+function getServiceIdentifierAsString(serviceIdentifier) {
+ if (typeof serviceIdentifier === "function") {
+ var _serviceIdentifier = serviceIdentifier;
+ return _serviceIdentifier.name;
+ }
+ else if (typeof serviceIdentifier === "symbol") {
+ return serviceIdentifier.toString();
+ }
+ else {
+ var _serviceIdentifier = serviceIdentifier;
+ return _serviceIdentifier;
+ }
+}
+function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
+ var registeredBindingsList = "";
+ var registeredBindings = getBindings(container, serviceIdentifier);
+ if (registeredBindings.length !== 0) {
+ registeredBindingsList = "\nRegistered bindings:";
+ registeredBindings.forEach(function (binding) {
+ var name = "Object";
+ if (binding.implementationType !== null) {
+ name = getFunctionName(binding.implementationType);
+ }
+ registeredBindingsList = registeredBindingsList + "\n " + name;
+ if (binding.constraint.metaData) {
+ registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
+ }
+ });
+ }
+ return registeredBindingsList;
+}
+function alreadyDependencyChain(request, serviceIdentifier) {
+ if (request.parentRequest === null) {
+ return false;
+ }
+ else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
+ return true;
+ }
+ else {
+ return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
+ }
+}
+function dependencyChainToString(request) {
+ function _createStringArr(req, result) {
+ if (result === void 0) { result = []; }
+ var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
+ result.push(serviceIdentifier);
+ if (req.parentRequest !== null) {
+ return _createStringArr(req.parentRequest, result);
+ }
+ return result;
+ }
+ var stringArr = _createStringArr(request);
+ return stringArr.reverse().join(" --> ");
+}
+function circularDependencyToException(request) {
+ request.childRequests.forEach(function (childRequest) {
+ if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
+ var services = dependencyChainToString(childRequest);
+ throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
+ }
+ else {
+ circularDependencyToException(childRequest);
+ }
+ });
+}
+function listMetadataForTarget(serviceIdentifierString, target) {
+ if (target.isTagged() || target.isNamed()) {
+ var m_1 = "";
+ var namedTag = target.getNamedTag();
+ var otherTags = target.getCustomTags();
+ if (namedTag !== null) {
+ m_1 += namedTag.toString() + "\n";
+ }
+ if (otherTags !== null) {
+ otherTags.forEach(function (tag) {
+ m_1 += tag.toString() + "\n";
+ });
+ }
+ return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
+ }
+ else {
+ return " " + serviceIdentifierString;
+ }
+}
+function getFunctionName(v) {
+ if (v.name) {
+ return v.name;
+ }
+ else {
+ var name_1 = v.toString();
+ var match = name_1.match(/^function\s*([^\s(]+)/);
+ return match ? match[1] : "Anonymous function: " + name_1;
+ }
+}
+export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException };