@itwin/core-bentley 4.0.0-dev.52 → 4.0.0-dev.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/lib/cjs/AccessToken.d.ts +10 -10
  2. package/lib/cjs/AccessToken.d.ts.map +1 -1
  3. package/lib/cjs/AccessToken.js +9 -9
  4. package/lib/cjs/AccessToken.js.map +1 -1
  5. package/lib/cjs/Assert.d.ts +25 -25
  6. package/lib/cjs/Assert.js +45 -45
  7. package/lib/cjs/Assert.js.map +1 -1
  8. package/lib/cjs/BeEvent.d.ts +81 -81
  9. package/lib/cjs/BeEvent.d.ts.map +1 -1
  10. package/lib/cjs/BeEvent.js +156 -156
  11. package/lib/cjs/BeEvent.js.map +1 -1
  12. package/lib/cjs/BeSQLite.d.ts +172 -172
  13. package/lib/cjs/BeSQLite.js +185 -185
  14. package/lib/cjs/BeSQLite.js.map +1 -1
  15. package/lib/cjs/BentleyError.d.ts +378 -378
  16. package/lib/cjs/BentleyError.d.ts.map +1 -1
  17. package/lib/cjs/BentleyError.js +703 -703
  18. package/lib/cjs/BentleyError.js.map +1 -1
  19. package/lib/cjs/BentleyLoggerCategory.d.ts +11 -11
  20. package/lib/cjs/BentleyLoggerCategory.js +19 -19
  21. package/lib/cjs/BentleyLoggerCategory.js.map +1 -1
  22. package/lib/cjs/ByteStream.d.ts +110 -110
  23. package/lib/cjs/ByteStream.js +159 -159
  24. package/lib/cjs/ByteStream.js.map +1 -1
  25. package/lib/cjs/ClassUtils.d.ts +14 -14
  26. package/lib/cjs/ClassUtils.js +27 -27
  27. package/lib/cjs/ClassUtils.js.map +1 -1
  28. package/lib/cjs/Compare.d.ts +47 -47
  29. package/lib/cjs/Compare.d.ts.map +1 -1
  30. package/lib/cjs/Compare.js +75 -75
  31. package/lib/cjs/Compare.js.map +1 -1
  32. package/lib/cjs/CompressedId64Set.d.ts +134 -134
  33. package/lib/cjs/CompressedId64Set.d.ts.map +1 -1
  34. package/lib/cjs/CompressedId64Set.js +428 -428
  35. package/lib/cjs/CompressedId64Set.js.map +1 -1
  36. package/lib/cjs/Dictionary.d.ts +125 -125
  37. package/lib/cjs/Dictionary.js +203 -203
  38. package/lib/cjs/Dictionary.js.map +1 -1
  39. package/lib/cjs/Disposable.d.ts +80 -80
  40. package/lib/cjs/Disposable.d.ts.map +1 -1
  41. package/lib/cjs/Disposable.js +120 -120
  42. package/lib/cjs/Disposable.js.map +1 -1
  43. package/lib/cjs/Id.d.ts +285 -285
  44. package/lib/cjs/Id.d.ts.map +1 -1
  45. package/lib/cjs/Id.js +643 -643
  46. package/lib/cjs/Id.js.map +1 -1
  47. package/lib/cjs/IndexMap.d.ts +65 -65
  48. package/lib/cjs/IndexMap.js +91 -91
  49. package/lib/cjs/IndexMap.js.map +1 -1
  50. package/lib/cjs/JsonSchema.d.ts +77 -77
  51. package/lib/cjs/JsonSchema.d.ts.map +1 -1
  52. package/lib/cjs/JsonSchema.js +9 -9
  53. package/lib/cjs/JsonSchema.js.map +1 -1
  54. package/lib/cjs/JsonUtils.d.ts +78 -78
  55. package/lib/cjs/JsonUtils.js +151 -151
  56. package/lib/cjs/JsonUtils.js.map +1 -1
  57. package/lib/cjs/LRUMap.d.ts +129 -129
  58. package/lib/cjs/LRUMap.js +333 -333
  59. package/lib/cjs/LRUMap.js.map +1 -1
  60. package/lib/cjs/Logger.d.ts +143 -143
  61. package/lib/cjs/Logger.d.ts.map +1 -1
  62. package/lib/cjs/Logger.js +256 -256
  63. package/lib/cjs/Logger.js.map +1 -1
  64. package/lib/cjs/ObservableSet.d.ts +23 -23
  65. package/lib/cjs/ObservableSet.js +51 -51
  66. package/lib/cjs/ObservableSet.js.map +1 -1
  67. package/lib/cjs/OneAtATimeAction.d.ts +31 -31
  68. package/lib/cjs/OneAtATimeAction.js +94 -94
  69. package/lib/cjs/OneAtATimeAction.js.map +1 -1
  70. package/lib/cjs/OrderedId64Iterable.d.ts +74 -74
  71. package/lib/cjs/OrderedId64Iterable.d.ts.map +1 -1
  72. package/lib/cjs/OrderedId64Iterable.js +235 -235
  73. package/lib/cjs/OrderedId64Iterable.js.map +1 -1
  74. package/lib/cjs/OrderedSet.d.ts +40 -40
  75. package/lib/cjs/OrderedSet.js +64 -64
  76. package/lib/cjs/OrderedSet.js.map +1 -1
  77. package/lib/cjs/PriorityQueue.d.ts +70 -70
  78. package/lib/cjs/PriorityQueue.d.ts.map +1 -1
  79. package/lib/cjs/PriorityQueue.js +140 -140
  80. package/lib/cjs/PriorityQueue.js.map +1 -1
  81. package/lib/cjs/ProcessDetector.d.ts +59 -59
  82. package/lib/cjs/ProcessDetector.js +71 -71
  83. package/lib/cjs/ProcessDetector.js.map +1 -1
  84. package/lib/cjs/SortedArray.d.ts +236 -236
  85. package/lib/cjs/SortedArray.d.ts.map +1 -1
  86. package/lib/cjs/SortedArray.js +315 -315
  87. package/lib/cjs/SortedArray.js.map +1 -1
  88. package/lib/cjs/StatusCategory.d.ts +30 -30
  89. package/lib/cjs/StatusCategory.d.ts.map +1 -1
  90. package/lib/cjs/StatusCategory.js +460 -460
  91. package/lib/cjs/StatusCategory.js.map +1 -1
  92. package/lib/cjs/StringUtils.d.ts +22 -22
  93. package/lib/cjs/StringUtils.js +148 -148
  94. package/lib/cjs/StringUtils.js.map +1 -1
  95. package/lib/cjs/Time.d.ts +122 -122
  96. package/lib/cjs/Time.js +152 -152
  97. package/lib/cjs/Time.js.map +1 -1
  98. package/lib/cjs/Tracing.d.ts +40 -40
  99. package/lib/cjs/Tracing.js +127 -127
  100. package/lib/cjs/Tracing.js.map +1 -1
  101. package/lib/cjs/TupleKeyedMap.d.ts +36 -36
  102. package/lib/cjs/TupleKeyedMap.js +102 -102
  103. package/lib/cjs/TupleKeyedMap.js.map +1 -1
  104. package/lib/cjs/TypedArrayBuilder.d.ts +155 -155
  105. package/lib/cjs/TypedArrayBuilder.d.ts.map +1 -1
  106. package/lib/cjs/TypedArrayBuilder.js +206 -206
  107. package/lib/cjs/TypedArrayBuilder.js.map +1 -1
  108. package/lib/cjs/UnexpectedErrors.d.ts +43 -43
  109. package/lib/cjs/UnexpectedErrors.d.ts.map +1 -1
  110. package/lib/cjs/UnexpectedErrors.js +68 -68
  111. package/lib/cjs/UnexpectedErrors.js.map +1 -1
  112. package/lib/cjs/UtilityTypes.d.ts +112 -112
  113. package/lib/cjs/UtilityTypes.d.ts.map +1 -1
  114. package/lib/cjs/UtilityTypes.js +40 -40
  115. package/lib/cjs/UtilityTypes.js.map +1 -1
  116. package/lib/cjs/YieldManager.d.ts +18 -18
  117. package/lib/cjs/YieldManager.js +34 -34
  118. package/lib/cjs/YieldManager.js.map +1 -1
  119. package/lib/cjs/core-bentley.d.ts +74 -74
  120. package/lib/cjs/core-bentley.js +94 -90
  121. package/lib/cjs/core-bentley.js.map +1 -1
  122. package/lib/cjs/partitionArray.d.ts +21 -21
  123. package/lib/cjs/partitionArray.js +43 -43
  124. package/lib/cjs/partitionArray.js.map +1 -1
  125. package/lib/esm/AccessToken.d.ts +10 -10
  126. package/lib/esm/AccessToken.d.ts.map +1 -1
  127. package/lib/esm/AccessToken.js +8 -8
  128. package/lib/esm/AccessToken.js.map +1 -1
  129. package/lib/esm/Assert.d.ts +25 -25
  130. package/lib/esm/Assert.js +41 -41
  131. package/lib/esm/Assert.js.map +1 -1
  132. package/lib/esm/BeEvent.d.ts +81 -81
  133. package/lib/esm/BeEvent.d.ts.map +1 -1
  134. package/lib/esm/BeEvent.js +150 -150
  135. package/lib/esm/BeEvent.js.map +1 -1
  136. package/lib/esm/BeSQLite.d.ts +172 -172
  137. package/lib/esm/BeSQLite.js +182 -182
  138. package/lib/esm/BeSQLite.js.map +1 -1
  139. package/lib/esm/BentleyError.d.ts +378 -378
  140. package/lib/esm/BentleyError.d.ts.map +1 -1
  141. package/lib/esm/BentleyError.js +699 -699
  142. package/lib/esm/BentleyError.js.map +1 -1
  143. package/lib/esm/BentleyLoggerCategory.d.ts +11 -11
  144. package/lib/esm/BentleyLoggerCategory.js +16 -16
  145. package/lib/esm/BentleyLoggerCategory.js.map +1 -1
  146. package/lib/esm/ByteStream.d.ts +110 -110
  147. package/lib/esm/ByteStream.js +155 -155
  148. package/lib/esm/ByteStream.js.map +1 -1
  149. package/lib/esm/ClassUtils.d.ts +14 -14
  150. package/lib/esm/ClassUtils.js +22 -22
  151. package/lib/esm/ClassUtils.js.map +1 -1
  152. package/lib/esm/Compare.d.ts +47 -47
  153. package/lib/esm/Compare.d.ts.map +1 -1
  154. package/lib/esm/Compare.js +63 -63
  155. package/lib/esm/Compare.js.map +1 -1
  156. package/lib/esm/CompressedId64Set.d.ts +134 -134
  157. package/lib/esm/CompressedId64Set.d.ts.map +1 -1
  158. package/lib/esm/CompressedId64Set.js +423 -423
  159. package/lib/esm/CompressedId64Set.js.map +1 -1
  160. package/lib/esm/Dictionary.d.ts +125 -125
  161. package/lib/esm/Dictionary.js +199 -199
  162. package/lib/esm/Dictionary.js.map +1 -1
  163. package/lib/esm/Disposable.d.ts +80 -80
  164. package/lib/esm/Disposable.d.ts.map +1 -1
  165. package/lib/esm/Disposable.js +112 -112
  166. package/lib/esm/Disposable.js.map +1 -1
  167. package/lib/esm/Id.d.ts +285 -285
  168. package/lib/esm/Id.d.ts.map +1 -1
  169. package/lib/esm/Id.js +639 -639
  170. package/lib/esm/Id.js.map +1 -1
  171. package/lib/esm/IndexMap.d.ts +65 -65
  172. package/lib/esm/IndexMap.js +86 -86
  173. package/lib/esm/IndexMap.js.map +1 -1
  174. package/lib/esm/JsonSchema.d.ts +77 -77
  175. package/lib/esm/JsonSchema.d.ts.map +1 -1
  176. package/lib/esm/JsonSchema.js +8 -8
  177. package/lib/esm/JsonSchema.js.map +1 -1
  178. package/lib/esm/JsonUtils.d.ts +78 -78
  179. package/lib/esm/JsonUtils.js +148 -148
  180. package/lib/esm/JsonUtils.js.map +1 -1
  181. package/lib/esm/LRUMap.d.ts +129 -129
  182. package/lib/esm/LRUMap.js +326 -326
  183. package/lib/esm/LRUMap.js.map +1 -1
  184. package/lib/esm/Logger.d.ts +143 -143
  185. package/lib/esm/Logger.d.ts.map +1 -1
  186. package/lib/esm/Logger.js +253 -251
  187. package/lib/esm/Logger.js.map +1 -1
  188. package/lib/esm/ObservableSet.d.ts +23 -23
  189. package/lib/esm/ObservableSet.js +47 -47
  190. package/lib/esm/ObservableSet.js.map +1 -1
  191. package/lib/esm/OneAtATimeAction.d.ts +31 -31
  192. package/lib/esm/OneAtATimeAction.js +89 -89
  193. package/lib/esm/OneAtATimeAction.js.map +1 -1
  194. package/lib/esm/OrderedId64Iterable.d.ts +74 -74
  195. package/lib/esm/OrderedId64Iterable.d.ts.map +1 -1
  196. package/lib/esm/OrderedId64Iterable.js +232 -232
  197. package/lib/esm/OrderedId64Iterable.js.map +1 -1
  198. package/lib/esm/OrderedSet.d.ts +40 -40
  199. package/lib/esm/OrderedSet.js +59 -59
  200. package/lib/esm/OrderedSet.js.map +1 -1
  201. package/lib/esm/PriorityQueue.d.ts +70 -70
  202. package/lib/esm/PriorityQueue.d.ts.map +1 -1
  203. package/lib/esm/PriorityQueue.js +136 -136
  204. package/lib/esm/PriorityQueue.js.map +1 -1
  205. package/lib/esm/ProcessDetector.d.ts +59 -59
  206. package/lib/esm/ProcessDetector.js +67 -67
  207. package/lib/esm/ProcessDetector.js.map +1 -1
  208. package/lib/esm/SortedArray.d.ts +236 -236
  209. package/lib/esm/SortedArray.d.ts.map +1 -1
  210. package/lib/esm/SortedArray.js +308 -308
  211. package/lib/esm/SortedArray.js.map +1 -1
  212. package/lib/esm/StatusCategory.d.ts +30 -30
  213. package/lib/esm/StatusCategory.d.ts.map +1 -1
  214. package/lib/esm/StatusCategory.js +455 -454
  215. package/lib/esm/StatusCategory.js.map +1 -1
  216. package/lib/esm/StringUtils.d.ts +22 -22
  217. package/lib/esm/StringUtils.js +142 -142
  218. package/lib/esm/StringUtils.js.map +1 -1
  219. package/lib/esm/Time.d.ts +122 -122
  220. package/lib/esm/Time.js +146 -146
  221. package/lib/esm/Time.js.map +1 -1
  222. package/lib/esm/Tracing.d.ts +40 -40
  223. package/lib/esm/Tracing.js +123 -123
  224. package/lib/esm/Tracing.js.map +1 -1
  225. package/lib/esm/TupleKeyedMap.d.ts +36 -36
  226. package/lib/esm/TupleKeyedMap.js +98 -98
  227. package/lib/esm/TupleKeyedMap.js.map +1 -1
  228. package/lib/esm/TypedArrayBuilder.d.ts +155 -155
  229. package/lib/esm/TypedArrayBuilder.d.ts.map +1 -1
  230. package/lib/esm/TypedArrayBuilder.js +198 -198
  231. package/lib/esm/TypedArrayBuilder.js.map +1 -1
  232. package/lib/esm/UnexpectedErrors.d.ts +43 -43
  233. package/lib/esm/UnexpectedErrors.d.ts.map +1 -1
  234. package/lib/esm/UnexpectedErrors.js +65 -64
  235. package/lib/esm/UnexpectedErrors.js.map +1 -1
  236. package/lib/esm/UtilityTypes.d.ts +112 -112
  237. package/lib/esm/UtilityTypes.d.ts.map +1 -1
  238. package/lib/esm/UtilityTypes.js +34 -34
  239. package/lib/esm/UtilityTypes.js.map +1 -1
  240. package/lib/esm/YieldManager.d.ts +18 -18
  241. package/lib/esm/YieldManager.js +30 -30
  242. package/lib/esm/YieldManager.js.map +1 -1
  243. package/lib/esm/core-bentley.d.ts +74 -74
  244. package/lib/esm/core-bentley.js +78 -78
  245. package/lib/esm/core-bentley.js.map +1 -1
  246. package/lib/esm/partitionArray.d.ts +21 -21
  247. package/lib/esm/partitionArray.js +39 -39
  248. package/lib/esm/partitionArray.js.map +1 -1
  249. package/package.json +4 -4
@@ -1,152 +1,152 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- /** @packageDocumentation
7
- * @module Json
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.JsonUtils = void 0;
11
- /** Utility functions for converting from JSON objects, with default values.
12
- * @public
13
- */
14
- var JsonUtils;
15
- (function (JsonUtils) {
16
- /** Get a value as a boolean.
17
- * @param json the input JSON object
18
- * @param defaultVal default value if json cannot be converted to boolean
19
- * @returns the value of json as a boolean, or default value
20
- */
21
- function asBool(json, defaultVal = false) {
22
- return isNullOrUndefined(json) ? defaultVal : !!json;
23
- }
24
- JsonUtils.asBool = asBool;
25
- /** Get a value as an integer.
26
- * @param json the input JSON object
27
- * @param defaultVal default value if json cannot be converted to integer
28
- * @returns the value of json as an integer, or default value
29
- */
30
- function asInt(json, defaultVal = 0) {
31
- return (typeof json === "number") ? Math.trunc(json) : defaultVal;
32
- }
33
- JsonUtils.asInt = asInt;
34
- /** Get a value as a double.
35
- * @param json the input JSON object
36
- * @param defaultVal default value if json cannot be converted to double
37
- * @returns the value of json as a double, or default value
38
- */
39
- function asDouble(json, defaultVal = 0) {
40
- return (typeof json === "number") ? json : defaultVal;
41
- }
42
- JsonUtils.asDouble = asDouble;
43
- /** Get a value as a string.
44
- * @param json the input JSON object
45
- * @param defaultVal default value if json cannot be converted to string
46
- * @returns the value of json as a string, or default value
47
- */
48
- function asString(json, defaultVal = "") {
49
- return isNullOrUndefined(json) ? defaultVal : json.toString();
50
- }
51
- JsonUtils.asString = asString;
52
- /** Get a value as an array.
53
- * @param json the input JSON object
54
- * @returns the input JSON object if it is an array, otherwise undefined
55
- */
56
- function asArray(json) {
57
- return Array.isArray(json) ? json : undefined;
58
- }
59
- JsonUtils.asArray = asArray;
60
- /** Get a value as an object.
61
- * @param json the input JSON object
62
- * @returns the input JSON object if it is an object, otherwise undefined
63
- */
64
- function asObject(json) {
65
- return "object" === typeof json ? json : undefined;
66
- }
67
- JsonUtils.asObject = asObject;
68
- /** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
69
- * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
70
- * @param json the JSON object to affect
71
- * @param key the name of the member to set or remove
72
- * @param val the value to set
73
- * @param defaultVal the default value.
74
- */
75
- function setOrRemoveNumber(json, key, val, defaultVal) {
76
- if (val === defaultVal)
77
- delete json[key];
78
- else
79
- json[key] = val;
80
- }
81
- JsonUtils.setOrRemoveNumber = setOrRemoveNumber;
82
- /** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
83
- * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
84
- * @param json the JSON object to affect
85
- * @param key the name of the member to set or remove
86
- * @param val the value to set
87
- * @param defaultVal the default value.
88
- */
89
- function setOrRemoveBoolean(json, key, val, defaultVal) {
90
- if (val === defaultVal)
91
- delete json[key];
92
- else
93
- json[key] = val;
94
- }
95
- JsonUtils.setOrRemoveBoolean = setOrRemoveBoolean;
96
- /** Determine if a Javascript object is equivalent to `{}`.
97
- * @param json The JSON object to test.
98
- * @returns true if `json` is an Object with no keys.
99
- */
100
- function isEmptyObject(json) {
101
- return "object" === typeof json && 0 === Object.keys(json).length;
102
- }
103
- JsonUtils.isEmptyObject = isEmptyObject;
104
- /** Determine if the input is undefined or an empty Javascript object.
105
- * @param json The JSON object to test.
106
- * @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).
107
- */
108
- function isEmptyObjectOrUndefined(json) {
109
- return undefined === json || isEmptyObject(json);
110
- }
111
- JsonUtils.isEmptyObjectOrUndefined = isEmptyObjectOrUndefined;
112
- function isNullOrUndefined(json) {
113
- return null === json || undefined === json;
114
- }
115
- /** Determine if the input is a non-empty Javascript object.
116
- * @param value The value to test.
117
- * @returns true if `value` is an Object with at least one key.
118
- */
119
- function isNonEmptyObject(value) {
120
- return !isEmptyObjectOrUndefined(value);
121
- }
122
- JsonUtils.isNonEmptyObject = isNonEmptyObject;
123
- /**
124
- * Convert the input object into a "pure" JavaScript object, with only instances of "object" or primitives in the returned value.
125
- * Works recursively for object members, and over arrays entries. Calls "toJSON" on any members that implement it.
126
- */
127
- function toObject(val) {
128
- if (typeof val === "boolean" || typeof val === "number" || typeof val === "string")
129
- return val;
130
- if (typeof val !== "object")
131
- return undefined;
132
- // See if the object has toJSON() function defined.
133
- if (typeof val.toJSON !== "undefined")
134
- return toObject(val.toJSON());
135
- // if it's an array, convert each member.
136
- if (Array.isArray(val)) {
137
- const arr = new Array(val.length);
138
- val.forEach((el, i) => arr[i] = toObject(el));
139
- return arr;
140
- }
141
- // Convert each property
142
- const out = {};
143
- Object.getOwnPropertyNames(val).forEach((prop) => {
144
- const transformVal = toObject(val[prop]);
145
- if (transformVal !== undefined)
146
- out[prop] = transformVal;
147
- });
148
- return out;
149
- }
150
- JsonUtils.toObject = toObject;
151
- })(JsonUtils = exports.JsonUtils || (exports.JsonUtils = {}));
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /** @packageDocumentation
7
+ * @module Json
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.JsonUtils = void 0;
11
+ /** Utility functions for converting from JSON objects, with default values.
12
+ * @public
13
+ */
14
+ var JsonUtils;
15
+ (function (JsonUtils) {
16
+ /** Get a value as a boolean.
17
+ * @param json the input JSON object
18
+ * @param defaultVal default value if json cannot be converted to boolean
19
+ * @returns the value of json as a boolean, or default value
20
+ */
21
+ function asBool(json, defaultVal = false) {
22
+ return isNullOrUndefined(json) ? defaultVal : !!json;
23
+ }
24
+ JsonUtils.asBool = asBool;
25
+ /** Get a value as an integer.
26
+ * @param json the input JSON object
27
+ * @param defaultVal default value if json cannot be converted to integer
28
+ * @returns the value of json as an integer, or default value
29
+ */
30
+ function asInt(json, defaultVal = 0) {
31
+ return (typeof json === "number") ? Math.trunc(json) : defaultVal;
32
+ }
33
+ JsonUtils.asInt = asInt;
34
+ /** Get a value as a double.
35
+ * @param json the input JSON object
36
+ * @param defaultVal default value if json cannot be converted to double
37
+ * @returns the value of json as a double, or default value
38
+ */
39
+ function asDouble(json, defaultVal = 0) {
40
+ return (typeof json === "number") ? json : defaultVal;
41
+ }
42
+ JsonUtils.asDouble = asDouble;
43
+ /** Get a value as a string.
44
+ * @param json the input JSON object
45
+ * @param defaultVal default value if json cannot be converted to string
46
+ * @returns the value of json as a string, or default value
47
+ */
48
+ function asString(json, defaultVal = "") {
49
+ return isNullOrUndefined(json) ? defaultVal : json.toString();
50
+ }
51
+ JsonUtils.asString = asString;
52
+ /** Get a value as an array.
53
+ * @param json the input JSON object
54
+ * @returns the input JSON object if it is an array, otherwise undefined
55
+ */
56
+ function asArray(json) {
57
+ return Array.isArray(json) ? json : undefined;
58
+ }
59
+ JsonUtils.asArray = asArray;
60
+ /** Get a value as an object.
61
+ * @param json the input JSON object
62
+ * @returns the input JSON object if it is an object, otherwise undefined
63
+ */
64
+ function asObject(json) {
65
+ return "object" === typeof json ? json : undefined;
66
+ }
67
+ JsonUtils.asObject = asObject;
68
+ /** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
69
+ * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
70
+ * @param json the JSON object to affect
71
+ * @param key the name of the member to set or remove
72
+ * @param val the value to set
73
+ * @param defaultVal the default value.
74
+ */
75
+ function setOrRemoveNumber(json, key, val, defaultVal) {
76
+ if (val === defaultVal)
77
+ delete json[key];
78
+ else
79
+ json[key] = val;
80
+ }
81
+ JsonUtils.setOrRemoveNumber = setOrRemoveNumber;
82
+ /** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,
83
+ * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.
84
+ * @param json the JSON object to affect
85
+ * @param key the name of the member to set or remove
86
+ * @param val the value to set
87
+ * @param defaultVal the default value.
88
+ */
89
+ function setOrRemoveBoolean(json, key, val, defaultVal) {
90
+ if (val === defaultVal)
91
+ delete json[key];
92
+ else
93
+ json[key] = val;
94
+ }
95
+ JsonUtils.setOrRemoveBoolean = setOrRemoveBoolean;
96
+ /** Determine if a Javascript object is equivalent to `{}`.
97
+ * @param json The JSON object to test.
98
+ * @returns true if `json` is an Object with no keys.
99
+ */
100
+ function isEmptyObject(json) {
101
+ return "object" === typeof json && 0 === Object.keys(json).length;
102
+ }
103
+ JsonUtils.isEmptyObject = isEmptyObject;
104
+ /** Determine if the input is undefined or an empty Javascript object.
105
+ * @param json The JSON object to test.
106
+ * @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).
107
+ */
108
+ function isEmptyObjectOrUndefined(json) {
109
+ return undefined === json || isEmptyObject(json);
110
+ }
111
+ JsonUtils.isEmptyObjectOrUndefined = isEmptyObjectOrUndefined;
112
+ function isNullOrUndefined(json) {
113
+ return null === json || undefined === json;
114
+ }
115
+ /** Determine if the input is a non-empty Javascript object.
116
+ * @param value The value to test.
117
+ * @returns true if `value` is an Object with at least one key.
118
+ */
119
+ function isNonEmptyObject(value) {
120
+ return !isEmptyObjectOrUndefined(value);
121
+ }
122
+ JsonUtils.isNonEmptyObject = isNonEmptyObject;
123
+ /**
124
+ * Convert the input object into a "pure" JavaScript object, with only instances of "object" or primitives in the returned value.
125
+ * Works recursively for object members, and over arrays entries. Calls "toJSON" on any members that implement it.
126
+ */
127
+ function toObject(val) {
128
+ if (typeof val === "boolean" || typeof val === "number" || typeof val === "string")
129
+ return val;
130
+ if (typeof val !== "object")
131
+ return undefined;
132
+ // See if the object has toJSON() function defined.
133
+ if (typeof val.toJSON !== "undefined")
134
+ return toObject(val.toJSON());
135
+ // if it's an array, convert each member.
136
+ if (Array.isArray(val)) {
137
+ const arr = new Array(val.length);
138
+ val.forEach((el, i) => arr[i] = toObject(el));
139
+ return arr;
140
+ }
141
+ // Convert each property
142
+ const out = {};
143
+ Object.getOwnPropertyNames(val).forEach((prop) => {
144
+ const transformVal = toObject(val[prop]);
145
+ if (transformVal !== undefined)
146
+ out[prop] = transformVal;
147
+ });
148
+ return out;
149
+ }
150
+ JsonUtils.toObject = toObject;
151
+ })(JsonUtils = exports.JsonUtils || (exports.JsonUtils = {}));
152
152
  //# sourceMappingURL=JsonUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonUtils.js","sourceRoot":"","sources":["../../src/JsonUtils.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH;;GAEG;AACH,IAAiB,SAAS,CA2IzB;AA3ID,WAAiB,SAAS;IACxB;;;;OAIG;IACH,SAAgB,MAAM,CAAC,IAAS,EAAE,UAAU,GAAG,KAAK;QAClD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAFe,gBAAM,SAErB,CAAA;IACD;;;;OAIG;IACH,SAAgB,KAAK,CAAC,IAAS,EAAE,UAAU,GAAG,CAAC;QAC7C,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,CAAC;IAFe,eAAK,QAEpB,CAAA;IACD;;;;OAIG;IACH,SAAgB,QAAQ,CAAC,IAAS,EAAE,UAAU,GAAG,CAAC;QAChD,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IACxD,CAAC;IAFe,kBAAQ,WAEvB,CAAA;IACD;;;;OAIG;IACH,SAAgB,QAAQ,CAAC,IAAS,EAAE,UAAU,GAAG,EAAE;QACjD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChE,CAAC;IAFe,kBAAQ,WAEvB,CAAA;IAED;;;OAGG;IACH,SAAgB,OAAO,CAAC,IAAS;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAFe,iBAAO,UAEtB,CAAA;IAED;;;OAGG;IACH,SAAgB,QAAQ,CAAC,IAAS;QAChC,OAAO,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAFe,kBAAQ,WAEvB,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,iBAAiB,CAAC,IAAS,EAAE,GAAW,EAAE,GAAW,EAAE,UAAkB;QACvF,IAAI,GAAG,KAAK,UAAU;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;;YAEjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,CAAC;IALe,2BAAiB,oBAKhC,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,kBAAkB,CAAC,IAAS,EAAE,GAAW,EAAE,GAAY,EAAE,UAAmB;QAC1F,IAAI,GAAG,KAAK,UAAU;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;;YAEjB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,CAAC;IALe,4BAAkB,qBAKjC,CAAA;IAED;;;OAGG;IACH,SAAgB,aAAa,CAAC,IAAS;QACrC,OAAO,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IAFe,uBAAa,gBAE5B,CAAA;IAED;;;OAGG;IACH,SAAgB,wBAAwB,CAAC,IAAS;QAChD,OAAO,SAAS,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAFe,kCAAwB,2BAEvC,CAAA;IAED,SAAS,iBAAiB,CAAC,IAAS;QAClC,OAAO,IAAI,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,SAAgB,gBAAgB,CAAC,KAAU;QACzC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAFe,0BAAgB,mBAE/B,CAAA;IAED;;;OAGG;IACH,SAAgB,QAAQ,CAAC,GAAQ;QAC/B,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ;YAChF,OAAO,GAAG,CAAC;QAEb,IAAI,OAAO,GAAG,KAAK,QAAQ;YACzB,OAAO,SAAS,CAAC;QAEnB,mDAAmD;QACnD,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW;YACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhC,yCAAyC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC;SACZ;QAED,wBAAwB;QACxB,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,YAAY,KAAK,SAAS;gBAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IA3Be,kBAAQ,WA2BvB,CAAA;AAEH,CAAC,EA3IgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QA2IzB","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Json\r\n */\r\n\r\n/** Utility functions for converting from JSON objects, with default values.\r\n * @public\r\n */\r\nexport namespace JsonUtils {\r\n /** Get a value as a boolean.\r\n * @param json the input JSON object\r\n * @param defaultVal default value if json cannot be converted to boolean\r\n * @returns the value of json as a boolean, or default value\r\n */\r\n export function asBool(json: any, defaultVal = false): boolean {\r\n return isNullOrUndefined(json) ? defaultVal : !!json;\r\n }\r\n /** Get a value as an integer.\r\n * @param json the input JSON object\r\n * @param defaultVal default value if json cannot be converted to integer\r\n * @returns the value of json as an integer, or default value\r\n */\r\n export function asInt(json: any, defaultVal = 0): number {\r\n return (typeof json === \"number\") ? Math.trunc(json) : defaultVal;\r\n }\r\n /** Get a value as a double.\r\n * @param json the input JSON object\r\n * @param defaultVal default value if json cannot be converted to double\r\n * @returns the value of json as a double, or default value\r\n */\r\n export function asDouble(json: any, defaultVal = 0): number {\r\n return (typeof json === \"number\") ? json : defaultVal;\r\n }\r\n /** Get a value as a string.\r\n * @param json the input JSON object\r\n * @param defaultVal default value if json cannot be converted to string\r\n * @returns the value of json as a string, or default value\r\n */\r\n export function asString(json: any, defaultVal = \"\"): string {\r\n return isNullOrUndefined(json) ? defaultVal : json.toString();\r\n }\r\n\r\n /** Get a value as an array.\r\n * @param json the input JSON object\r\n * @returns the input JSON object if it is an array, otherwise undefined\r\n */\r\n export function asArray(json: any): any {\r\n return Array.isArray(json) ? json : undefined;\r\n }\r\n\r\n /** Get a value as an object.\r\n * @param json the input JSON object\r\n * @returns the input JSON object if it is an object, otherwise undefined\r\n */\r\n export function asObject(json: any): any {\r\n return \"object\" === typeof json ? json : undefined;\r\n }\r\n\r\n /** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,\r\n * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.\r\n * @param json the JSON object to affect\r\n * @param key the name of the member to set or remove\r\n * @param val the value to set\r\n * @param defaultVal the default value.\r\n */\r\n export function setOrRemoveNumber(json: any, key: string, val: number, defaultVal: number) {\r\n if (val === defaultVal)\r\n delete json[key];\r\n else\r\n json[key] = val;\r\n }\r\n\r\n /** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,\r\n * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.\r\n * @param json the JSON object to affect\r\n * @param key the name of the member to set or remove\r\n * @param val the value to set\r\n * @param defaultVal the default value.\r\n */\r\n export function setOrRemoveBoolean(json: any, key: string, val: boolean, defaultVal: boolean) {\r\n if (val === defaultVal)\r\n delete json[key];\r\n else\r\n json[key] = val;\r\n }\r\n\r\n /** Determine if a Javascript object is equivalent to `{}`.\r\n * @param json The JSON object to test.\r\n * @returns true if `json` is an Object with no keys.\r\n */\r\n export function isEmptyObject(json: any): boolean {\r\n return \"object\" === typeof json && 0 === Object.keys(json).length;\r\n }\r\n\r\n /** Determine if the input is undefined or an empty Javascript object.\r\n * @param json The JSON object to test.\r\n * @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).\r\n */\r\n export function isEmptyObjectOrUndefined(json: any): boolean {\r\n return undefined === json || isEmptyObject(json);\r\n }\r\n\r\n function isNullOrUndefined(json: any): boolean {\r\n return null === json || undefined === json;\r\n }\r\n\r\n /** Determine if the input is a non-empty Javascript object.\r\n * @param value The value to test.\r\n * @returns true if `value` is an Object with at least one key.\r\n */\r\n export function isNonEmptyObject(value: any): value is Object {\r\n return !isEmptyObjectOrUndefined(value);\r\n }\r\n\r\n /**\r\n * Convert the input object into a \"pure\" JavaScript object, with only instances of \"object\" or primitives in the returned value.\r\n * Works recursively for object members, and over arrays entries. Calls \"toJSON\" on any members that implement it.\r\n */\r\n export function toObject(val: any): any {\r\n if (typeof val === \"boolean\" || typeof val === \"number\" || typeof val === \"string\")\r\n return val;\r\n\r\n if (typeof val !== \"object\")\r\n return undefined;\r\n\r\n // See if the object has toJSON() function defined.\r\n if (typeof val.toJSON !== \"undefined\")\r\n return toObject(val.toJSON());\r\n\r\n // if it's an array, convert each member.\r\n if (Array.isArray(val)) {\r\n const arr = new Array(val.length);\r\n val.forEach((el, i) => arr[i] = toObject(el));\r\n return arr;\r\n }\r\n\r\n // Convert each property\r\n const out: any = {};\r\n Object.getOwnPropertyNames(val).forEach((prop) => {\r\n const transformVal = toObject(val[prop]);\r\n if (transformVal !== undefined)\r\n out[prop] = transformVal;\r\n });\r\n\r\n return out;\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"JsonUtils.js","sourceRoot":"","sources":["../../src/JsonUtils.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Json\n */\n\n/** Utility functions for converting from JSON objects, with default values.\n * @public\n */\nexport namespace JsonUtils {\n /** Get a value as a boolean.\n * @param json the input JSON object\n * @param defaultVal default value if json cannot be converted to boolean\n * @returns the value of json as a boolean, or default value\n */\n export function asBool(json: any, defaultVal = false): boolean {\n return isNullOrUndefined(json) ? defaultVal : !!json;\n }\n /** Get a value as an integer.\n * @param json the input JSON object\n * @param defaultVal default value if json cannot be converted to integer\n * @returns the value of json as an integer, or default value\n */\n export function asInt(json: any, defaultVal = 0): number {\n return (typeof json === \"number\") ? Math.trunc(json) : defaultVal;\n }\n /** Get a value as a double.\n * @param json the input JSON object\n * @param defaultVal default value if json cannot be converted to double\n * @returns the value of json as a double, or default value\n */\n export function asDouble(json: any, defaultVal = 0): number {\n return (typeof json === \"number\") ? json : defaultVal;\n }\n /** Get a value as a string.\n * @param json the input JSON object\n * @param defaultVal default value if json cannot be converted to string\n * @returns the value of json as a string, or default value\n */\n export function asString(json: any, defaultVal = \"\"): string {\n return isNullOrUndefined(json) ? defaultVal : json.toString();\n }\n\n /** Get a value as an array.\n * @param json the input JSON object\n * @returns the input JSON object if it is an array, otherwise undefined\n */\n export function asArray(json: any): any {\n return Array.isArray(json) ? json : undefined;\n }\n\n /** Get a value as an object.\n * @param json the input JSON object\n * @returns the input JSON object if it is an object, otherwise undefined\n */\n export function asObject(json: any): any {\n return \"object\" === typeof json ? json : undefined;\n }\n\n /** Set or remove a number on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,\n * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.\n * @param json the JSON object to affect\n * @param key the name of the member to set or remove\n * @param val the value to set\n * @param defaultVal the default value.\n */\n export function setOrRemoveNumber(json: any, key: string, val: number, defaultVal: number) {\n if (val === defaultVal)\n delete json[key];\n else\n json[key] = val;\n }\n\n /** Set or remove a boolean on a json object, given a key name, a value, and a default value. Sets `json[key] = val` if val is *not* equal to the default,\n * otherwise `delete json[key]`. This is used to omit values from JSON strings that are of known defaults.\n * @param json the JSON object to affect\n * @param key the name of the member to set or remove\n * @param val the value to set\n * @param defaultVal the default value.\n */\n export function setOrRemoveBoolean(json: any, key: string, val: boolean, defaultVal: boolean) {\n if (val === defaultVal)\n delete json[key];\n else\n json[key] = val;\n }\n\n /** Determine if a Javascript object is equivalent to `{}`.\n * @param json The JSON object to test.\n * @returns true if `json` is an Object with no keys.\n */\n export function isEmptyObject(json: any): boolean {\n return \"object\" === typeof json && 0 === Object.keys(json).length;\n }\n\n /** Determine if the input is undefined or an empty Javascript object.\n * @param json The JSON object to test.\n * @returns true if `json` is undefined or is an Object with no keys (equivalent to `{}`).\n */\n export function isEmptyObjectOrUndefined(json: any): boolean {\n return undefined === json || isEmptyObject(json);\n }\n\n function isNullOrUndefined(json: any): boolean {\n return null === json || undefined === json;\n }\n\n /** Determine if the input is a non-empty Javascript object.\n * @param value The value to test.\n * @returns true if `value` is an Object with at least one key.\n */\n export function isNonEmptyObject(value: any): value is Object {\n return !isEmptyObjectOrUndefined(value);\n }\n\n /**\n * Convert the input object into a \"pure\" JavaScript object, with only instances of \"object\" or primitives in the returned value.\n * Works recursively for object members, and over arrays entries. Calls \"toJSON\" on any members that implement it.\n */\n export function toObject(val: any): any {\n if (typeof val === \"boolean\" || typeof val === \"number\" || typeof val === \"string\")\n return val;\n\n if (typeof val !== \"object\")\n return undefined;\n\n // See if the object has toJSON() function defined.\n if (typeof val.toJSON !== \"undefined\")\n return toObject(val.toJSON());\n\n // if it's an array, convert each member.\n if (Array.isArray(val)) {\n const arr = new Array(val.length);\n val.forEach((el, i) => arr[i] = toObject(el));\n return arr;\n }\n\n // Convert each property\n const out: any = {};\n Object.getOwnPropertyNames(val).forEach((prop) => {\n const transformVal = toObject(val[prop]);\n if (transformVal !== undefined)\n out[prop] = transformVal;\n });\n\n return out;\n }\n\n}\n"]}
@@ -1,130 +1,130 @@
1
- /** @packageDocumentation
2
- * @module Collections
3
- */
4
- import { OrderedComparator } from "./Compare";
5
- /**
6
- * Derived from:
7
- * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>
8
- * See README.md at https://github.com/rsms/js-lru for details.
9
- */
10
- /** An entry holds the key and value, and pointers to any older and newer entries.
11
- * @public
12
- */
13
- export declare class Entry<K, V> {
14
- key: K;
15
- value: V;
16
- newer?: Entry<K, V>;
17
- older?: Entry<K, V>;
18
- constructor(key: K, value: V);
19
- }
20
- /** The interface that must be satisfied by the underlying container type used by a LRUCache.
21
- * Compatible with a [[Dictionary]] or a standard Map.
22
- * @public
23
- */
24
- export interface EntryContainer<K, V> {
25
- readonly size: number;
26
- clear(): void;
27
- get(key: K): Entry<K, V> | undefined;
28
- set(key: K, value: Entry<K, V>): void;
29
- has(key: K): boolean;
30
- delete(key: K): void;
31
- }
32
- /**
33
- * A mapping of a key/value pairs, where the size of the cache can be limited.
34
- *
35
- * When entries are inserted, if the cache is "full", the
36
- * least-recently-used (LRU) value is dropped. When entries are retrieved, they are moved to the front of the LRU list.
37
- *
38
- * Illustration of the design:
39
- *
40
- * ```
41
- *
42
- * entry entry entry entry
43
- * ______ ______ ______ ______
44
- * | head |.newer => | |.newer => | |.newer => | tail |
45
- * | A | | B | | C | | D |
46
- * |______| <= older.|______| <= older.|______| <= older.|______|
47
- *
48
- * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added
49
- * ```
50
- * @public
51
- */
52
- export declare class LRUCache<K, V> {
53
- private _container;
54
- /** Current number of items */
55
- size: number;
56
- /** Maximum number of items this cache can hold */
57
- limit: number;
58
- /** Least recently-used entry. Invalidated when cache is modified. */
59
- oldest?: Entry<K, V>;
60
- /** Most recently-used entry. Invalidated when cache is modified. */
61
- newest?: Entry<K, V>;
62
- /**
63
- * Construct a new LRUCache to hold up to `limit` entries.
64
- */
65
- constructor(limit: number, container: EntryContainer<K, V>);
66
- private markEntryAsUsed;
67
- /** Replace all values in this cache with key-value pairs (2-element Arrays) from provided iterable. */
68
- assign(entries: Iterable<[K, V]>): void;
69
- /** Get and register recent use of <key>.
70
- * Returns the value associated with <key> or undefined if not in cache.
71
- */
72
- get(key: K): V | undefined;
73
- /** Put <value> into the cache associated with <key>. Replaces any existing entry with the same key.
74
- * @returns `this`.
75
- */
76
- set(key: K, value: V): LRUCache<K, V>;
77
- /** Purge the least recently used (oldest) entry from the cache.
78
- * @returns The removed entry or undefined if the cache was empty.
79
- */
80
- shift(): [K, V] | undefined;
81
- /** Access value for `key` without registering recent use. Useful if you do not
82
- * want to change the state of the cache, but only "peek" at it.
83
- * @returns The value associated with `key` if found, or undefined if not found.
84
- */
85
- find(key: K): V | undefined;
86
- /** Check if there's a value for key in the cache without registering recent use. */
87
- has(key: K): boolean;
88
- /** Remove entry `key` from cache and return its value.
89
- * @returns The removed value, or undefined if not found.
90
- */
91
- delete(key: K): V | undefined;
92
- /** Removes all entries */
93
- clear(): void;
94
- /** Returns an iterator over all keys, starting with the oldest. */
95
- keys(): Iterator<K | undefined> | undefined;
96
- /** Returns an iterator over all values, starting with the oldest. */
97
- values(): Iterator<V | undefined> | undefined;
98
- /** Returns an iterator over all entries, starting with the oldest. */
99
- entries(): Iterator<[K, V] | undefined> | undefined;
100
- /** Call `fun` for each entry, starting with the oldest entry. */
101
- forEach(fun: (value: V, key: K, m: LRUCache<K, V>) => void, thisObj?: any): void;
102
- /** Returns a JSON (array) representation */
103
- toJSON(): Array<{
104
- key: K;
105
- value: V;
106
- }>;
107
- /** Returns a String representation */
108
- toString(): string;
109
- }
110
- /** A [[LRUCache]] using a standard Map as its internal storage.
111
- * @public
112
- */
113
- export declare class LRUMap<K, V> extends LRUCache<K, V> {
114
- /**
115
- * Construct a new LRUMap to hold up to `limit` entries.
116
- */
117
- constructor(limit: number);
118
- }
119
- /** A [[LRUCache]] using a [[Dictionary]] as its internal storage, permitting custom key comparison logic.
120
- * @public
121
- */
122
- export declare class LRUDictionary<K, V> extends LRUCache<K, V> {
123
- /**
124
- * Construct a new LRUDictionary to hold up to `limit` entries.
125
- * @param limit The maximum number of entries permitted in the dictionary.
126
- * @param compareKeys The function used to compare keys within the dictionary.
127
- */
128
- constructor(limit: number, compareKeys: OrderedComparator<K>);
129
- }
1
+ /** @packageDocumentation
2
+ * @module Collections
3
+ */
4
+ import { OrderedComparator } from "./Compare";
5
+ /**
6
+ * Derived from:
7
+ * Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>
8
+ * See README.md at https://github.com/rsms/js-lru for details.
9
+ */
10
+ /** An entry holds the key and value, and pointers to any older and newer entries.
11
+ * @public
12
+ */
13
+ export declare class Entry<K, V> {
14
+ key: K;
15
+ value: V;
16
+ newer?: Entry<K, V>;
17
+ older?: Entry<K, V>;
18
+ constructor(key: K, value: V);
19
+ }
20
+ /** The interface that must be satisfied by the underlying container type used by a LRUCache.
21
+ * Compatible with a [[Dictionary]] or a standard Map.
22
+ * @public
23
+ */
24
+ export interface EntryContainer<K, V> {
25
+ readonly size: number;
26
+ clear(): void;
27
+ get(key: K): Entry<K, V> | undefined;
28
+ set(key: K, value: Entry<K, V>): void;
29
+ has(key: K): boolean;
30
+ delete(key: K): void;
31
+ }
32
+ /**
33
+ * A mapping of a key/value pairs, where the size of the cache can be limited.
34
+ *
35
+ * When entries are inserted, if the cache is "full", the
36
+ * least-recently-used (LRU) value is dropped. When entries are retrieved, they are moved to the front of the LRU list.
37
+ *
38
+ * Illustration of the design:
39
+ *
40
+ * ```
41
+ *
42
+ * entry entry entry entry
43
+ * ______ ______ ______ ______
44
+ * | head |.newer => | |.newer => | |.newer => | tail |
45
+ * | A | | B | | C | | D |
46
+ * |______| <= older.|______| <= older.|______| <= older.|______|
47
+ *
48
+ * removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added
49
+ * ```
50
+ * @public
51
+ */
52
+ export declare class LRUCache<K, V> {
53
+ private _container;
54
+ /** Current number of items */
55
+ size: number;
56
+ /** Maximum number of items this cache can hold */
57
+ limit: number;
58
+ /** Least recently-used entry. Invalidated when cache is modified. */
59
+ oldest?: Entry<K, V>;
60
+ /** Most recently-used entry. Invalidated when cache is modified. */
61
+ newest?: Entry<K, V>;
62
+ /**
63
+ * Construct a new LRUCache to hold up to `limit` entries.
64
+ */
65
+ constructor(limit: number, container: EntryContainer<K, V>);
66
+ private markEntryAsUsed;
67
+ /** Replace all values in this cache with key-value pairs (2-element Arrays) from provided iterable. */
68
+ assign(entries: Iterable<[K, V]>): void;
69
+ /** Get and register recent use of <key>.
70
+ * Returns the value associated with <key> or undefined if not in cache.
71
+ */
72
+ get(key: K): V | undefined;
73
+ /** Put <value> into the cache associated with <key>. Replaces any existing entry with the same key.
74
+ * @returns `this`.
75
+ */
76
+ set(key: K, value: V): LRUCache<K, V>;
77
+ /** Purge the least recently used (oldest) entry from the cache.
78
+ * @returns The removed entry or undefined if the cache was empty.
79
+ */
80
+ shift(): [K, V] | undefined;
81
+ /** Access value for `key` without registering recent use. Useful if you do not
82
+ * want to change the state of the cache, but only "peek" at it.
83
+ * @returns The value associated with `key` if found, or undefined if not found.
84
+ */
85
+ find(key: K): V | undefined;
86
+ /** Check if there's a value for key in the cache without registering recent use. */
87
+ has(key: K): boolean;
88
+ /** Remove entry `key` from cache and return its value.
89
+ * @returns The removed value, or undefined if not found.
90
+ */
91
+ delete(key: K): V | undefined;
92
+ /** Removes all entries */
93
+ clear(): void;
94
+ /** Returns an iterator over all keys, starting with the oldest. */
95
+ keys(): Iterator<K | undefined> | undefined;
96
+ /** Returns an iterator over all values, starting with the oldest. */
97
+ values(): Iterator<V | undefined> | undefined;
98
+ /** Returns an iterator over all entries, starting with the oldest. */
99
+ entries(): Iterator<[K, V] | undefined> | undefined;
100
+ /** Call `fun` for each entry, starting with the oldest entry. */
101
+ forEach(fun: (value: V, key: K, m: LRUCache<K, V>) => void, thisObj?: any): void;
102
+ /** Returns a JSON (array) representation */
103
+ toJSON(): Array<{
104
+ key: K;
105
+ value: V;
106
+ }>;
107
+ /** Returns a String representation */
108
+ toString(): string;
109
+ }
110
+ /** A [[LRUCache]] using a standard Map as its internal storage.
111
+ * @public
112
+ */
113
+ export declare class LRUMap<K, V> extends LRUCache<K, V> {
114
+ /**
115
+ * Construct a new LRUMap to hold up to `limit` entries.
116
+ */
117
+ constructor(limit: number);
118
+ }
119
+ /** A [[LRUCache]] using a [[Dictionary]] as its internal storage, permitting custom key comparison logic.
120
+ * @public
121
+ */
122
+ export declare class LRUDictionary<K, V> extends LRUCache<K, V> {
123
+ /**
124
+ * Construct a new LRUDictionary to hold up to `limit` entries.
125
+ * @param limit The maximum number of entries permitted in the dictionary.
126
+ * @param compareKeys The function used to compare keys within the dictionary.
127
+ */
128
+ constructor(limit: number, compareKeys: OrderedComparator<K>);
129
+ }
130
130
  //# sourceMappingURL=LRUMap.d.ts.map