jssm 5.65.4 → 5.65.5

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.
@@ -1,10 +1,52 @@
1
+ /*******
2
+ *
3
+ * Predicate for validating an array for uniqueness. Not generally meant for
4
+ * external use.
5
+ *
6
+ */
1
7
  declare function arr_uniq_p<T>(el: T, i: number, source: T[]): boolean;
2
8
  declare const array_box_if_string: (n: any) => any;
3
9
  declare const weighted_rand_select: Function;
4
- declare const seq: Function;
10
+ /*******
11
+ *
12
+ * Returns, for a non-negative integer argument `n`, the series `[0 .. n]`.
13
+ *
14
+ * ```typescript
15
+ * import { seq } from './jssm';
16
+ *
17
+ * seq(5); // [0, 1, 2, 3, 4]
18
+ * seq(0); // []
19
+ * ```
20
+ *
21
+ */
22
+ declare function seq(n: number): number[];
23
+ /*******
24
+ *
25
+ * Returns the histograph of an array as a `Map`. Makes no attempt to cope
26
+ * with deep equality; will fail for complex contents, as such.
27
+ *
28
+ * ```typescript
29
+ * import { histograph } from './jssm';
30
+ *
31
+ * histograph( [0, 0, 1, 1, 2, 2, 1] ); // Map()
32
+ * ```
33
+ *
34
+ */
5
35
  declare const histograph: Function;
6
36
  declare const weighted_sample_select: Function;
7
37
  declare const weighted_histo_key: Function;
38
+ /*******
39
+ *
40
+ * Internal method generating names for edges for the hook lookup map. Not
41
+ * meant for external use.
42
+ *
43
+ */
8
44
  declare const hook_name: (from: string, to: string) => string;
45
+ /*******
46
+ *
47
+ * Internal method generating names for actions for the hook lookup map. Not
48
+ * meant for external use.
49
+ *
50
+ */
9
51
  declare const named_hook_name: (from: string, to: string, action: string) => string;
10
52
  export { seq, arr_uniq_p, histograph, weighted_histo_key, weighted_rand_select, weighted_sample_select, array_box_if_string, hook_name, named_hook_name };
@@ -1,3 +1,9 @@
1
+ /*******
2
+ *
3
+ * Predicate for validating an array for uniqueness. Not generally meant for
4
+ * external use.
5
+ *
6
+ */
1
7
  function arr_uniq_p(el, i, source) {
2
8
  return source.indexOf(el) === i;
3
9
  }
@@ -17,8 +23,41 @@ const weighted_rand_select = (options, probability_property = 'probability') =>
17
23
  return options[cursor - 1];
18
24
  };
19
25
  /* eslint-enable flowtype/no-weak-types */
20
- const seq = (n) => (new Array(n)).fill(true)
21
- .map((_, i) => i);
26
+ /*******
27
+ *
28
+ * Returns, for a non-negative integer argument `n`, the series `[0 .. n]`.
29
+ *
30
+ * ```typescript
31
+ * import { seq } from './jssm';
32
+ *
33
+ * seq(5); // [0, 1, 2, 3, 4]
34
+ * seq(0); // []
35
+ * ```
36
+ *
37
+ */
38
+ function seq(n) {
39
+ if (!(Number.isInteger(n))) {
40
+ throw new TypeError('seq/1 takes a non-negative integer n as an argument');
41
+ }
42
+ if (n < 0) {
43
+ throw new TypeError('seq/1 takes a non-negative integer n as an argument');
44
+ }
45
+ return (new Array(n))
46
+ .fill(true)
47
+ .map((_, i) => i);
48
+ }
49
+ /*******
50
+ *
51
+ * Returns the histograph of an array as a `Map`. Makes no attempt to cope
52
+ * with deep equality; will fail for complex contents, as such.
53
+ *
54
+ * ```typescript
55
+ * import { histograph } from './jssm';
56
+ *
57
+ * histograph( [0, 0, 1, 1, 2, 2, 1] ); // Map()
58
+ * ```
59
+ *
60
+ */
22
61
  const histograph = (ar) => // eslint-disable-line flowtype/no-weak-types
23
62
  ar.sort()
24
63
  .reduce((m, v) => // TODO FIXME eslint-disable-line flowtype/no-weak-types,no-sequences
@@ -31,6 +70,18 @@ const weighted_histo_key = (n, opts, prob_prop, extract) => // TODO FIXME no any
31
70
  histograph(weighted_sample_select(n, opts, prob_prop)
32
71
  .map((s) => s[extract] // TODO FIXME eslint-disable-line flowtype/no-weak-types
33
72
  ));
73
+ /*******
74
+ *
75
+ * Internal method generating names for edges for the hook lookup map. Not
76
+ * meant for external use.
77
+ *
78
+ */
34
79
  const hook_name = (from, to) => JSON.stringify([from, to]);
80
+ /*******
81
+ *
82
+ * Internal method generating names for actions for the hook lookup map. Not
83
+ * meant for external use.
84
+ *
85
+ */
35
86
  const named_hook_name = (from, to, action) => JSON.stringify([from, to, action]);
36
87
  export { seq, arr_uniq_p, histograph, weighted_histo_key, weighted_rand_select, weighted_sample_select, array_box_if_string, hook_name, named_hook_name };
@@ -1,2 +1,2 @@
1
- const version = "5.65.4";
1
+ const version = "5.65.5";
2
2
  export { version };