@terascope/core-utils 2.0.0-dev.7

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/src/arrays.d.ts +59 -0
  4. package/dist/src/arrays.d.ts.map +1 -0
  5. package/dist/src/arrays.js +180 -0
  6. package/dist/src/arrays.js.map +1 -0
  7. package/dist/src/big-lru-map.d.ts +14 -0
  8. package/dist/src/big-lru-map.d.ts.map +1 -0
  9. package/dist/src/big-lru-map.js +20 -0
  10. package/dist/src/big-lru-map.js.map +1 -0
  11. package/dist/src/big-map.d.ts +28 -0
  12. package/dist/src/big-map.d.ts.map +1 -0
  13. package/dist/src/big-map.js +148 -0
  14. package/dist/src/big-map.js.map +1 -0
  15. package/dist/src/big-set.d.ts +20 -0
  16. package/dist/src/big-set.d.ts.map +1 -0
  17. package/dist/src/big-set.js +109 -0
  18. package/dist/src/big-set.js.map +1 -0
  19. package/dist/src/booleans.d.ts +44 -0
  20. package/dist/src/booleans.d.ts.map +1 -0
  21. package/dist/src/booleans.js +81 -0
  22. package/dist/src/booleans.js.map +1 -0
  23. package/dist/src/buffers.d.ts +9 -0
  24. package/dist/src/buffers.d.ts.map +1 -0
  25. package/dist/src/buffers.js +22 -0
  26. package/dist/src/buffers.js.map +1 -0
  27. package/dist/src/collector.d.ts +48 -0
  28. package/dist/src/collector.d.ts.map +1 -0
  29. package/dist/src/collector.js +74 -0
  30. package/dist/src/collector.js.map +1 -0
  31. package/dist/src/dates.d.ts +180 -0
  32. package/dist/src/dates.d.ts.map +1 -0
  33. package/dist/src/dates.js +744 -0
  34. package/dist/src/dates.js.map +1 -0
  35. package/dist/src/decorators.d.ts +7 -0
  36. package/dist/src/decorators.d.ts.map +1 -0
  37. package/dist/src/decorators.js +21 -0
  38. package/dist/src/decorators.js.map +1 -0
  39. package/dist/src/deps.d.ts +25 -0
  40. package/dist/src/deps.d.ts.map +1 -0
  41. package/dist/src/deps.js +96 -0
  42. package/dist/src/deps.js.map +1 -0
  43. package/dist/src/empty.d.ts +11 -0
  44. package/dist/src/empty.d.ts.map +1 -0
  45. package/dist/src/empty.js +32 -0
  46. package/dist/src/empty.js.map +1 -0
  47. package/dist/src/entities/data-entity.d.ts +153 -0
  48. package/dist/src/entities/data-entity.d.ts.map +1 -0
  49. package/dist/src/entities/data-entity.js +354 -0
  50. package/dist/src/entities/data-entity.js.map +1 -0
  51. package/dist/src/entities/index.d.ts +3 -0
  52. package/dist/src/entities/index.d.ts.map +1 -0
  53. package/dist/src/entities/index.js +3 -0
  54. package/dist/src/entities/index.js.map +1 -0
  55. package/dist/src/entities/interfaces.d.ts +52 -0
  56. package/dist/src/entities/interfaces.d.ts.map +1 -0
  57. package/dist/src/entities/interfaces.js +13 -0
  58. package/dist/src/entities/interfaces.js.map +1 -0
  59. package/dist/src/entities/utils.d.ts +9 -0
  60. package/dist/src/entities/utils.d.ts.map +1 -0
  61. package/dist/src/entities/utils.js +44 -0
  62. package/dist/src/entities/utils.js.map +1 -0
  63. package/dist/src/env.d.ts +6 -0
  64. package/dist/src/env.d.ts.map +1 -0
  65. package/dist/src/env.js +15 -0
  66. package/dist/src/env.js.map +1 -0
  67. package/dist/src/equality.d.ts +72 -0
  68. package/dist/src/equality.d.ts.map +1 -0
  69. package/dist/src/equality.js +128 -0
  70. package/dist/src/equality.js.map +1 -0
  71. package/dist/src/errors.d.ts +140 -0
  72. package/dist/src/errors.d.ts.map +1 -0
  73. package/dist/src/errors.js +372 -0
  74. package/dist/src/errors.js.map +1 -0
  75. package/dist/src/event-loop.d.ts +33 -0
  76. package/dist/src/event-loop.d.ts.map +1 -0
  77. package/dist/src/event-loop.js +74 -0
  78. package/dist/src/event-loop.js.map +1 -0
  79. package/dist/src/fp.d.ts +15 -0
  80. package/dist/src/fp.d.ts.map +1 -0
  81. package/dist/src/fp.js +25 -0
  82. package/dist/src/fp.js.map +1 -0
  83. package/dist/src/functions.d.ts +19 -0
  84. package/dist/src/functions.d.ts.map +1 -0
  85. package/dist/src/functions.js +58 -0
  86. package/dist/src/functions.js.map +1 -0
  87. package/dist/src/index.d.ts +32 -0
  88. package/dist/src/index.d.ts.map +1 -0
  89. package/dist/src/index.js +32 -0
  90. package/dist/src/index.js.map +1 -0
  91. package/dist/src/iterators.d.ts +9 -0
  92. package/dist/src/iterators.d.ts.map +1 -0
  93. package/dist/src/iterators.js +13 -0
  94. package/dist/src/iterators.js.map +1 -0
  95. package/dist/src/json.d.ts +8 -0
  96. package/dist/src/json.d.ts.map +1 -0
  97. package/dist/src/json.js +46 -0
  98. package/dist/src/json.js.map +1 -0
  99. package/dist/src/logger.d.ts +18 -0
  100. package/dist/src/logger.d.ts.map +1 -0
  101. package/dist/src/logger.js +87 -0
  102. package/dist/src/logger.js.map +1 -0
  103. package/dist/src/numbers.d.ts +86 -0
  104. package/dist/src/numbers.d.ts.map +1 -0
  105. package/dist/src/numbers.js +354 -0
  106. package/dist/src/numbers.js.map +1 -0
  107. package/dist/src/objects.d.ts +66 -0
  108. package/dist/src/objects.d.ts.map +1 -0
  109. package/dist/src/objects.js +170 -0
  110. package/dist/src/objects.js.map +1 -0
  111. package/dist/src/phone-number.d.ts +4 -0
  112. package/dist/src/phone-number.d.ts.map +1 -0
  113. package/dist/src/phone-number.js +31 -0
  114. package/dist/src/phone-number.js.map +1 -0
  115. package/dist/src/promises.d.ts +102 -0
  116. package/dist/src/promises.d.ts.map +1 -0
  117. package/dist/src/promises.js +289 -0
  118. package/dist/src/promises.js.map +1 -0
  119. package/dist/src/queue/index.d.ts +27 -0
  120. package/dist/src/queue/index.d.ts.map +1 -0
  121. package/dist/src/queue/index.js +170 -0
  122. package/dist/src/queue/index.js.map +1 -0
  123. package/dist/src/queue/node.d.ts +7 -0
  124. package/dist/src/queue/node.d.ts.map +1 -0
  125. package/dist/src/queue/node.js +17 -0
  126. package/dist/src/queue/node.js.map +1 -0
  127. package/dist/src/regex.d.ts +19 -0
  128. package/dist/src/regex.d.ts.map +1 -0
  129. package/dist/src/regex.js +138 -0
  130. package/dist/src/regex.js.map +1 -0
  131. package/dist/src/status-codes.d.ts +67 -0
  132. package/dist/src/status-codes.d.ts.map +1 -0
  133. package/dist/src/status-codes.js +66 -0
  134. package/dist/src/status-codes.js.map +1 -0
  135. package/dist/src/strings.d.ts +279 -0
  136. package/dist/src/strings.d.ts.map +1 -0
  137. package/dist/src/strings.js +578 -0
  138. package/dist/src/strings.js.map +1 -0
  139. package/dist/src/vector.d.ts +2 -0
  140. package/dist/src/vector.d.ts.map +1 -0
  141. package/dist/src/vector.js +16 -0
  142. package/dist/src/vector.js.map +1 -0
  143. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"big-set.js","sourceRoot":"","sources":["../../src/big-set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Convert any input into a boolean, this will work with stringified boolean
3
+ *
4
+ * @example
5
+ *
6
+ * toBoolean(1); // true
7
+ * toBoolean(0); // false
8
+ * toBoolean('1'); // true
9
+ * toBoolean('0'); // false
10
+ * toBoolean('yes'); // true
11
+ * toBoolean('NO'); // false
12
+ * toBoolean('true'); // true
13
+ * toBoolean('FALSE'); // false
14
+ */
15
+ export declare function toBoolean(input: unknown): boolean;
16
+ /**
17
+ * Returns true if the value is a truthy like value
18
+ */
19
+ export declare function isTruthy(input: unknown): boolean;
20
+ /**
21
+ * Returns true if the value is a falsy like value
22
+ */
23
+ export declare function isFalsy(input: unknown): boolean;
24
+ /**
25
+ * Returns true if the input is a boolean
26
+ */
27
+ export declare function isBoolean(input: unknown): input is boolean;
28
+ /**
29
+ * Returns true if the input is like a boolean.
30
+ * Use toBoolean to convert it to one.
31
+ *
32
+ * @example
33
+ *
34
+ * isBooleanLike(); // false
35
+ * isBooleanLike(null); // true
36
+ * isBooleanLike(0); // true
37
+ * isBooleanLike('0'); // true
38
+ * isBooleanLike('false'); // true
39
+ * isBooleanLike('no'); // true
40
+ */
41
+ export declare function isBooleanLike(input: unknown): boolean;
42
+ /** Will throw if input is not booleanLike, converts input to a Boolean */
43
+ export declare function toBooleanOrThrow(input: unknown): boolean;
44
+ //# sourceMappingURL=booleans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booleans.d.ts","sourceRoot":"","sources":["../../src/booleans.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;EAaE;AACF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKjD;AAcD;;EAEE;AACF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIhD;AAED;;EAEE;AACF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI/C;AAED;;EAEE;AACF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED;;;;;;;;;;;;EAYE;AACF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMxD"}
@@ -0,0 +1,81 @@
1
+ import { getTypeOf } from './deps.js';
2
+ import { isKey } from './objects.js';
3
+ /**
4
+ * Convert any input into a boolean, this will work with stringified boolean
5
+ *
6
+ * @example
7
+ *
8
+ * toBoolean(1); // true
9
+ * toBoolean(0); // false
10
+ * toBoolean('1'); // true
11
+ * toBoolean('0'); // false
12
+ * toBoolean('yes'); // true
13
+ * toBoolean('NO'); // false
14
+ * toBoolean('true'); // true
15
+ * toBoolean('FALSE'); // false
16
+ */
17
+ export function toBoolean(input) {
18
+ if (isFalsy(input))
19
+ return false;
20
+ if (isTruthy(input))
21
+ return true;
22
+ return Boolean(input);
23
+ }
24
+ const _falsy = Object.freeze({
25
+ 0: true,
26
+ false: true,
27
+ no: true,
28
+ });
29
+ const _truthy = Object.freeze({
30
+ 1: true,
31
+ true: true,
32
+ yes: true,
33
+ });
34
+ /**
35
+ * Returns true if the value is a truthy like value
36
+ */
37
+ export function isTruthy(input) {
38
+ if (input === true)
39
+ return true;
40
+ const val = typeof input === 'string' ? input.trim().toLowerCase() : String(input);
41
+ return isKey(_truthy, val);
42
+ }
43
+ /**
44
+ * Returns true if the value is a falsy like value
45
+ */
46
+ export function isFalsy(input) {
47
+ if (input === false || input == null || input === '')
48
+ return true;
49
+ const val = typeof input === 'string' ? input.trim().toLowerCase() : String(input);
50
+ return isKey(_falsy, val);
51
+ }
52
+ /**
53
+ * Returns true if the input is a boolean
54
+ */
55
+ export function isBoolean(input) {
56
+ return typeof input === 'boolean';
57
+ }
58
+ /**
59
+ * Returns true if the input is like a boolean.
60
+ * Use toBoolean to convert it to one.
61
+ *
62
+ * @example
63
+ *
64
+ * isBooleanLike(); // false
65
+ * isBooleanLike(null); // true
66
+ * isBooleanLike(0); // true
67
+ * isBooleanLike('0'); // true
68
+ * isBooleanLike('false'); // true
69
+ * isBooleanLike('no'); // true
70
+ */
71
+ export function isBooleanLike(input) {
72
+ return isFalsy(input) || isTruthy(input);
73
+ }
74
+ /** Will throw if input is not booleanLike, converts input to a Boolean */
75
+ export function toBooleanOrThrow(input) {
76
+ if (!isBooleanLike(input)) {
77
+ throw new TypeError(`Expected ${input} (${getTypeOf(input)}) to be boolean like`);
78
+ }
79
+ return toBoolean(input);
80
+ }
81
+ //# sourceMappingURL=booleans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"booleans.js","sourceRoot":"","sources":["../../src/booleans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC;;;;;;;;;;;;;EAaE;AACF,MAAM,UAAU,SAAS,CAAC,KAAc;IACpC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC,EAAE,IAAI;IACP,KAAK,EAAE,IAAI;IACX,EAAE,EAAE,IAAI;CACX,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,CAAC,EAAE,IAAI;IACP,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;CACZ,CAAC,CAAC;AAEH;;EAEE;AACF,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,OAAO,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,SAAS,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;EAYE;AACF,MAAM,UAAU,aAAa,CAAC,KAAc;IACxC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC3C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,YAAY,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Convert an input to a Buffer if possible
3
+ */
4
+ export declare function ensureBuffer(input: string | Buffer, encoding?: BufferEncoding): Buffer;
5
+ /**
6
+ * Check if an input is an nodejs Buffer
7
+ */
8
+ export declare function isBuffer(input: unknown): input is Buffer;
9
+ //# sourceMappingURL=buffers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffers.d.ts","sourceRoot":"","sources":["../../src/buffers.ts"],"names":[],"mappings":"AAEA;;EAEE;AACF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,CAQ9F;AAED;;EAEE;AACF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAGxD"}
@@ -0,0 +1,22 @@
1
+ import { getTypeOf } from './deps.js';
2
+ /**
3
+ * Convert an input to a Buffer if possible
4
+ */
5
+ export function ensureBuffer(input, encoding = 'utf8') {
6
+ if (typeof input === 'string') {
7
+ return Buffer.from(input, encoding);
8
+ }
9
+ if (isBuffer(input)) {
10
+ return input;
11
+ }
12
+ throw new Error(`Invalid input given, expected string or buffer, got ${getTypeOf(input)}`);
13
+ }
14
+ /**
15
+ * Check if an input is an nodejs Buffer
16
+ */
17
+ export function isBuffer(input) {
18
+ if (typeof Buffer === 'undefined')
19
+ return false;
20
+ return Buffer.isBuffer(input);
21
+ }
22
+ //# sourceMappingURL=buffers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffers.js","sourceRoot":"","sources":["../../src/buffers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;EAEE;AACF,MAAM,UAAU,YAAY,CAAC,KAAsB,EAAE,WAA2B,MAAM;IAClF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;EAEE;AACF,MAAM,UAAU,QAAQ,CAAC,KAAc;IACnC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * An in-memory record collector,
3
+ * useful for batch data to a certain
4
+ * size or after a certain amount of time has passed.
5
+ *
6
+ * NOTE: Records are store in an immutable array to
7
+ * be more memory efficient.
8
+ */
9
+ export declare class Collector<T> {
10
+ /** the maximum wait time to collect the batch */
11
+ readonly size: number;
12
+ /** the maximum batch size of the batch */
13
+ readonly wait: number;
14
+ private _queue;
15
+ private _startTime;
16
+ constructor(max: {
17
+ wait: number;
18
+ size: number;
19
+ });
20
+ /**
21
+ * Get the current Queue Length
22
+ */
23
+ get length(): number;
24
+ /**
25
+ * Get the current queue
26
+ */
27
+ get queue(): T[];
28
+ /**
29
+ * Add a record, or records, to the in-memory queue.
30
+ */
31
+ add(_records: T[] | T): void;
32
+ /**
33
+ * Get the batch of data if it is full or has exceeded the time threshold.
34
+ *
35
+ * @returns null if the batch isn't ready
36
+ * @returns the a batch of records, less or equal to the max size
37
+ */
38
+ getBatch(): T[] | null;
39
+ /**
40
+ * Flush all of the records in the queue.
41
+ *
42
+ * **NOTE:** This can potentially return more records than
43
+ * specified than the max size.
44
+ */
45
+ flushAll(): T[];
46
+ private _checkTime;
47
+ }
48
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"AAEA;;;;;;;EAOE;AACF,qBAAa,SAAS,CAAC,CAAC;IACpB,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,UAAU,CAAuB;gBAE7B,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAK/C;;MAEE;IACF,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;MAEE;IACF,IAAI,KAAK,IAAI,CAAC,EAAE,CAEf;IAED;;MAEE;IACF,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;IAS5B;;;;;MAKE;IACF,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI;IAYtB;;;;;MAKE;IACF,QAAQ,IAAI,CAAC,EAAE;IAIf,OAAO,CAAC,UAAU;CAMrB"}
@@ -0,0 +1,74 @@
1
+ import { castArray } from './arrays.js';
2
+ /**
3
+ * An in-memory record collector,
4
+ * useful for batch data to a certain
5
+ * size or after a certain amount of time has passed.
6
+ *
7
+ * NOTE: Records are store in an immutable array to
8
+ * be more memory efficient.
9
+ */
10
+ export class Collector {
11
+ /** the maximum wait time to collect the batch */
12
+ size;
13
+ /** the maximum batch size of the batch */
14
+ wait;
15
+ _queue = [];
16
+ _startTime = null;
17
+ constructor(max) {
18
+ this.wait = max.wait;
19
+ this.size = max.size;
20
+ }
21
+ /**
22
+ * Get the current Queue Length
23
+ */
24
+ get length() {
25
+ return this._queue.length;
26
+ }
27
+ /**
28
+ * Get the current queue
29
+ */
30
+ get queue() {
31
+ return this._queue;
32
+ }
33
+ /**
34
+ * Add a record, or records, to the in-memory queue.
35
+ */
36
+ add(_records) {
37
+ if (!this._queue.length) {
38
+ this._startTime = Date.now();
39
+ }
40
+ const records = castArray(_records);
41
+ this._queue = this._queue.concat(records);
42
+ }
43
+ /**
44
+ * Get the batch of data if it is full or has exceeded the time threshold.
45
+ *
46
+ * @returns null if the batch isn't ready
47
+ * @returns the a batch of records, less or equal to the max size
48
+ */
49
+ getBatch() {
50
+ const isValid = this._checkTime();
51
+ if (isValid && this._queue.length < this.size)
52
+ return null;
53
+ const records = this._queue.splice(0, this.size);
54
+ this._queue = this._queue.slice();
55
+ this._startTime = null;
56
+ return records;
57
+ }
58
+ /**
59
+ * Flush all of the records in the queue.
60
+ *
61
+ * **NOTE:** This can potentially return more records than
62
+ * specified than the max size.
63
+ */
64
+ flushAll() {
65
+ return this._queue.splice(0, this._queue.length);
66
+ }
67
+ _checkTime() {
68
+ if (this._startTime == null)
69
+ return true;
70
+ const invalidAt = this._startTime + this.wait;
71
+ return Date.now() < invalidAt;
72
+ }
73
+ }
74
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;EAOE;AACF,MAAM,OAAO,SAAS;IAClB,iDAAiD;IACxC,IAAI,CAAS;IACtB,0CAA0C;IACjC,IAAI,CAAS;IAEd,MAAM,GAAQ,EAAE,CAAC;IACjB,UAAU,GAAkB,IAAI,CAAC;IAEzC,YAAY,GAAmC;QAC3C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,CAAC;IAED;;MAEE;IACF,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;MAEE;IACF,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;MAEE;IACF,GAAG,CAAC,QAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAI,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;MAKE;IACF,QAAQ;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;MAKE;IACF,QAAQ;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,CAAC;CACJ"}
@@ -0,0 +1,180 @@
1
+ import { differenceInMilliseconds, differenceInSeconds, differenceInMinutes, differenceInHours, differenceInDays, differenceInCalendarDays, differenceInBusinessDays, differenceInWeeks, differenceInCalendarISOWeeks, differenceInCalendarISOWeekYears, differenceInMonths, differenceInCalendarMonths, differenceInQuarters, differenceInCalendarQuarters, differenceInYears, differenceInCalendarYears, differenceInISOWeekYears } from 'date-fns';
2
+ import { DateFormat, ISO8601DateSegment, DateTuple, DateInputTypes, GetTimeBetweenArgs } from '@terascope/types';
3
+ export declare const timezoneOffset: number;
4
+ /**
5
+ * A helper function for making an ISODate string
6
+ */
7
+ export declare function makeISODate(value?: Date | number | string | null | undefined | DateTuple): string;
8
+ /** A simplified implementation of moment(new Date(val)).isValid() */
9
+ export declare function isValidDate(val: unknown): boolean;
10
+ /**
11
+ * Coerces value into a valid date, returns false if it is invalid.
12
+ * Has added support for converting from date math (i.e. now+1h, now-1m, now+2d/y, 2021-01-01||+2d)
13
+ */
14
+ export declare function getValidDate(val: unknown, relativeNow?: Date): Date | false;
15
+ /**
16
+ * Returns a valid date or throws, {@see getValidDate}
17
+ */
18
+ export declare function getValidDateOrThrow(val: unknown): Date;
19
+ export declare function toTimeZone(val: unknown, timezone: string): DateTuple | null;
20
+ /**
21
+ * Returns a valid date with the timezone applied or throws{@see getValidDate}
22
+ */
23
+ export declare function getValidDateWithTimezoneOrThrow(val: unknown, getUTC?: boolean): Date;
24
+ /**
25
+ * Returns a valid date with the timezone applied {@see getValidDate}
26
+ */
27
+ export declare function getValidDateWithTimezone(val: unknown, getUTC?: boolean): Date | false;
28
+ /**
29
+ * Returns a valid date or throws, {@see getValidDate}
30
+ */
31
+ export declare function getValidDateOrNumberOrThrow(val: unknown): Date | number;
32
+ export declare function isValidDateInstance(val: unknown): val is Date;
33
+ /** Ensure unix time */
34
+ export declare function getTime(val?: DateInputTypes): number | false;
35
+ export declare function getUnixTime(val?: DateInputTypes): number | false;
36
+ /**
37
+ * Checks to see if an input is a unix time
38
+ */
39
+ export declare function isUnixTime(input: unknown, allowBefore1970?: boolean): input is number;
40
+ /**
41
+ * A functional version of isUnixTime
42
+ */
43
+ export declare function isUnixTimeFP(allowBefore1970?: boolean): (input: unknown) => input is number;
44
+ /**
45
+ * Checks to see if an input is a ISO 8601 date
46
+ */
47
+ export declare function isISO8601(input: unknown): input is string;
48
+ /**
49
+ * Convert a value to an ISO 8601 date string.
50
+ * This should be used over makeISODate
51
+ */
52
+ export declare function toISO8601(value: unknown): string;
53
+ /**
54
+ * Set the timezone offset of a date, returns a date tuple
55
+ */
56
+ export declare function setTimezone(input: unknown, timezone: string | number): DateTuple;
57
+ /**
58
+ * A curried version of setTimezone
59
+ */
60
+ export declare function setTimezoneFP(timezone: string | number): (input: unknown) => DateTuple;
61
+ /**
62
+ * Verify if an input is a Date Tuple
63
+ */
64
+ export declare function isDateTuple(input: unknown): input is DateTuple;
65
+ /**
66
+ * Returns a function to trim the ISO 8601 date segment
67
+ * useful for creating yearly, monthly, daily or hourly dates
68
+ */
69
+ export declare function trimISODateSegment(segment: ISO8601DateSegment): (input: unknown) => number;
70
+ /**
71
+ * track a timeout to see if it expires
72
+ * @returns a function that will returns false if the time elapsed
73
+ */
74
+ export declare function trackTimeout(timeoutMs: number): () => number | false;
75
+ /** converts smaller than a week milliseconds to human readable time */
76
+ export declare function toHumanTime(ms: number): string;
77
+ export declare function parseCustomDateFormat(value: unknown, format: string, referenceDate: Date): number;
78
+ /**
79
+ * Parse a date value (that has already been validated)
80
+ * and return the epoch millis time.
81
+ */
82
+ export declare function parseDateValue(value: unknown, format: DateFormat | string | undefined, referenceDate: Date): number;
83
+ /**
84
+ * Format the parsed date value
85
+ */
86
+ export declare function formatDateValue(value: Date | number | DateTuple, format: DateFormat | string | undefined): string | number;
87
+ export declare const getDurationFunc: {
88
+ milliseconds: typeof differenceInMilliseconds;
89
+ seconds: typeof differenceInSeconds;
90
+ minutes: typeof differenceInMinutes;
91
+ hours: typeof differenceInHours;
92
+ days: typeof differenceInDays;
93
+ calendarDays: typeof differenceInCalendarDays;
94
+ businessDays: typeof differenceInBusinessDays;
95
+ weeks: typeof differenceInWeeks;
96
+ calendarWeeks: typeof differenceInCalendarISOWeeks;
97
+ months: typeof differenceInMonths;
98
+ calendarMonths: typeof differenceInCalendarMonths;
99
+ quarters: typeof differenceInQuarters;
100
+ calendarQuarters: typeof differenceInCalendarQuarters;
101
+ years: typeof differenceInYears;
102
+ calendarYears: typeof differenceInCalendarYears;
103
+ calendarISOWeekYears: typeof differenceInCalendarISOWeekYears;
104
+ ISOWeekYears: typeof differenceInISOWeekYears;
105
+ };
106
+ export declare function getTimeBetween(input: unknown, args: GetTimeBetweenArgs): string | number;
107
+ /**
108
+ * A functional version of getTimeBetween
109
+ */
110
+ export declare function getTimeBetweenFP(args: GetTimeBetweenArgs): (input: unknown) => string | number;
111
+ export declare function isSunday(input: unknown): boolean;
112
+ export declare function isMonday(input: unknown): boolean;
113
+ export declare function isTuesday(input: unknown): boolean;
114
+ export declare function isWednesday(input: unknown): boolean;
115
+ export declare function isThursday(input: unknown): boolean;
116
+ export declare function isFriday(input: unknown): boolean;
117
+ export declare function isSaturday(input: unknown): boolean;
118
+ export declare function isWeekday(input: unknown): boolean;
119
+ export declare function isWeekend(input: unknown): boolean;
120
+ export declare function isFuture(input: unknown): boolean;
121
+ export declare function isPast(input: unknown): boolean;
122
+ export declare function isLeapYear(input: unknown): boolean;
123
+ export declare function isTomorrow(input: unknown): boolean;
124
+ export declare function isToday(input: unknown): boolean;
125
+ export declare function isYesterday(input: unknown): boolean;
126
+ export type AdjustDateArgs = {
127
+ readonly expr: string;
128
+ } | {
129
+ readonly years?: number;
130
+ readonly months?: number;
131
+ readonly weeks?: number;
132
+ readonly days?: number;
133
+ readonly hours?: number;
134
+ readonly minutes?: number;
135
+ readonly seconds?: number;
136
+ readonly milliseconds?: number;
137
+ };
138
+ export declare function addToDate(input: unknown, args: AdjustDateArgs): number;
139
+ export declare function addToDateFP(args: AdjustDateArgs): (input: unknown) => number;
140
+ export declare function subtractFromDate(input: unknown, args: AdjustDateArgs): number;
141
+ export declare function subtractFromDateFP(args: AdjustDateArgs): (input: unknown) => number;
142
+ export declare function isBefore(input: unknown, date: DateInputTypes): boolean;
143
+ export declare function isAfter(input: unknown, date: DateInputTypes): boolean;
144
+ export declare function isBetween(input: unknown, args: {
145
+ start: DateInputTypes;
146
+ end: DateInputTypes;
147
+ }): boolean;
148
+ /** Given a timezone, it will return the minutes of its offset from UTC time */
149
+ export declare function timezoneToOffset(timezone: unknown): number;
150
+ /** Given a date and timezone, it will return the offset from UTC in minutes.
151
+ * This is more accurate than timezoneToOffset as it can better account for day lights saving time
152
+ * */
153
+ export declare function getTimezoneOffset(input: unknown, timezone: string): number;
154
+ /** Given a timezone, it will return a function that will take in dates that will
155
+ * be converted the offset in minutes. This is more accurate than timezoneToOffset
156
+ * as it can better account for day lights saving time
157
+ * */
158
+ export declare function getTimezoneOffsetFP(timezone: string): (input: unknown) => number;
159
+ export declare function setMilliseconds(ms: number): (input: unknown) => number;
160
+ export declare function setSeconds(seconds: number): (input: unknown) => number;
161
+ export declare function setMinutes(minutes: number): (input: unknown) => number;
162
+ export declare function setHours(hours: number): (input: unknown) => number;
163
+ export declare function setDate(date: number): (input: unknown) => number;
164
+ export declare function setMonth(month: number): (input: unknown) => number;
165
+ export declare function setYear(year: number): (input: unknown) => number;
166
+ export declare function getMilliseconds(input: unknown): number;
167
+ export declare function getSeconds(input: unknown): number;
168
+ export declare function getUTCMinutes(input: unknown): number;
169
+ export declare function getMinutes(input: unknown): number;
170
+ export declare function getUTCHours(input: unknown): number;
171
+ export declare function getHours(input: unknown): number;
172
+ export declare function getUTCDate(input: unknown): number;
173
+ export declare function getDate(input: unknown): number;
174
+ export declare function getUTCMonth(input: unknown): number;
175
+ export declare function getMonth(input: unknown): number;
176
+ export declare function getUTCYear(input: unknown): number;
177
+ export declare function getYear(input: unknown): number;
178
+ /** Will convert a date to its epoch millisecond format or throw if invalid */
179
+ export declare function toEpochMSOrThrow(input: unknown): DateTuple | number;
180
+ //# sourceMappingURL=dates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../src/dates.ts"],"names":[],"mappings":"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"}