summaryrefslogtreecommitdiff
path: root/src/node_modules/inversify/lib/utils/serialization.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:52:28 +0100
commit46e43f4bde4a35785b4997b81e86cd19f046b69b (patch)
treec53c2f826f777f9d6b2d249dab556feb72a6c3a6 /src/node_modules/inversify/lib/utils/serialization.js
downloadlangdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.gz
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.tar.bz2
langdetect-46e43f4bde4a35785b4997b81e86cd19f046b69b.zip
Commit
Diffstat (limited to 'src/node_modules/inversify/lib/utils/serialization.js')
-rw-r--r--src/node_modules/inversify/lib/utils/serialization.js103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/node_modules/inversify/lib/utils/serialization.js b/src/node_modules/inversify/lib/utils/serialization.js
new file mode 100644
index 0000000..810c047
--- /dev/null
+++ b/src/node_modules/inversify/lib/utils/serialization.js
@@ -0,0 +1,103 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ERROR_MSGS = require("../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;
+ }
+}
+exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
+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;
+}
+exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
+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);
+ }
+ });
+}
+exports.circularDependencyToException = circularDependencyToException;
+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;
+ }
+}
+exports.listMetadataForTarget = listMetadataForTarget;
+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;
+ }
+}
+exports.getFunctionName = getFunctionName;