opennms
Version:
Client API for the OpenNMS network monitoring platform
1 lines • 26.3 kB
JSON
{"remainingRequest":"/data/node_modules/babel-loader/lib/index.js!/data/node_modules/typescript-logging/dist/commonjs/utils/DataStructures.js","dependencies":[{"path":"/data/node_modules/typescript-logging/dist/commonjs/utils/DataStructures.js","mtime":1553611387936},{"path":"/data/.babelrc","mtime":1553611371556},{"path":"/data/node_modules/cache-loader/dist/cjs.js","mtime":1553611387012},{"path":"/data/node_modules/babel-loader/lib/index.js","mtime":1553611386992}],"contextDependencies":[],"result":["\"use strict\";\n\nvar LinkedNode = function () {\n function LinkedNode(value) {\n this._previous = null;\n this._next = null;\n this._value = value;\n }\n Object.defineProperty(LinkedNode.prototype, \"previous\", {\n get: function get() {\n return this._previous;\n },\n set: function set(value) {\n this._previous = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNode.prototype, \"next\", {\n get: function get() {\n return this._next;\n },\n set: function set(value) {\n this._next = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNode.prototype, \"value\", {\n get: function get() {\n return this._value;\n },\n enumerable: true,\n configurable: true\n });\n return LinkedNode;\n}();\n/**\n * Double linkedlist implementation.\n */\nvar LinkedList = function () {\n function LinkedList() {\n this.head = null;\n this.size = 0;\n }\n LinkedList.prototype.addHead = function (value) {\n if (!this.createHeadIfNeeded(value)) {\n if (this.head != null) {\n var nextNode = this.head.next;\n var newHeadNode = new LinkedNode(value);\n if (nextNode != null) {\n nextNode.previous = newHeadNode;\n newHeadNode.next = nextNode;\n }\n this.head = newHeadNode;\n } else {\n throw new Error(\"This should never happen, list implementation broken\");\n }\n }\n this.size++;\n };\n LinkedList.prototype.addTail = function (value) {\n if (!this.createHeadIfNeeded(value)) {\n var oldTailNode = this.getTailNode();\n if (oldTailNode != null) {\n var newTailNode = new LinkedNode(value);\n oldTailNode.next = newTailNode;\n newTailNode.previous = oldTailNode;\n } else {\n throw new Error(\"List implementation broken\");\n }\n }\n this.size++;\n };\n LinkedList.prototype.clear = function () {\n this.head = null;\n this.size = 0;\n };\n LinkedList.prototype.getHead = function () {\n if (this.head != null) {\n return this.head.value;\n }\n return null;\n };\n LinkedList.prototype.removeHead = function () {\n if (this.head != null) {\n var oldHead = this.head;\n var value = oldHead.value;\n this.head = oldHead.next;\n this.size--;\n return value;\n }\n return null;\n };\n LinkedList.prototype.getTail = function () {\n var node = this.getTailNode();\n if (node != null) {\n return node.value;\n }\n return null;\n };\n LinkedList.prototype.removeTail = function () {\n var node = this.getTailNode();\n if (node != null) {\n if (node === this.head) {\n this.head = null;\n } else {\n var previousNode = node.previous;\n if (previousNode != null) {\n previousNode.next = null;\n } else {\n throw new Error(\"List implementation is broken\");\n }\n }\n this.size--;\n return node.value;\n }\n return null;\n };\n LinkedList.prototype.getSize = function () {\n return this.size;\n };\n LinkedList.prototype.filter = function (f) {\n var recurse = function recurse(fn, node, values) {\n if (fn(node.value)) {\n values.push(node.value);\n }\n var nextNode = node.next;\n if (nextNode != null) {\n recurse(fn, nextNode, values);\n }\n };\n var result = [];\n var node = this.head;\n if (node != null) {\n recurse(f, node, result);\n }\n return result;\n };\n LinkedList.prototype.createHeadIfNeeded = function (value) {\n if (this.head == null) {\n this.head = new LinkedNode(value);\n return true;\n }\n return false;\n };\n LinkedList.prototype.getTailNode = function () {\n if (this.head == null) {\n return null;\n }\n var node = this.head;\n while (node.next != null) {\n node = node.next;\n }\n return node;\n };\n return LinkedList;\n}();\nexports.LinkedList = LinkedList;\n/**\n * Map implementation keyed by string (always). Note that the get/remove return either value or null.\n * This map does not support undefined in any fasion (on purpose).\n */\nvar SimpleMap = function () {\n function SimpleMap() {\n this.array = {};\n }\n SimpleMap.prototype.put = function (key, value) {\n if (value === undefined) {\n throw new Error(\"Undefined value is not allowed, null is.\");\n }\n this.array[key] = value;\n };\n SimpleMap.prototype.get = function (key) {\n var result = this.array[key];\n if (result !== undefined) {\n return result;\n }\n return null;\n };\n SimpleMap.prototype.exists = function (key) {\n var value = this.array[key];\n return value !== undefined;\n };\n SimpleMap.prototype.remove = function (key) {\n var value = this.array[key];\n if (value !== undefined) {\n delete this.array[key];\n }\n return value;\n };\n SimpleMap.prototype.keys = function () {\n var keys = [];\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n SimpleMap.prototype.values = function () {\n var values = [];\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n values.push(this.get(key));\n }\n }\n return values;\n };\n SimpleMap.prototype.size = function () {\n return this.keys().length;\n };\n SimpleMap.prototype.isEmpty = function () {\n return this.size() === 0;\n };\n SimpleMap.prototype.clear = function () {\n this.array = {};\n };\n SimpleMap.prototype.forEach = function (cbFunction) {\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n var value = this.array[key];\n cbFunction(value, key, this);\n }\n }\n };\n return SimpleMap;\n}();\nexports.SimpleMap = SimpleMap;\n/**\n * Tuple to hold two values.\n */\nvar TuplePair = function () {\n function TuplePair(x, y) {\n this._x = x;\n this._y = y;\n }\n Object.defineProperty(TuplePair.prototype, \"x\", {\n get: function get() {\n return this._x;\n },\n set: function set(value) {\n this._x = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TuplePair.prototype, \"y\", {\n get: function get() {\n return this._y;\n },\n set: function set(value) {\n this._y = value;\n },\n enumerable: true,\n configurable: true\n });\n return TuplePair;\n}();\nexports.TuplePair = TuplePair;\n/**\n * Utility class to build up a string.\n */\nvar StringBuilder = function () {\n function StringBuilder() {\n this.data = [];\n }\n StringBuilder.prototype.append = function (line) {\n if (line === undefined || line == null) {\n throw new Error(\"String must be set, cannot append null or undefined\");\n }\n this.data.push(line);\n return this;\n };\n StringBuilder.prototype.appendLine = function (line) {\n this.data.push(line + \"\\n\");\n return this;\n };\n StringBuilder.prototype.isEmpty = function () {\n return this.data.length === 0;\n };\n StringBuilder.prototype.clear = function () {\n this.data = [];\n };\n StringBuilder.prototype.toString = function (separator) {\n if (separator === void 0) {\n separator = \"\";\n }\n return this.data.join(separator);\n };\n return StringBuilder;\n}();\nexports.StringBuilder = StringBuilder;\n//# sourceMappingURL=DataStructures.js.map",{"version":3,"sources":["node_modules/typescript-logging/dist/commonjs/utils/DataStructures.js"],"names":["LinkedNode","value","_previous","_next","_value","Object","defineProperty","prototype","get","set","enumerable","configurable","LinkedList","head","size","addHead","createHeadIfNeeded","nextNode","next","newHeadNode","previous","Error","addTail","oldTailNode","getTailNode","newTailNode","clear","getHead","removeHead","oldHead","getTail","node","removeTail","previousNode","getSize","filter","f","recurse","fn","values","push","result","exports","SimpleMap","array","put","key","undefined","exists","remove","keys","hasOwnProperty","length","isEmpty","forEach","cbFunction","TuplePair","x","y","_x","_y","StringBuilder","data","append","line","appendLine","toString","separator","join"],"mappings":"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","file":"DataStructures.js","sourceRoot":"/data","sourcesContent":["\"use strict\";\nvar LinkedNode = (function () {\n function LinkedNode(value) {\n this._previous = null;\n this._next = null;\n this._value = value;\n }\n Object.defineProperty(LinkedNode.prototype, \"previous\", {\n get: function () {\n return this._previous;\n },\n set: function (value) {\n this._previous = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNode.prototype, \"next\", {\n get: function () {\n return this._next;\n },\n set: function (value) {\n this._next = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(LinkedNode.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: true,\n configurable: true\n });\n return LinkedNode;\n}());\n/**\n * Double linkedlist implementation.\n */\nvar LinkedList = (function () {\n function LinkedList() {\n this.head = null;\n this.size = 0;\n }\n LinkedList.prototype.addHead = function (value) {\n if (!this.createHeadIfNeeded(value)) {\n if (this.head != null) {\n var nextNode = this.head.next;\n var newHeadNode = new LinkedNode(value);\n if (nextNode != null) {\n nextNode.previous = newHeadNode;\n newHeadNode.next = nextNode;\n }\n this.head = newHeadNode;\n }\n else {\n throw new Error(\"This should never happen, list implementation broken\");\n }\n }\n this.size++;\n };\n LinkedList.prototype.addTail = function (value) {\n if (!this.createHeadIfNeeded(value)) {\n var oldTailNode = this.getTailNode();\n if (oldTailNode != null) {\n var newTailNode = new LinkedNode(value);\n oldTailNode.next = newTailNode;\n newTailNode.previous = oldTailNode;\n }\n else {\n throw new Error(\"List implementation broken\");\n }\n }\n this.size++;\n };\n LinkedList.prototype.clear = function () {\n this.head = null;\n this.size = 0;\n };\n LinkedList.prototype.getHead = function () {\n if (this.head != null) {\n return this.head.value;\n }\n return null;\n };\n LinkedList.prototype.removeHead = function () {\n if (this.head != null) {\n var oldHead = this.head;\n var value = oldHead.value;\n this.head = oldHead.next;\n this.size--;\n return value;\n }\n return null;\n };\n LinkedList.prototype.getTail = function () {\n var node = this.getTailNode();\n if (node != null) {\n return node.value;\n }\n return null;\n };\n LinkedList.prototype.removeTail = function () {\n var node = this.getTailNode();\n if (node != null) {\n if (node === this.head) {\n this.head = null;\n }\n else {\n var previousNode = node.previous;\n if (previousNode != null) {\n previousNode.next = null;\n }\n else {\n throw new Error(\"List implementation is broken\");\n }\n }\n this.size--;\n return node.value;\n }\n return null;\n };\n LinkedList.prototype.getSize = function () {\n return this.size;\n };\n LinkedList.prototype.filter = function (f) {\n var recurse = function (fn, node, values) {\n if (fn(node.value)) {\n values.push(node.value);\n }\n var nextNode = node.next;\n if (nextNode != null) {\n recurse(fn, nextNode, values);\n }\n };\n var result = [];\n var node = this.head;\n if (node != null) {\n recurse(f, node, result);\n }\n return result;\n };\n LinkedList.prototype.createHeadIfNeeded = function (value) {\n if (this.head == null) {\n this.head = new LinkedNode(value);\n return true;\n }\n return false;\n };\n LinkedList.prototype.getTailNode = function () {\n if (this.head == null) {\n return null;\n }\n var node = this.head;\n while (node.next != null) {\n node = node.next;\n }\n return node;\n };\n return LinkedList;\n}());\nexports.LinkedList = LinkedList;\n/**\n * Map implementation keyed by string (always). Note that the get/remove return either value or null.\n * This map does not support undefined in any fasion (on purpose).\n */\nvar SimpleMap = (function () {\n function SimpleMap() {\n this.array = {};\n }\n SimpleMap.prototype.put = function (key, value) {\n if (value === undefined) {\n throw new Error(\"Undefined value is not allowed, null is.\");\n }\n this.array[key] = value;\n };\n SimpleMap.prototype.get = function (key) {\n var result = this.array[key];\n if (result !== undefined) {\n return result;\n }\n return null;\n };\n SimpleMap.prototype.exists = function (key) {\n var value = this.array[key];\n return value !== undefined;\n };\n SimpleMap.prototype.remove = function (key) {\n var value = this.array[key];\n if (value !== undefined) {\n delete this.array[key];\n }\n return value;\n };\n SimpleMap.prototype.keys = function () {\n var keys = [];\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n SimpleMap.prototype.values = function () {\n var values = [];\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n values.push(this.get(key));\n }\n }\n return values;\n };\n SimpleMap.prototype.size = function () {\n return this.keys().length;\n };\n SimpleMap.prototype.isEmpty = function () {\n return this.size() === 0;\n };\n SimpleMap.prototype.clear = function () {\n this.array = {};\n };\n SimpleMap.prototype.forEach = function (cbFunction) {\n for (var key in this.array) {\n // To prevent random stuff to appear\n if (this.array.hasOwnProperty(key)) {\n var value = this.array[key];\n cbFunction(value, key, this);\n }\n }\n };\n return SimpleMap;\n}());\nexports.SimpleMap = SimpleMap;\n/**\n * Tuple to hold two values.\n */\nvar TuplePair = (function () {\n function TuplePair(x, y) {\n this._x = x;\n this._y = y;\n }\n Object.defineProperty(TuplePair.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n this._x = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TuplePair.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n this._y = value;\n },\n enumerable: true,\n configurable: true\n });\n return TuplePair;\n}());\nexports.TuplePair = TuplePair;\n/**\n * Utility class to build up a string.\n */\nvar StringBuilder = (function () {\n function StringBuilder() {\n this.data = [];\n }\n StringBuilder.prototype.append = function (line) {\n if (line === undefined || line == null) {\n throw new Error(\"String must be set, cannot append null or undefined\");\n }\n this.data.push(line);\n return this;\n };\n StringBuilder.prototype.appendLine = function (line) {\n this.data.push(line + \"\\n\");\n return this;\n };\n StringBuilder.prototype.isEmpty = function () {\n return this.data.length === 0;\n };\n StringBuilder.prototype.clear = function () {\n this.data = [];\n };\n StringBuilder.prototype.toString = function (separator) {\n if (separator === void 0) { separator = \"\"; }\n return this.data.join(separator);\n };\n return StringBuilder;\n}());\nexports.StringBuilder = StringBuilder;\n//# sourceMappingURL=DataStructures.js.map"]}]}