@opensumi/ide-core-common 2.17.8 → 2.18.0

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 (296) hide show
  1. package/lib/application-error.d.ts.map +1 -1
  2. package/lib/application-error.js +6 -0
  3. package/lib/application-error.js.map +1 -1
  4. package/lib/command.d.ts +1 -2
  5. package/lib/command.d.ts.map +1 -1
  6. package/lib/command.js +4 -4
  7. package/lib/command.js.map +1 -1
  8. package/lib/{utils/comparers.d.ts → comparers.d.ts} +1 -1
  9. package/lib/comparers.d.ts.map +1 -0
  10. package/lib/{utils/comparers.js → comparers.js} +5 -5
  11. package/lib/comparers.js.map +1 -0
  12. package/lib/const/application.d.ts +1 -0
  13. package/lib/const/application.d.ts.map +1 -1
  14. package/lib/const/application.js +3 -1
  15. package/lib/const/application.js.map +1 -1
  16. package/lib/const/index.d.ts +1 -1
  17. package/lib/const/index.d.ts.map +1 -1
  18. package/lib/const/index.js +1 -1
  19. package/lib/const/index.js.map +1 -1
  20. package/lib/crypto.d.ts +7 -0
  21. package/lib/{cryptr.d.ts.map → crypto.d.ts.map} +1 -1
  22. package/lib/crypto.js +6 -0
  23. package/lib/crypto.js.map +1 -0
  24. package/lib/electron.d.ts +2 -2
  25. package/lib/electron.d.ts.map +1 -1
  26. package/lib/electron.js.map +1 -1
  27. package/lib/event-bus/event-bus-types.d.ts +3 -4
  28. package/lib/event-bus/event-bus-types.d.ts.map +1 -1
  29. package/lib/event-bus/event-bus.d.ts +3 -3
  30. package/lib/event-bus/event-bus.d.ts.map +1 -1
  31. package/lib/event-bus/event-bus.js +3 -3
  32. package/lib/event-bus/event-bus.js.map +1 -1
  33. package/lib/event-bus/event-decorator.d.ts +1 -1
  34. package/lib/event-bus/event-decorator.d.ts.map +1 -1
  35. package/lib/event-bus/event-decorator.js +2 -2
  36. package/lib/event-bus/event-decorator.js.map +1 -1
  37. package/lib/hash-calculate/hash-calculate.d.ts.map +1 -1
  38. package/lib/hash-calculate/hash-calculate.js +2 -2
  39. package/lib/hash-calculate/hash-calculate.js.map +1 -1
  40. package/lib/index.d.ts +4 -18
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +4 -18
  43. package/lib/index.js.map +1 -1
  44. package/lib/keyboard/keyboard-layout-provider.d.ts +1 -1
  45. package/lib/keyboard/keyboard-layout-provider.d.ts.map +1 -1
  46. package/lib/keyboard/keymap.js +4 -4
  47. package/lib/keyboard/keymap.js.map +1 -1
  48. package/lib/localize.d.ts.map +1 -1
  49. package/lib/localize.js +7 -7
  50. package/lib/localize.js.map +1 -1
  51. package/lib/log.d.ts +1 -1
  52. package/lib/log.d.ts.map +1 -1
  53. package/lib/{utils/markdown.d.ts → markdown.d.ts} +1 -1
  54. package/lib/markdown.d.ts.map +1 -0
  55. package/lib/{utils/markdown.js → markdown.js} +0 -0
  56. package/lib/markdown.js.map +1 -0
  57. package/lib/menu.d.ts +1 -1
  58. package/lib/menu.d.ts.map +1 -1
  59. package/lib/menu.js.map +1 -1
  60. package/lib/network.d.ts +2 -1
  61. package/lib/network.d.ts.map +1 -1
  62. package/lib/network.js +19 -18
  63. package/lib/network.js.map +1 -1
  64. package/lib/problem-matcher.d.ts +1 -3
  65. package/lib/problem-matcher.d.ts.map +1 -1
  66. package/lib/problem-matcher.js +5 -6
  67. package/lib/problem-matcher.js.map +1 -1
  68. package/lib/problem-pattern.d.ts +1 -2
  69. package/lib/problem-pattern.d.ts.map +1 -1
  70. package/lib/problem-pattern.js +9 -10
  71. package/lib/problem-pattern.js.map +1 -1
  72. package/lib/reference.d.ts +1 -3
  73. package/lib/reference.d.ts.map +1 -1
  74. package/lib/reference.js +4 -5
  75. package/lib/reference.js.map +1 -1
  76. package/lib/reporter.d.ts +1 -1
  77. package/lib/reporter.d.ts.map +1 -1
  78. package/lib/storage.d.ts +1 -4
  79. package/lib/storage.d.ts.map +1 -1
  80. package/lib/storage.js +11 -11
  81. package/lib/storage.js.map +1 -1
  82. package/lib/task-definition.d.ts +1 -1
  83. package/lib/task-definition.d.ts.map +1 -1
  84. package/lib/task-definition.js +6 -6
  85. package/lib/task-definition.js.map +1 -1
  86. package/lib/types/application.d.ts +4 -4
  87. package/lib/types/application.d.ts.map +1 -1
  88. package/lib/types/authentication.d.ts +1 -2
  89. package/lib/types/authentication.d.ts.map +1 -1
  90. package/lib/types/authentication.js.map +1 -1
  91. package/lib/types/common.d.ts +2 -2
  92. package/lib/types/common.d.ts.map +1 -1
  93. package/lib/types/extension.d.ts +1 -1
  94. package/lib/types/extension.d.ts.map +1 -1
  95. package/lib/types/extension.js.map +1 -1
  96. package/lib/types/file-watch.d.ts +1 -1
  97. package/lib/types/file-watch.d.ts.map +1 -1
  98. package/lib/types/file-watch.js +2 -2
  99. package/lib/types/file-watch.js.map +1 -1
  100. package/lib/types/file.d.ts +1 -1
  101. package/lib/types/file.d.ts.map +1 -1
  102. package/lib/types/index.d.ts +1 -0
  103. package/lib/types/index.d.ts.map +1 -1
  104. package/lib/types/index.js +1 -0
  105. package/lib/types/index.js.map +1 -1
  106. package/lib/types/markdown.d.ts +2 -1
  107. package/lib/types/markdown.d.ts.map +1 -1
  108. package/lib/types/markers/markers-manager.d.ts +2 -2
  109. package/lib/types/markers/markers-manager.d.ts.map +1 -1
  110. package/lib/types/markers/markers-manager.js +25 -23
  111. package/lib/types/markers/markers-manager.js.map +1 -1
  112. package/lib/types/markers/markers.js +2 -2
  113. package/lib/types/markers/markers.js.map +1 -1
  114. package/lib/utils/ipc.d.ts.map +1 -1
  115. package/lib/utils/ipc.js +7 -8
  116. package/lib/utils/ipc.js.map +1 -1
  117. package/package.json +4 -7
  118. package/lib/arrays.d.ts +0 -134
  119. package/lib/arrays.d.ts.map +0 -1
  120. package/lib/arrays.js +0 -545
  121. package/lib/arrays.js.map +0 -1
  122. package/lib/async.d.ts +0 -185
  123. package/lib/async.d.ts.map +0 -1
  124. package/lib/async.js +0 -469
  125. package/lib/async.js.map +0 -1
  126. package/lib/cache.d.ts +0 -12
  127. package/lib/cache.d.ts.map +0 -1
  128. package/lib/cache.js +0 -37
  129. package/lib/cache.js.map +0 -1
  130. package/lib/cancellation.d.ts +0 -23
  131. package/lib/cancellation.d.ts.map +0 -1
  132. package/lib/cancellation.js +0 -120
  133. package/lib/cancellation.js.map +0 -1
  134. package/lib/charCode.d.ts +0 -406
  135. package/lib/charCode.d.ts.map +0 -1
  136. package/lib/charCode.js +0 -8
  137. package/lib/charCode.js.map +0 -1
  138. package/lib/character-classifier.d.ts +0 -25
  139. package/lib/character-classifier.d.ts.map +0 -1
  140. package/lib/character-classifier.js +0 -59
  141. package/lib/character-classifier.js.map +0 -1
  142. package/lib/const/encodings.d.ts +0 -10
  143. package/lib/const/encodings.d.ts.map +0 -1
  144. package/lib/const/encodings.js +0 -244
  145. package/lib/const/encodings.js.map +0 -1
  146. package/lib/cryptr.d.ts +0 -7
  147. package/lib/cryptr.js +0 -6
  148. package/lib/cryptr.js.map +0 -1
  149. package/lib/date.d.ts +0 -2
  150. package/lib/date.d.ts.map +0 -1
  151. package/lib/date.js +0 -22
  152. package/lib/date.js.map +0 -1
  153. package/lib/disposable.d.ts +0 -88
  154. package/lib/disposable.d.ts.map +0 -1
  155. package/lib/disposable.js +0 -316
  156. package/lib/disposable.js.map +0 -1
  157. package/lib/encoding/index.d.ts +0 -34
  158. package/lib/encoding/index.d.ts.map +0 -1
  159. package/lib/encoding/index.js +0 -219
  160. package/lib/encoding/index.js.map +0 -1
  161. package/lib/errors.d.ts +0 -56
  162. package/lib/errors.d.ts.map +0 -1
  163. package/lib/errors.js +0 -148
  164. package/lib/errors.js.map +0 -1
  165. package/lib/event.d.ts +0 -268
  166. package/lib/event.d.ts.map +0 -1
  167. package/lib/event.js +0 -816
  168. package/lib/event.js.map +0 -1
  169. package/lib/filters.d.ts +0 -47
  170. package/lib/filters.d.ts.map +0 -1
  171. package/lib/filters.js +0 -699
  172. package/lib/filters.js.map +0 -1
  173. package/lib/functional.d.ts +0 -4
  174. package/lib/functional.d.ts.map +0 -1
  175. package/lib/functional.js +0 -45
  176. package/lib/functional.js.map +0 -1
  177. package/lib/iterator.d.ts +0 -17
  178. package/lib/iterator.d.ts.map +0 -1
  179. package/lib/iterator.js +0 -24
  180. package/lib/iterator.js.map +0 -1
  181. package/lib/lifecycle.d.ts +0 -17
  182. package/lib/lifecycle.d.ts.map +0 -1
  183. package/lib/lifecycle.js +0 -39
  184. package/lib/lifecycle.js.map +0 -1
  185. package/lib/linked-list.d.ts +0 -18
  186. package/lib/linked-list.d.ts.map +0 -1
  187. package/lib/linked-list.js +0 -138
  188. package/lib/linked-list.js.map +0 -1
  189. package/lib/linkedText.d.ts +0 -13
  190. package/lib/linkedText.d.ts.map +0 -1
  191. package/lib/linkedText.js +0 -50
  192. package/lib/linkedText.js.map +0 -1
  193. package/lib/map.d.ts +0 -124
  194. package/lib/map.d.ts.map +0 -1
  195. package/lib/map.js +0 -819
  196. package/lib/map.js.map +0 -1
  197. package/lib/path.d.ts +0 -92
  198. package/lib/path.d.ts.map +0 -1
  199. package/lib/path.js +0 -1695
  200. package/lib/path.js.map +0 -1
  201. package/lib/platform.d.ts +0 -48
  202. package/lib/platform.d.ts.map +0 -1
  203. package/lib/platform.js +0 -153
  204. package/lib/platform.js.map +0 -1
  205. package/lib/process.d.ts +0 -5
  206. package/lib/process.d.ts.map +0 -1
  207. package/lib/process.js +0 -23
  208. package/lib/process.js.map +0 -1
  209. package/lib/progress.d.ts +0 -56
  210. package/lib/progress.d.ts.map +0 -1
  211. package/lib/progress.js +0 -27
  212. package/lib/progress.js.map +0 -1
  213. package/lib/sequence.d.ts +0 -20
  214. package/lib/sequence.d.ts.map +0 -1
  215. package/lib/sequence.js +0 -17
  216. package/lib/sequence.js.map +0 -1
  217. package/lib/uint.d.ts +0 -32
  218. package/lib/uint.d.ts.map +0 -1
  219. package/lib/uint.js +0 -28
  220. package/lib/uint.js.map +0 -1
  221. package/lib/uri.d.ts +0 -94
  222. package/lib/uri.d.ts.map +0 -1
  223. package/lib/uri.js +0 -231
  224. package/lib/uri.js.map +0 -1
  225. package/lib/utils/ansi.d.ts +0 -5
  226. package/lib/utils/ansi.d.ts.map +0 -1
  227. package/lib/utils/ansi.js +0 -14
  228. package/lib/utils/ansi.js.map +0 -1
  229. package/lib/utils/arrays.d.ts +0 -66
  230. package/lib/utils/arrays.d.ts.map +0 -1
  231. package/lib/utils/arrays.js +0 -260
  232. package/lib/utils/arrays.js.map +0 -1
  233. package/lib/utils/buffer.d.ts +0 -35
  234. package/lib/utils/buffer.d.ts.map +0 -1
  235. package/lib/utils/buffer.js +0 -174
  236. package/lib/utils/buffer.js.map +0 -1
  237. package/lib/utils/comparers.d.ts.map +0 -1
  238. package/lib/utils/comparers.js.map +0 -1
  239. package/lib/utils/decorators.d.ts +0 -11
  240. package/lib/utils/decorators.d.ts.map +0 -1
  241. package/lib/utils/decorators.js +0 -151
  242. package/lib/utils/decorators.js.map +0 -1
  243. package/lib/utils/file-uri.d.ts +0 -15
  244. package/lib/utils/file-uri.d.ts.map +0 -1
  245. package/lib/utils/file-uri.js +0 -46
  246. package/lib/utils/file-uri.js.map +0 -1
  247. package/lib/utils/glob.d.ts +0 -46
  248. package/lib/utils/glob.d.ts.map +0 -1
  249. package/lib/utils/glob.js +0 -556
  250. package/lib/utils/glob.js.map +0 -1
  251. package/lib/utils/hash.d.ts +0 -38
  252. package/lib/utils/hash.d.ts.map +0 -1
  253. package/lib/utils/hash.js +0 -294
  254. package/lib/utils/hash.js.map +0 -1
  255. package/lib/utils/index.d.ts +0 -15
  256. package/lib/utils/index.d.ts.map +0 -1
  257. package/lib/utils/index.js +0 -18
  258. package/lib/utils/index.js.map +0 -1
  259. package/lib/utils/json.d.ts +0 -76
  260. package/lib/utils/json.d.ts.map +0 -1
  261. package/lib/utils/json.js +0 -188
  262. package/lib/utils/json.js.map +0 -1
  263. package/lib/utils/markdown.d.ts.map +0 -1
  264. package/lib/utils/markdown.js.map +0 -1
  265. package/lib/utils/marshalling.d.ts +0 -7
  266. package/lib/utils/marshalling.d.ts.map +0 -1
  267. package/lib/utils/marshalling.js +0 -59
  268. package/lib/utils/marshalling.js.map +0 -1
  269. package/lib/utils/objects.d.ts +0 -6
  270. package/lib/utils/objects.d.ts.map +0 -1
  271. package/lib/utils/objects.js +0 -103
  272. package/lib/utils/objects.js.map +0 -1
  273. package/lib/utils/os.d.ts +0 -49
  274. package/lib/utils/os.d.ts.map +0 -1
  275. package/lib/utils/os.js +0 -98
  276. package/lib/utils/os.js.map +0 -1
  277. package/lib/utils/paths.d.ts +0 -35
  278. package/lib/utils/paths.d.ts.map +0 -1
  279. package/lib/utils/paths.js +0 -313
  280. package/lib/utils/paths.js.map +0 -1
  281. package/lib/utils/promise-util.d.ts +0 -10
  282. package/lib/utils/promise-util.d.ts.map +0 -1
  283. package/lib/utils/promise-util.js +0 -17
  284. package/lib/utils/promise-util.js.map +0 -1
  285. package/lib/utils/strings.d.ts +0 -181
  286. package/lib/utils/strings.d.ts.map +0 -1
  287. package/lib/utils/strings.js +0 -858
  288. package/lib/utils/strings.js.map +0 -1
  289. package/lib/utils/types.d.ts +0 -69
  290. package/lib/utils/types.d.ts.map +0 -1
  291. package/lib/utils/types.js +0 -201
  292. package/lib/utils/types.js.map +0 -1
  293. package/lib/uuid.d.ts +0 -2
  294. package/lib/uuid.d.ts.map +0 -1
  295. package/lib/uuid.js +0 -10
  296. package/lib/uuid.js.map +0 -1
package/lib/arrays.js DELETED
@@ -1,545 +0,0 @@
1
- "use strict";
2
- /* ---------------------------------------------------------------------------------------------
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License. See License.txt in the project root for license information.
5
- *--------------------------------------------------------------------------------------------*/
6
- // Some code copied and modified from https://github.com/microsoft/vscode/blob/1.44.0/src/vs/base/common/arrays.ts
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.mapFind = exports.asArray = exports.mapArrayOrNot = exports.find = exports.pushToEnd = exports.pushToStart = exports.shuffle = exports.arrayInsert = exports.insert = exports.index = exports.fill = exports.range = exports.flatten = exports.commonPrefixLength = exports.first = exports.firstIndex = exports.lastIndex = exports.uniqueFilter = exports.distinctES6 = exports.distinct = exports.isNonEmptyArray = exports.isFalsyOrEmpty = exports.move = exports.coalesceInPlace = exports.coalesce = exports.topAsync = exports.top = exports.delta = exports.sortedDiff = exports.groupBy = exports.mergeSort = exports.findFirstInSorted = exports.binarySearch = exports.equals = exports.tail2 = exports.tail = void 0;
9
- const errors_1 = require("./errors");
10
- /**
11
- * Returns the last element of an array.
12
- * @param array The array.
13
- * @param n Which element from the end (default is zero).
14
- */
15
- function tail(array, n = 0) {
16
- return array[array.length - (1 + n)];
17
- }
18
- exports.tail = tail;
19
- function tail2(arr) {
20
- if (arr.length === 0) {
21
- throw new Error('Invalid tail call');
22
- }
23
- return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];
24
- }
25
- exports.tail2 = tail2;
26
- function equals(one, other, itemEquals = (a, b) => a === b) {
27
- if (one === other) {
28
- return true;
29
- }
30
- if (!one || !other) {
31
- return false;
32
- }
33
- if (one.length !== other.length) {
34
- return false;
35
- }
36
- for (let i = 0, len = one.length; i < len; i++) {
37
- if (!itemEquals(one[i], other[i])) {
38
- return false;
39
- }
40
- }
41
- return true;
42
- }
43
- exports.equals = equals;
44
- function binarySearch(array, key, comparator) {
45
- let low = 0;
46
- let high = array.length - 1;
47
- while (low <= high) {
48
- const mid = ((low + high) / 2) | 0;
49
- const comp = comparator(array[mid], key);
50
- if (comp < 0) {
51
- low = mid + 1;
52
- }
53
- else if (comp > 0) {
54
- high = mid - 1;
55
- }
56
- else {
57
- return mid;
58
- }
59
- }
60
- return -(low + 1);
61
- }
62
- exports.binarySearch = binarySearch;
63
- /**
64
- * Takes a sorted array and a function p. The array is sorted in such a way that all elements where p(x) is false
65
- * are located before all elements where p(x) is true.
66
- * @returns the least x for which p(x) is true or array.length if no element fullfills the given function.
67
- */
68
- function findFirstInSorted(array, p) {
69
- let low = 0;
70
- let high = array.length;
71
- if (high === 0) {
72
- return 0; // no children
73
- }
74
- while (low < high) {
75
- const mid = Math.floor((low + high) / 2);
76
- if (p(array[mid])) {
77
- high = mid;
78
- }
79
- else {
80
- low = mid + 1;
81
- }
82
- }
83
- return low;
84
- }
85
- exports.findFirstInSorted = findFirstInSorted;
86
- /**
87
- * Like `Array#sort` but always stable. Usually runs a little slower `than Array#sort`
88
- * so only use this when actually needing stable sort.
89
- */
90
- function mergeSort(data, compare) {
91
- _sort(data, compare, 0, data.length - 1, []);
92
- return data;
93
- }
94
- exports.mergeSort = mergeSort;
95
- function _merge(a, compare, lo, mid, hi, aux) {
96
- let leftIdx = lo;
97
- let rightIdx = mid + 1;
98
- for (let i = lo; i <= hi; i++) {
99
- aux[i] = a[i];
100
- }
101
- for (let i = lo; i <= hi; i++) {
102
- if (leftIdx > mid) {
103
- // left side consumed
104
- a[i] = aux[rightIdx++];
105
- }
106
- else if (rightIdx > hi) {
107
- // right side consumed
108
- a[i] = aux[leftIdx++];
109
- }
110
- else if (compare(aux[rightIdx], aux[leftIdx]) < 0) {
111
- // right element is less -> comes first
112
- a[i] = aux[rightIdx++];
113
- }
114
- else {
115
- // left element comes first (less or equal)
116
- a[i] = aux[leftIdx++];
117
- }
118
- }
119
- }
120
- function _sort(a, compare, lo, hi, aux) {
121
- if (hi <= lo) {
122
- return;
123
- }
124
- const mid = (lo + (hi - lo) / 2) | 0;
125
- _sort(a, compare, lo, mid, aux);
126
- _sort(a, compare, mid + 1, hi, aux);
127
- if (compare(a[mid], a[mid + 1]) <= 0) {
128
- // left and right are sorted and if the last-left element is less
129
- // or equals than the first-right element there is nothing else
130
- // to do
131
- return;
132
- }
133
- _merge(a, compare, lo, mid, hi, aux);
134
- }
135
- function groupBy(data, compare) {
136
- const result = [];
137
- let currentGroup;
138
- for (const element of mergeSort(data.slice(0), compare)) {
139
- if (!currentGroup || compare(currentGroup[0], element) !== 0) {
140
- currentGroup = [element];
141
- result.push(currentGroup);
142
- }
143
- else {
144
- currentGroup.push(element);
145
- }
146
- }
147
- return result;
148
- }
149
- exports.groupBy = groupBy;
150
- /**
151
- * Diffs two *sorted* arrays and computes the splices which apply the diff.
152
- */
153
- function sortedDiff(before, after, compare) {
154
- const result = [];
155
- function pushSplice(start, deleteCount, toInsert) {
156
- if (deleteCount === 0 && toInsert.length === 0) {
157
- return;
158
- }
159
- const latest = result[result.length - 1];
160
- if (latest && latest.start + latest.deleteCount === start) {
161
- latest.deleteCount += deleteCount;
162
- latest.toInsert.push(...toInsert);
163
- }
164
- else {
165
- result.push({ start, deleteCount, toInsert });
166
- }
167
- }
168
- let beforeIdx = 0;
169
- let afterIdx = 0;
170
- while (true) {
171
- if (beforeIdx === before.length) {
172
- pushSplice(beforeIdx, 0, after.slice(afterIdx));
173
- break;
174
- }
175
- if (afterIdx === after.length) {
176
- pushSplice(beforeIdx, before.length - beforeIdx, []);
177
- break;
178
- }
179
- const beforeElement = before[beforeIdx];
180
- const afterElement = after[afterIdx];
181
- const n = compare(beforeElement, afterElement);
182
- if (n === 0) {
183
- // equal
184
- beforeIdx += 1;
185
- afterIdx += 1;
186
- }
187
- else if (n < 0) {
188
- // beforeElement is smaller -> before element removed
189
- pushSplice(beforeIdx, 1, []);
190
- beforeIdx += 1;
191
- }
192
- else if (n > 0) {
193
- // beforeElement is greater -> after element added
194
- pushSplice(beforeIdx, 0, [afterElement]);
195
- afterIdx += 1;
196
- }
197
- }
198
- return result;
199
- }
200
- exports.sortedDiff = sortedDiff;
201
- /**
202
- * Takes two *sorted* arrays and computes their delta (removed, added elements).
203
- * Finishes in `Math.min(before.length, after.length)` steps.
204
- */
205
- function delta(before, after, compare) {
206
- const splices = sortedDiff(before, after, compare);
207
- const removed = [];
208
- const added = [];
209
- for (const splice of splices) {
210
- removed.push(...before.slice(splice.start, splice.start + splice.deleteCount));
211
- added.push(...splice.toInsert);
212
- }
213
- return { removed, added };
214
- }
215
- exports.delta = delta;
216
- /**
217
- * Returns the top N elements from the array.
218
- *
219
- * Faster than sorting the entire array when the array is a lot larger than N.
220
- *
221
- * @param array The unsorted array.
222
- * @param compare A sort function for the elements.
223
- * @param n The number of elements to return.
224
- * @return The first n elemnts from array when sorted with compare.
225
- */
226
- function top(array, compare, n) {
227
- if (n === 0) {
228
- return [];
229
- }
230
- const result = array.slice(0, n).sort(compare);
231
- topStep(array, compare, result, n, array.length);
232
- return result;
233
- }
234
- exports.top = top;
235
- /**
236
- * Asynchronous variant of `top()` allowing for splitting up work in batches between which the event loop can run.
237
- *
238
- * Returns the top N elements from the array.
239
- *
240
- * Faster than sorting the entire array when the array is a lot larger than N.
241
- *
242
- * @param array The unsorted array.
243
- * @param compare A sort function for the elements.
244
- * @param n The number of elements to return.
245
- * @param batch The number of elements to examine before yielding to the event loop.
246
- * @return The first n elemnts from array when sorted with compare.
247
- */
248
- function topAsync(array, compare, n, batch, token) {
249
- if (n === 0) {
250
- return Promise.resolve([]);
251
- }
252
- return new Promise((resolve, reject) => {
253
- (async () => {
254
- const o = array.length;
255
- const result = array.slice(0, n).sort(compare);
256
- for (let i = n, m = Math.min(n + batch, o); i < o; i = m, m = Math.min(m + batch, o)) {
257
- if (i > n) {
258
- await new Promise((resolve) => setTimeout(resolve)); // nextTick() would starve I/O.
259
- }
260
- if (token && token.isCancellationRequested) {
261
- throw (0, errors_1.canceled)();
262
- }
263
- topStep(array, compare, result, i, m);
264
- }
265
- return result;
266
- })().then(resolve, reject);
267
- });
268
- }
269
- exports.topAsync = topAsync;
270
- function topStep(array, compare, result, i, m) {
271
- for (const n = result.length; i < m; i++) {
272
- const element = array[i];
273
- if (compare(element, result[n - 1]) < 0) {
274
- result.pop();
275
- const j = findFirstInSorted(result, (e) => compare(element, e) < 0);
276
- result.splice(j, 0, element);
277
- }
278
- }
279
- }
280
- /**
281
- * @returns a new array with all falsy values removed. The original array IS NOT modified.
282
- */
283
- function coalesce(array) {
284
- if (!array) {
285
- return array;
286
- }
287
- return array.filter((e) => !!e);
288
- }
289
- exports.coalesce = coalesce;
290
- /**
291
- * Remove all falsey values from `array`. The original array IS modified.
292
- */
293
- function coalesceInPlace(array) {
294
- if (!array) {
295
- return;
296
- }
297
- let to = 0;
298
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
299
- for (let i = 0; i < array.length; i++) {
300
- if (array[i]) {
301
- array[to] = array[i];
302
- to += 1;
303
- }
304
- }
305
- array.length = to;
306
- }
307
- exports.coalesceInPlace = coalesceInPlace;
308
- /**
309
- * Moves the element in the array for the provided positions.
310
- */
311
- function move(array, from, to) {
312
- array.splice(to, 0, array.splice(from, 1)[0]);
313
- }
314
- exports.move = move;
315
- /**
316
- * @returns false if the provided object is an array and not empty.
317
- */
318
- function isFalsyOrEmpty(obj) {
319
- return !Array.isArray(obj) || obj.length === 0;
320
- }
321
- exports.isFalsyOrEmpty = isFalsyOrEmpty;
322
- function isNonEmptyArray(obj) {
323
- return Array.isArray(obj) && obj.length > 0;
324
- }
325
- exports.isNonEmptyArray = isNonEmptyArray;
326
- /**
327
- * Removes duplicates from the given array. The optional keyFn allows to specify
328
- * how elements are checked for equalness by returning a unique string for each.
329
- */
330
- function distinct(array, keyFn) {
331
- if (!keyFn) {
332
- return array.filter((element, position) => array.indexOf(element) === position);
333
- }
334
- const seen = Object.create(null);
335
- return array.filter((elem) => {
336
- const key = keyFn(elem);
337
- if (seen[key]) {
338
- return false;
339
- }
340
- seen[key] = true;
341
- return true;
342
- });
343
- }
344
- exports.distinct = distinct;
345
- function distinctES6(array) {
346
- const seen = new Set();
347
- return array.filter((element) => {
348
- if (seen.has(element)) {
349
- return false;
350
- }
351
- seen.add(element);
352
- return true;
353
- });
354
- }
355
- exports.distinctES6 = distinctES6;
356
- function uniqueFilter(keyFn) {
357
- const seen = Object.create(null);
358
- return (element) => {
359
- const key = keyFn(element);
360
- if (seen[key]) {
361
- return false;
362
- }
363
- seen[key] = true;
364
- return true;
365
- };
366
- }
367
- exports.uniqueFilter = uniqueFilter;
368
- function lastIndex(array, fn) {
369
- for (let i = array.length - 1; i >= 0; i--) {
370
- const element = array[i];
371
- if (fn(element)) {
372
- return i;
373
- }
374
- }
375
- return -1;
376
- }
377
- exports.lastIndex = lastIndex;
378
- function firstIndex(array, fn) {
379
- for (let i = 0; i < array.length; i++) {
380
- const element = array[i];
381
- if (fn(element)) {
382
- return i;
383
- }
384
- }
385
- return -1;
386
- }
387
- exports.firstIndex = firstIndex;
388
- function first(array, fn, notFoundValue = undefined) {
389
- const index = firstIndex(array, fn);
390
- return index < 0 ? notFoundValue : array[index];
391
- }
392
- exports.first = first;
393
- function commonPrefixLength(one, other, equals = (a, b) => a === b) {
394
- let result = 0;
395
- for (let i = 0, len = Math.min(one.length, other.length); i < len && equals(one[i], other[i]); i++) {
396
- result++;
397
- }
398
- return result;
399
- }
400
- exports.commonPrefixLength = commonPrefixLength;
401
- function flatten(arr) {
402
- return [].concat(...arr);
403
- }
404
- exports.flatten = flatten;
405
- function range(arg, to) {
406
- let from = typeof to === 'number' ? arg : 0;
407
- if (typeof to === 'number') {
408
- from = arg;
409
- }
410
- else {
411
- from = 0;
412
- to = arg;
413
- }
414
- const result = [];
415
- if (from <= to) {
416
- for (let i = from; i < to; i++) {
417
- result.push(i);
418
- }
419
- }
420
- else {
421
- for (let i = from; i > to; i--) {
422
- result.push(i);
423
- }
424
- }
425
- return result;
426
- }
427
- exports.range = range;
428
- function fill(num, value, arr = []) {
429
- for (let i = 0; i < num; i++) {
430
- arr[i] = value;
431
- }
432
- return arr;
433
- }
434
- exports.fill = fill;
435
- function index(array, indexer, merger = (t) => t) {
436
- return array.reduce((r, t) => {
437
- const key = indexer(t);
438
- r[key] = merger(t, r[key]);
439
- return r;
440
- }, Object.create(null));
441
- }
442
- exports.index = index;
443
- /**
444
- * Inserts an element into an array. Returns a function which, when
445
- * called, will remove that element from the array.
446
- */
447
- function insert(array, element) {
448
- array.push(element);
449
- return () => {
450
- const index = array.indexOf(element);
451
- if (index > -1) {
452
- array.splice(index, 1);
453
- }
454
- };
455
- }
456
- exports.insert = insert;
457
- /**
458
- * Insert `insertArr` inside `target` at `insertIndex`.
459
- * Please don't touch unless you understand https://jsperf.com/inserting-an-array-within-an-array
460
- */
461
- function arrayInsert(target, insertIndex, insertArr) {
462
- const before = target.slice(0, insertIndex);
463
- const after = target.slice(insertIndex);
464
- return before.concat(insertArr, after);
465
- }
466
- exports.arrayInsert = arrayInsert;
467
- /**
468
- * Uses Fisher-Yates shuffle to shuffle the given array
469
- */
470
- function shuffle(array, _seed) {
471
- let rand;
472
- if (typeof _seed === 'number') {
473
- let seed = _seed;
474
- // Seeded random number generator in JS. Modified from:
475
- // https://stackoverflow.com/questions/521295/seeding-the-random-number-generator-in-javascript
476
- rand = () => {
477
- const x = Math.sin(seed++) * 179426549; // throw away most significant digits and reduce any potential bias
478
- return x - Math.floor(x);
479
- };
480
- }
481
- else {
482
- rand = Math.random;
483
- }
484
- for (let i = array.length - 1; i > 0; i -= 1) {
485
- const j = Math.floor(rand() * (i + 1));
486
- const temp = array[i];
487
- array[i] = array[j];
488
- array[j] = temp;
489
- }
490
- }
491
- exports.shuffle = shuffle;
492
- /**
493
- * Pushes an element to the start of the array, if found.
494
- */
495
- function pushToStart(arr, value) {
496
- const index = arr.indexOf(value);
497
- if (index > -1) {
498
- arr.splice(index, 1);
499
- arr.unshift(value);
500
- }
501
- }
502
- exports.pushToStart = pushToStart;
503
- /**
504
- * Pushes an element to the end of the array, if found.
505
- */
506
- function pushToEnd(arr, value) {
507
- const index = arr.indexOf(value);
508
- if (index > -1) {
509
- arr.splice(index, 1);
510
- arr.push(value);
511
- }
512
- }
513
- exports.pushToEnd = pushToEnd;
514
- function find(arr, predicate) {
515
- for (let i = 0; i < arr.length; i++) {
516
- const element = arr[i];
517
- if (predicate(element, i, arr)) {
518
- return element;
519
- }
520
- }
521
- return undefined;
522
- }
523
- exports.find = find;
524
- function mapArrayOrNot(items, fn) {
525
- return Array.isArray(items) ? items.map(fn) : fn(items);
526
- }
527
- exports.mapArrayOrNot = mapArrayOrNot;
528
- function asArray(x) {
529
- return Array.isArray(x) ? x : [x];
530
- }
531
- exports.asArray = asArray;
532
- /**
533
- * Returns the first mapped value of the array which is not undefined.
534
- */
535
- function mapFind(array, mapFn) {
536
- for (const value of array) {
537
- const mapped = mapFn(value);
538
- if (mapped !== undefined) {
539
- return mapped;
540
- }
541
- }
542
- return undefined;
543
- }
544
- exports.mapFind = mapFind;
545
- //# sourceMappingURL=arrays.js.map
package/lib/arrays.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"arrays.js","sourceRoot":"","sources":["../src/arrays.ts"],"names":[],"mappings":"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"}