@dashkite/joy 0.3.16 → 0.5.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.
@@ -1,155 +1,146 @@
1
- var camelCase, capitalize, collapse, dash, dashed, dashes, dquote, elide, enclose, endsWith, fromBase, gloss, isBlank, isMatch, match, normalize, pad, padEnd, padStart, parseNumber, quote, repeat, replace, snakeCase, split, squote, startsWith, template, titleCase, toBase, toLower, toLowerCase, toString, toUpper, toUpperCase, trim, trimEnd, trimStart, truncate, uncase, underscore, underscored, underscores, w, words;
2
- import { curry, pipe, detach } from "./function.js";
3
- import { isString, isNumber, isBigInt } from "./type.js";
4
- import { isEmpty } from "./value.js";
5
-
6
- toString = function (x) {
7
- return x.toString();
1
+ var camelCase, capitalize, collapse, dash, dashed, dashes, dquote, elide, enclose, endsWith, fromBase, gloss, hyphenate, interpolate, isBlank, isMatch, match, normalize, pad, padEnd, padStart, parseNumber, quote, repeat, replace, snakeCase, split, squote, startsWith, titleCase, toBase, toLower, toLowerCase, toString, toUpper, toUpperCase, trim, trimEnd, trimStart, truncate, uncase, underscore, underscored, underscores, w, words;
2
+ import { curry, pipe, detach } from "./function";
3
+ import { isString, isNumber, isBigInt } from "./type";
4
+ import { isEmpty } from "./value";
5
+ toString = function(x) {
6
+ return x.toString();
8
7
  };
9
-
10
- toBase = curry(function (radix, number) {
11
- if (isNumber(radix) && (isNumber(number) || isBigInt(number))) {
12
- if (2 <= radix && radix <= 36) {
13
- return number.toString(radix);
8
+ toBase = curry(function(radix, number) {
9
+ if (isNumber(radix) && (isNumber(number) || isBigInt(number))) {
10
+ if (2 <= radix && radix <= 36) {
11
+ return number.toString(radix);
12
+ } else {
13
+ throw new TypeError("toBase: radix must between 2 and 36");
14
+ }
14
15
  } else {
15
- throw new TypeError("toBase: radix must between 2 and 36");
16
+ throw new TypeError("toBase: arguments must be numbers");
16
17
  }
17
- } else {
18
- throw new TypeError("toBase: arguments must be numbers");
19
- }
20
18
  });
21
- fromBase = curry(function (radix, string) {
22
- return Number.parseInt(string, radix);
19
+ fromBase = curry(function(radix, string) {
20
+ return Number.parseInt(string, radix);
23
21
  });
24
-
25
- parseNumber = function (string) {
26
- return Number(string);
22
+ parseNumber = function(string) {
23
+ return Number(string);
27
24
  };
28
-
29
- match = curry(function (pattern, string) {
30
- return string.match(pattern);
25
+ match = curry(function(pattern, string) {
26
+ return string.match(pattern);
31
27
  });
32
- isMatch = curry(function (pattern, string) {
33
- return pattern.test(string);
28
+ isMatch = curry(function(pattern, string) {
29
+ return pattern.test(string);
34
30
  });
35
- replace = curry(function (pattern, replacement, string) {
36
- return string.replace(pattern, replacement);
31
+ replace = curry(function(pattern, replacement, string) {
32
+ return string.replace(pattern, replacement);
37
33
  });
38
34
  toUpperCase = toUpper = detach(String.prototype.toUpperCase);
39
35
  toLowerCase = toLower = detach(String.prototype.toLowerCase);
40
36
  trim = detach(String.prototype.trim);
41
37
  trimStart = detach(String.prototype.trimStart);
42
38
  trimEnd = detach(String.prototype.trimEnd);
43
-
44
- collapse = function (s) {
45
- return replace(/\s+/g, " ", trim(s));
46
- }; // adapted from https://github.com/VitorLuizC/normalize-text
47
-
48
-
49
- normalize = function (string) {
50
- return string.normalize("NFKD").replace(/[\u0300-\u036F]/g, "");
39
+ collapse = function(s) {
40
+ return replace(/\s+/g, " ", trim(s));
51
41
  };
52
-
53
- uncase = pipe([replace(/^[A-Z]/g, function (c) {
54
- return c.toLowerCase();
55
- }), replace(/[A-Z]/g, function (c) {
56
- return ` ${c.toLowerCase()}`;
57
- }), replace(/[_-]/g, " ")]);
58
- gloss = pipe([normalize, collapse, toLowerCase, replace(/[^A-Za-z0-9 ]+/g, "")]);
59
- camelCase = pipe([uncase, gloss, replace(/\s\w/g, pipe([trim, toUpperCase]))]);
60
- dashed = dashes = dash = pipe([uncase, gloss, replace(/\s/g, function (s) {
61
- return "-";
62
- })]);
63
- underscored = underscores = underscore = snakeCase = pipe([uncase, gloss, replace(/\s/g, function (s) {
64
- return "_";
65
- })]);
66
-
67
- capitalize = function (string) {
68
- return toUpperCase(string[0]) + string.slice(1);
42
+ // adapted from https://github.com/VitorLuizC/normalize-text
43
+ normalize = function(string) {
44
+ return string.normalize("NFKD").replace(/[\u0300-\u036F]/g, "");
45
+ };
46
+ uncase = pipe([
47
+ replace(/^[A-Z]/g, function(c) {
48
+ return c.toLowerCase();
49
+ }),
50
+ replace(/[A-Z]/g, function(c) {
51
+ return ` ${c.toLowerCase()}`;
52
+ }),
53
+ replace(/[_-]/g, " ")
54
+ ]);
55
+ gloss = pipe([
56
+ normalize,
57
+ collapse,
58
+ toLowerCase,
59
+ replace(/[^A-Za-z0-9 ]+/g, "")
60
+ ]);
61
+ camelCase = pipe([
62
+ uncase,
63
+ gloss,
64
+ replace(/\s\w/g, pipe([
65
+ trim,
66
+ toUpperCase
67
+ ]))
68
+ ]);
69
+ dashed = dashes = dash = hyphenate = pipe([
70
+ uncase,
71
+ gloss,
72
+ replace(/\s/g, function(s) {
73
+ return "-";
74
+ })
75
+ ]);
76
+ underscored = underscores = underscore = snakeCase = pipe([
77
+ uncase,
78
+ gloss,
79
+ replace(/\s/g, function(s) {
80
+ return "_";
81
+ })
82
+ ]);
83
+ capitalize = function(string) {
84
+ return toUpperCase(string[0]) + string.slice(1);
69
85
  };
70
-
71
86
  titleCase = replace(/\b\w/g, toUpperCase);
72
- startsWith = curry(function (target, string) {
73
- return string.startsWith(target);
87
+ startsWith = curry(function(target, string) {
88
+ return string.startsWith(target);
74
89
  });
75
- endsWith = curry(function (target, string) {
76
- return string.endsWith(target);
90
+ endsWith = curry(function(target, string) {
91
+ return string.endsWith(target);
77
92
  });
78
- padEnd = curry(function (n, padding, string) {
79
- return string.padEnd(n, padding);
93
+ padEnd = curry(function(n, padding, string) {
94
+ return string.padEnd(n, padding);
80
95
  });
81
- padStart = curry(function (n, padding, string) {
82
- return string.padStart(n, padding);
96
+ padStart = curry(function(n, padding, string) {
97
+ return string.padStart(n, padding);
83
98
  });
84
- pad = curry(function (n, padding, string) {
85
- return padStart(n, padding, padEnd(Math.ceil((n - string.length) / 2) + string.length, padding, string));
99
+ pad = curry(function(n, padding, string) {
100
+ return padStart(n, padding, padEnd(Math.ceil((n - string.length) / 2) + string.length, padding, string));
86
101
  });
87
- repeat = curry(function (n, string) {
88
- return string.repeat(n);
102
+ repeat = curry(function(n, string) {
103
+ return string.repeat(n);
89
104
  });
90
- enclose = curry(function (delimiter, string) {
91
- return function (_ref) {
92
- let {
93
- start,
94
- end
95
- } = _ref;
96
-
97
- if (delimiter.length > 1) {
98
- [start, end] = delimiter;
99
- } else {
100
- start = end = delimiter;
101
- }
102
-
103
- return start + string + end;
104
- }({});
105
+ enclose = curry(function(delimiter, string) {
106
+ return function({ start, end }) {
107
+ if (delimiter.length > 1) {
108
+ [start, end] = delimiter;
109
+ } else {
110
+ start = end = delimiter;
111
+ }
112
+ return start + string + end;
113
+ }({});
105
114
  });
106
115
  quote = dquote = enclose('"');
107
116
  squote = enclose("'");
108
- truncate = curry(function (n, string) {
109
- return string.slice(0, n);
117
+ truncate = curry(function(n, string) {
118
+ return string.slice(0, n);
110
119
  });
111
- elide = curry(function (n, end, string) {
112
- if (string.length > n) {
113
- return replace(/\W+\w*$/, end, truncate(n - end.length + 1, string));
114
- } else {
115
- return string;
116
- }
120
+ elide = curry(function(n, end, string) {
121
+ if (string.length > n) {
122
+ return replace(/\W+\w*$/, end, truncate(n - end.length + 1, string));
123
+ } else {
124
+ return string;
125
+ }
117
126
  });
118
- split = curry(function (re, s) {
119
- return s.split(re);
127
+ split = curry(function(re, s) {
128
+ return s.split(re);
120
129
  });
121
- w = words = pipe([trim, split(/\s+/)]);
122
-
123
- isBlank = function (s) {
124
- return isString(s) && isEmpty(s);
125
- };
126
-
127
- template = function (string) {
128
- let filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
129
- return function (_ref2) {
130
- let {
131
- key,
132
- apply
133
- } = _ref2;
134
- filters = Object.assign({}, {
135
- toString,
136
- toUpperCase,
137
- toLowerCase,
138
- trim
139
- }, filters);
140
-
141
- apply = function (string, name) {
142
- return filters[name](string);
143
- };
144
-
145
- return function (context) {
146
- return string.replace(/\{\{([^}]+)\}\}/g, function (_, target) {
147
- var names;
148
- [key, ...names] = target.split("|").map(trim);
149
- return names.reduce(apply, context[key]);
150
- });
151
- };
152
- }({});
130
+ w = words = pipe([
131
+ trim,
132
+ split(/\s+/)
133
+ ]);
134
+ isBlank = function(s) {
135
+ return isString(s) && isEmpty(s);
153
136
  };
137
+ interpolate = curry(function(template, context) {
138
+ var f, parameters;
139
+ parameters = Object.keys(context);
140
+ f = new Function(`{${parameters}}`, `return \`${template}\``);
141
+ return f(context);
142
+ });
143
+ export { toString, toBase, fromBase, parseNumber, toUpperCase, toLowerCase, collapse, normalize, uncase, gloss, camelCase, dashed, dashes, dash, hyphenate, underscored, underscores, underscore, snakeCase, capitalize, titleCase, trim, truncate, elide, enclose, quote, dquote, squote, startsWith, endsWith, pad, padEnd, padStart, repeat, split, w, words, isBlank, match, isMatch, replace, interpolate }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RleHQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsU0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsR0FBQSxFQUFBLE1BQUEsRUFBQSxRQUFBLEVBQUEsV0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxTQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQSxDQUFBLEVBQUE7O0FBQUEsT0FBQTtFQUFRLEtBQVI7RUFBZSxJQUFmO0VBQXFCLE1BQXJCO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVMsUUFBVDtFQUFtQixRQUFuQjtFQUE2QixRQUE3QjtDQUFBLE1BQUE7O0FBQ0EsT0FBQTtFQUFRLE9BQVI7Q0FBQSxNQUFBOztBQUVBLFFBQUEsR0FBVyxRQUFBLENBQUMsQ0FBRCxDQUFBO1NBQU8sQ0FBQyxDQUFDLFFBQUYsQ0FBQTtBQUFQOztBQUVYLE1BQUEsR0FBUyxLQUFBLENBQU0sUUFBQSxDQUFDLEtBQUQsRUFBUSxNQUFSLENBQUE7RUFDYixJQUFHLENBQUMsUUFBQSxDQUFTLEtBQVQsQ0FBRCxDQUFBLElBQW9CLENBQUMsQ0FBQyxRQUFBLENBQVMsTUFBVCxD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RjtFQTZCRSxVQTdCRjtFQThCRSxRQTlCRjtFQStCRSxHQS9CRjtFQWdDRSxNQWhDRjtFQWlDRSxRQWpDRjtFQWtDRSxNQWxDRjtFQW1DRSxLQW5DRjtFQW9DRSxDQXBDRjtFQXFDRSxLQXJDRjtFQXNDRSxPQXRDRjtFQXVDRSxLQXZDRjtFQXdDRSxPQXhDRjtFQXlDRSxPQXpDRjtFQTBDRSxXQTFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3VycnksIHBpcGUsIGRldGFjaH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzTnVtYmVyLCBpc0JpZ0ludCB9IGZyb20gXCIuL3R5cGVcIlxuaW1wb3J0IHtpc0VtcHR5fSBmcm9tIFwiLi92YWx1ZVwiXG5cbnRvU3RyaW5nID0gKHgpIC0+IHgudG9TdHJpbmcoKVxuXG50b0Jhc2UgPSBjdXJyeSAocmFkaXgsIG51bWJlcikgLT5cbiAgaWYgKGlzTnVtYmVyIHJhZGl4KSAmJiAoKGlzTnVtYmVyIG51bWJlcikgfHwgaXNCaWdJbnQgbnVtYmVyKVxuICAgIGlmIDIgPD0gcmFkaXggPD0gMzZcbiAgICAgIG51bWJlci50b1N0cmluZyByYWRpeFxuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IgXCJ0b0Jhc2U6IHJhZGl4IG11c3QgYmV0d2VlbiAyIGFuZCAzNlwiXG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiBhcmd1bWVudHMgbXVzdCBiZSBudW1iZXJzXCJcblxuZnJvbUJhc2UgPSBjdXJyeSAocmFkaXgsIHN0cmluZykgLT4gTnVtYmVyLnBhcnNlSW50IHN0cmluZywgcmFkaXhcblxucGFyc2VOdW1iZXIgPSAoc3RyaW5nKSAtPiBOdW1iZXIgc3RyaW5nXG5cbm1hdGNoID0gY3VycnkgKHBhdHRlcm4sIHN0cmluZykgLT4gc3RyaW5nLm1hdGNoIHBhdHRlcm5cblxuaXNNYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHBhdHRlcm4udGVzdCBzdHJpbmdcblxucmVwbGFjZSA9IGN1cnJ5IChwYXR0ZXJuLCByZXBsYWNlbWVudCwgc3RyaW5nKSAtPlxuICBzdHJpbmcucmVwbGFjZSBwYXR0ZXJuLCByZXBsYWNlbWVudFxuXG50b1VwcGVyQ2FzZSA9IHRvVXBwZXIgPSBkZXRhY2ggU3RyaW5nOjp0b1VwcGVyQ2FzZVxuXG50b0xvd2VyQ2FzZSA9IHRvTG93ZXIgPSBkZXRhY2ggU3RyaW5nOjp0b0xvd2VyQ2FzZVxuXG50cmltID0gZGV0YWNoIFN0cmluZzo6dHJpbVxuXG50cmltU3RhcnQgPSBkZXRhY2ggU3RyaW5nOjp0cmltU3RhcnRcblxudHJpbUVuZCA9IGRldGFjaCBTdHJpbmc6OnRyaW1FbmRcblxuY29sbGFwc2UgPSAocykgLT4gcmVwbGFjZSAvXFxzKy9nLCBcIiBcIiwgdHJpbSBzXG5cbiMgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXRvckx1aXpDL25vcm1hbGl6ZS10ZXh0XG5ub3JtYWxpemUgPSAoc3RyaW5nKSAtPlxuICBzdHJpbmdcbiAgLm5vcm1hbGl6ZSBcIk5GS0RcIlxuICAucmVwbGFjZSAvW1xcdTAzMDAtXFx1MDM2Rl0vZywgXCJcIlxuXG51bmNhc2UgPSBwaXBlIFtcbiAgcmVwbGFjZSAvXltBLVpdL2csIChjKSAtPiBjLnRvTG93ZXJDYXNlKClcbiAgcmVwbGFjZSAvW0EtWl0vZywgKGMpIC0+IFwiICN7Yy50b0xvd2VyQ2FzZSgpfVwiXG4gIHJlcGxhY2UgL1tfLV0vZywgXCIgXCJcbl1cblxuZ2xvc3MgPSBwaXBlIFtcbiAgbm9ybWFsaXplXG4gIGNvbGxhcHNlXG4gIHRvTG93ZXJDYXNlXG4gIHJlcGxhY2UgL1teQS1aYS16MC05IF0rL2csIFwiXCJcbl1cblxuY2FtZWxDYXNlID0gcGlwZSBbXG4gIHVuY2FzZVxuICBnbG9zc1xuICByZXBsYWNlIC9cXHNcXHcvZywgcGlwZSBbXG4gICAgdHJpbVxuICAgIHRvVXBwZXJDYXNlXG4gIF1cbl1cblxuZGFzaGVkID0gZGFzaGVzID0gZGFzaCA9IGh5cGhlbmF0ZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIi1cIlxuXVxuXG51bmRlcnNjb3JlZCA9IHVuZGVyc2NvcmVzID0gdW5kZXJzY29yZSA9IHNuYWtlQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIl9cIlxuXVxuXG5jYXBpdGFsaXplID0gKHN0cmluZykgLT4gKHRvVXBwZXJDYXNlIHN0cmluZ1swXSkgKyBzdHJpbmdbMS4uXVxuXG50aXRsZUNhc2UgPSByZXBsYWNlIC9cXGJcXHcvZywgdG9VcHBlckNhc2Vcblxuc3RhcnRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLnN0YXJ0c1dpdGggdGFyZ2V0XG5cbmVuZHNXaXRoID0gY3VycnkgKHRhcmdldCwgc3RyaW5nKSAtPiBzdHJpbmcuZW5kc1dpdGggdGFyZ2V0XG5cbnBhZEVuZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRFbmQgbiwgcGFkZGluZ1xuXG5wYWRTdGFydCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRTdGFydCBuLCBwYWRkaW5nXG5cbnBhZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+XG4gIHBhZFN0YXJ0IG4sIHBhZGRpbmcsXG4gICAgcGFkRW5kIChNYXRoLmNlaWwgKG4gLSBzdHJpbmcubGVuZ3RoKS8yKSArIHN0cmluZy5sZW5ndGgsIHBhZGRpbmcsIHN0cmluZ1xuXG5yZXBlYXQgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmcucmVwZWF0IG5cblxuZW5jbG9zZSA9IGN1cnJ5IChkZWxpbWl0ZXIsIHN0cmluZykgLT5cbiAgZG8gKHtzdGFydCwgZW5kfSA9IHt9KSAtPlxuICAgIGlmIGRlbGltaXRlci5sZW5ndGggPiAxXG4gICAgICBbIHN0YXJ0LCBlbmQgXSA9IGRlbGltaXRlclxuICAgIGVsc2VcbiAgICAgIHN0YXJ0ID0gZW5kID0gZGVsaW1pdGVyXG4gICAgc3RhcnQgKyBzdHJpbmcgKyBlbmRcblxucXVvdGUgPSBkcXVvdGUgPSBlbmNsb3NlICdcIidcblxuc3F1b3RlID0gZW5jbG9zZSBcIidcIlxuXG50cnVuY2F0ZSA9IGN1cnJ5IChuLCBzdHJpbmcpIC0+IHN0cmluZ1swLi4ubl1cblxuZWxpZGUgPSBjdXJyeSAobiwgZW5kLCBzdHJpbmcpIC0+XG4gIGlmIHN0cmluZy5sZW5ndGggPiBuXG4gICAgcmVwbGFjZSAvXFxXK1xcdyokLywgZW5kLCB0cnVuY2F0ZSBuIC0gZW5kLmxlbmd0aCArIDEsIHN0cmluZ1xuICBlbHNlXG4gICAgc3RyaW5nXG5cbnNwbGl0ID0gY3VycnkgKHJlLCBzKSAtPiBzLnNwbGl0IHJlXG5cbncgPSB3b3JkcyA9IHBpcGUgW1xuICB0cmltXG4gIHNwbGl0IC9cXHMrL1xuXVxuXG5pc0JsYW5rID0gKHMpIC0+IChpc1N0cmluZyBzKSAmJiAoaXNFbXB0eSBzKVxuXG5pbnRlcnBvbGF0ZSA9IGN1cnJ5ICggdGVtcGxhdGUsIGNvbnRleHQgKSAtPlxuICBwYXJhbWV0ZXJzID0gT2JqZWN0LmtleXMgY29udGV4dFxuICBmID0gbmV3IEZ1bmN0aW9uIFwieyN7IHBhcmFtZXRlcnMgfX1cIiwgXCJyZXR1cm4gYCN7IHRlbXBsYXRlIH1gXCJcbiAgZiBjb250ZXh0XG5cbmV4cG9ydCB7XG4gIHRvU3RyaW5nXG4gIHRvQmFzZVxuICBmcm9tQmFzZVxuICBwYXJzZU51bWJlclxuICB0b1VwcGVyQ2FzZVxuICB0b0xvd2VyQ2FzZVxuICBjb2xsYXBzZVxuICBub3JtYWxpemVcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIGNhbWVsQ2FzZVxuICBkYXNoZWRcbiAgZGFzaGVzXG4gIGRhc2hcbiAgaHlwaGVuYXRlXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl19
144
+ //# sourceURL=/@dashkite/joy/src/text.coffee
154
145
 
155
- export { toString, toBase, fromBase, parseNumber, toUpperCase, toLowerCase, collapse, normalize, uncase, gloss, camelCase, dashed, dashes, dash, underscored, underscores, underscore, snakeCase, capitalize, titleCase, trim, truncate, elide, enclose, quote, dquote, squote, startsWith, endsWith, pad, padEnd, padStart, repeat, split, w, words, isBlank, match, isMatch, replace, template };
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvdGV4dC5jb2ZmZWUiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3VycnksIHBpcGUsIGRldGFjaH0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzTnVtYmVyLCBpc0JpZ0ludCB9IGZyb20gXCIuL3R5cGVcIlxuaW1wb3J0IHtpc0VtcHR5fSBmcm9tIFwiLi92YWx1ZVwiXG5cbnRvU3RyaW5nID0gKHgpIC0+IHgudG9TdHJpbmcoKVxuXG50b0Jhc2UgPSBjdXJyeSAocmFkaXgsIG51bWJlcikgLT5cbiAgaWYgKGlzTnVtYmVyIHJhZGl4KSAmJiAoKGlzTnVtYmVyIG51bWJlcikgfHwgaXNCaWdJbnQgbnVtYmVyKVxuICAgIGlmIDIgPD0gcmFkaXggPD0gMzZcbiAgICAgIG51bWJlci50b1N0cmluZyByYWRpeFxuICAgIGVsc2VcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IgXCJ0b0Jhc2U6IHJhZGl4IG11c3QgYmV0d2VlbiAyIGFuZCAzNlwiXG4gIGVsc2VcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiBhcmd1bWVudHMgbXVzdCBiZSBudW1iZXJzXCJcblxuZnJvbUJhc2UgPSBjdXJyeSAocmFkaXgsIHN0cmluZykgLT4gTnVtYmVyLnBhcnNlSW50IHN0cmluZywgcmFkaXhcblxucGFyc2VOdW1iZXIgPSAoc3RyaW5nKSAtPiBOdW1iZXIgc3RyaW5nXG5cbm1hdGNoID0gY3VycnkgKHBhdHRlcm4sIHN0cmluZykgLT4gc3RyaW5nLm1hdGNoIHBhdHRlcm5cblxuaXNNYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHBhdHRlcm4udGVzdCBzdHJpbmdcblxucmVwbGFjZSA9IGN1cnJ5IChwYXR0ZXJuLCByZXBsYWNlbWVudCwgc3RyaW5nKSAtPlxuICBzdHJpbmcucmVwbGFjZSBwYXR0ZXJuLCByZXBsYWNlbWVudFxuXG50b1VwcGVyQ2FzZSA9IHRvVXBwZXIgPSBkZXRhY2ggU3RyaW5nOjp0b1VwcGVyQ2FzZVxuXG50b0xvd2VyQ2FzZSA9IHRvTG93ZXIgPSBkZXRhY2ggU3RyaW5nOjp0b0xvd2VyQ2FzZVxuXG50cmltID0gZGV0YWNoIFN0cmluZzo6dHJpbVxuXG50cmltU3RhcnQgPSBkZXRhY2ggU3RyaW5nOjp0cmltU3RhcnRcblxudHJpbUVuZCA9IGRldGFjaCBTdHJpbmc6OnRyaW1FbmRcblxuY29sbGFwc2UgPSAocykgLT4gcmVwbGFjZSAvXFxzKy9nLCBcIiBcIiwgdHJpbSBzXG5cbiMgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXRvckx1aXpDL25vcm1hbGl6ZS10ZXh0XG5ub3JtYWxpemUgPSAoc3RyaW5nKSAtPlxuICBzdHJpbmdcbiAgLm5vcm1hbGl6ZSBcIk5GS0RcIlxuICAucmVwbGFjZSAvW1xcdTAzMDAtXFx1MDM2Rl0vZywgXCJcIlxuXG51bmNhc2UgPSBwaXBlIFtcbiAgcmVwbGFjZSAvXltBLVpdL2csIChjKSAtPiBjLnRvTG93ZXJDYXNlKClcbiAgcmVwbGFjZSAvW0EtWl0vZywgKGMpIC0+IFwiICN7Yy50b0xvd2VyQ2FzZSgpfVwiXG4gIHJlcGxhY2UgL1tfLV0vZywgXCIgXCJcbl1cblxuZ2xvc3MgPSBwaXBlIFtcbiAgbm9ybWFsaXplXG4gIGNvbGxhcHNlXG4gIHRvTG93ZXJDYXNlXG4gIHJlcGxhY2UgL1teQS1aYS16MC05IF0rL2csIFwiXCJcbl1cblxuY2FtZWxDYXNlID0gcGlwZSBbXG4gIHVuY2FzZVxuICBnbG9zc1xuICByZXBsYWNlIC9cXHNcXHcvZywgcGlwZSBbXG4gICAgdHJpbVxuICAgIHRvVXBwZXJDYXNlXG4gIF1cbl1cblxuZGFzaGVkID0gZGFzaGVzID0gZGFzaCA9IGh5cGhlbmF0ZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIi1cIlxuXVxuXG51bmRlcnNjb3JlZCA9IHVuZGVyc2NvcmVzID0gdW5kZXJzY29yZSA9IHNuYWtlQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzL2csIChzKSAtPiBcIl9cIlxuXVxuXG5jYXBpdGFsaXplID0gKHN0cmluZykgLT4gKHRvVXBwZXJDYXNlIHN0cmluZ1swXSkgKyBzdHJpbmdbMS4uXVxuXG50aXRsZUNhc2UgPSByZXBsYWNlIC9cXGJcXHcvZywgdG9VcHBlckNhc2Vcblxuc3RhcnRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLnN0YXJ0c1dpdGggdGFyZ2V0XG5cbmVuZHNXaXRoID0gY3VycnkgKHRhcmdldCwgc3RyaW5nKSAtPiBzdHJpbmcuZW5kc1dpdGggdGFyZ2V0XG5cbnBhZEVuZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRFbmQgbiwgcGFkZGluZ1xuXG5wYWRTdGFydCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+IHN0cmluZy5wYWRTdGFydCBuLCBwYWRkaW5nXG5cbnBhZCA9IGN1cnJ5IChuLCBwYWRkaW5nLCBzdHJpbmcpIC0+XG4gIHBhZFN0YXJ0IG4sIHBhZGRpbmcsXG4gICAgcGFkRW5kIChNYXRoLmNlaWwgKG4gLSBzdHJpbmcubGVuZ3RoKS8yKSArIHN0cmluZy5sZW5ndGgsIHBhZGRpbmcsIHN0cmluZ1xuXG5yZXBlYXQgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmcucmVwZWF0IG5cblxuZW5jbG9zZSA9IGN1cnJ5IChkZWxpbWl0ZXIsIHN0cmluZykgLT5cbiAgZG8gKHtzdGFydCwgZW5kfSA9IHt9KSAtPlxuICAgIGlmIGRlbGltaXRlci5sZW5ndGggPiAxXG4gICAgICBbIHN0YXJ0LCBlbmQgXSA9IGRlbGltaXRlclxuICAgIGVsc2VcbiAgICAgIHN0YXJ0ID0gZW5kID0gZGVsaW1pdGVyXG4gICAgc3RhcnQgKyBzdHJpbmcgKyBlbmRcblxucXVvdGUgPSBkcXVvdGUgPSBlbmNsb3NlICdcIidcblxuc3F1b3RlID0gZW5jbG9zZSBcIidcIlxuXG50cnVuY2F0ZSA9IGN1cnJ5IChuLCBzdHJpbmcpIC0+IHN0cmluZ1swLi4ubl1cblxuZWxpZGUgPSBjdXJyeSAobiwgZW5kLCBzdHJpbmcpIC0+XG4gIGlmIHN0cmluZy5sZW5ndGggPiBuXG4gICAgcmVwbGFjZSAvXFxXK1xcdyokLywgZW5kLCB0cnVuY2F0ZSBuIC0gZW5kLmxlbmd0aCArIDEsIHN0cmluZ1xuICBlbHNlXG4gICAgc3RyaW5nXG5cbnNwbGl0ID0gY3VycnkgKHJlLCBzKSAtPiBzLnNwbGl0IHJlXG5cbncgPSB3b3JkcyA9IHBpcGUgW1xuICB0cmltXG4gIHNwbGl0IC9cXHMrL1xuXVxuXG5pc0JsYW5rID0gKHMpIC0+IChpc1N0cmluZyBzKSAmJiAoaXNFbXB0eSBzKVxuXG5pbnRlcnBvbGF0ZSA9IGN1cnJ5ICggdGVtcGxhdGUsIGNvbnRleHQgKSAtPlxuICBwYXJhbWV0ZXJzID0gT2JqZWN0LmtleXMgY29udGV4dFxuICBmID0gbmV3IEZ1bmN0aW9uIFwieyN7IHBhcmFtZXRlcnMgfX1cIiwgXCJyZXR1cm4gYCN7IHRlbXBsYXRlIH1gXCJcbiAgZiBjb250ZXh0XG5cbmV4cG9ydCB7XG4gIHRvU3RyaW5nXG4gIHRvQmFzZVxuICBmcm9tQmFzZVxuICBwYXJzZU51bWJlclxuICB0b1VwcGVyQ2FzZVxuICB0b0xvd2VyQ2FzZVxuICBjb2xsYXBzZVxuICBub3JtYWxpemVcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIGNhbWVsQ2FzZVxuICBkYXNoZWRcbiAgZGFzaGVzXG4gIGRhc2hcbiAgaHlwaGVuYXRlXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsU0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLEVBQUEsT0FBQSxFQUFBLEtBQUEsRUFBQSxTQUFBLEVBQUEsR0FBQSxFQUFBLE1BQUEsRUFBQSxRQUFBLEVBQUEsV0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsTUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxTQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLFdBQUEsRUFBQSxDQUFBLEVBQUE7QUFBQSxPQUFBLEVBQVEsS0FBUixFQUFlLElBQWYsRUFBcUIsTUFBckIsUUFBQSxhQUFBO0FBQ0EsT0FBQSxFQUFTLFFBQVQsRUFBbUIsUUFBbkIsRUFBNkIsUUFBN0IsUUFBQSxTQUFBO0FBQ0EsT0FBQSxFQUFRLE9BQVIsUUFBQSxVQUFBO0FBRUEsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7V0FBTyxDQUFDLENBQUMsUUFBRixDQUFBO0FBQVA7QUFFWCxNQUFBLEdBQVMsS0FBQSxDQUFNLFFBQUEsQ0FBQyxLQUFELEVBQVEsTUFBUixDQUFBO0lBQ2IsSUFBRyxBQUFDLFFBQUEsQ0FBUyxLQUFULENBQUQsQ0FBQSxJ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
@@ -1,36 +1,105 @@
1
- var benchmark, milliseconds, sleep, timer;
2
- import { curry } from "./function.js";
3
- timer = curry(function (interval, action) {
4
- var id;
5
- id = setTimeout(action, interval);
6
- return function () {
7
- return clearTimeout(id);
8
- };
1
+ var benchmark, debounce, expect, frame, measure, milliseconds, sleep, timer;
2
+ import { curry } from "./function";
3
+ timer = curry(function(interval, action) {
4
+ var id;
5
+ id = setTimeout(action, interval);
6
+ return function() {
7
+ return clearTimeout(id);
8
+ };
9
9
  });
10
-
11
- sleep = function (interval) {
12
- return new Promise(function (resolve) {
13
- return setTimeout(resolve, interval);
14
- });
10
+ sleep = function(interval) {
11
+ return new Promise(function(resolve) {
12
+ return setTimeout(resolve, interval);
13
+ });
15
14
  };
16
-
17
- milliseconds = typeof performance !== "undefined" && performance !== null ? function () {
18
- return performance.now();
19
- } : function () {
20
- return Date.now();
15
+ milliseconds = typeof performance !== "undefined" && performance !== null ? function() {
16
+ return performance.now();
17
+ } : function() {
18
+ return Date.now();
21
19
  };
22
-
23
- benchmark = function (f) {
24
- var r, ref, start;
25
- start = milliseconds();
26
-
27
- if (((ref = r = f()) != null ? ref.then : void 0) != null) {
28
- return r.then(function () {
29
- return milliseconds() - start;
20
+ benchmark = async function(task) {
21
+ return (await measure("anonymous", task)).duration;
22
+ };
23
+ measure = function(name, task) {
24
+ return function({ finish, measure, result }) {
25
+ performance.mark(`${name}-start`);
26
+ finish = function() {
27
+ performance.mark(`${name}-finish`);
28
+ measure = performance.measure(`${name}`, `${name}-start`, `${name}-finish`);
29
+ return measure;
30
+ };
31
+ result = task();
32
+ if (result.then != null) {
33
+ return result.then(finish);
34
+ } else {
35
+ return finish();
36
+ }
37
+ }({});
38
+ };
39
+ debounce = function(last) {
40
+ return function(interval, f) {
41
+ return function() {
42
+ var now;
43
+ now = Date.now();
44
+ if (now - last > interval) {
45
+ last = now;
46
+ return f();
47
+ }
48
+ };
49
+ };
50
+ }(0);
51
+ // from Wayland
52
+ frame = function() {
53
+ return new Promise(function(resolve) {
54
+ return queueMicrotask(resolve);
30
55
  });
31
- } else {
32
- return milliseconds() - start;
33
- }
34
56
  };
57
+ // we're forced to use Date.now below
58
+ // because Node doesn't include it as a global
59
+ expect = function() {
60
+ var args;
61
+ args = arguments;
62
+ return function({ options, predicate, start, result, done }) {
63
+ [options, predicate] = function() {
64
+ switch(args.length){
65
+ case 1:
66
+ return [
67
+ {},
68
+ ...args
69
+ ];
70
+ case 2:
71
+ return args;
72
+ default:
73
+ throw new Error("expect: invalid arguments");
74
+ }
75
+ }();
76
+ if (options.timeout == null) {
77
+ options.timeout = 1000;
78
+ }
79
+ start = Date.now();
80
+ done = function() {
81
+ return (result = predicate()) || Date.now() - start > options.timeout;
82
+ };
83
+ result = false;
84
+ return new Promise(async function(resolve) {
85
+ while(!done()){
86
+ await sleep(1);
87
+ }
88
+ return resolve(result);
89
+ });
90
+ }({});
91
+ };
92
+ export { sleep, timer, milliseconds, benchmark, measure, debounce, frame, expect };
93
+ export default {
94
+ sleep,
95
+ timer,
96
+ milliseconds,
97
+ benchmark,
98
+ measure,
99
+ debounce,
100
+ frame,
101
+ expect
102
+ }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RpbWUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFFBQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxZQUFBLEVBQUEsS0FBQSxFQUFBOztBQUFBLE9BQUE7RUFBUSxLQUFSO0NBQUEsTUFBQTs7QUFFQSxLQUFBLEdBQVEsS0FBQSxDQUFNLFFBQUEsQ0FBQyxRQUFELEVBQVcsTUFBWCxDQUFBO0FBQ2QsTUFBQTtFQUFFLEVBQUEsR0FBSyxVQUFBLENBQVcsTUFBWCxFQUFtQixRQUFuQjtTQUNMLFFBQUEsQ0FBQSxDQUFBO1dBQUcsWUFBQSxDQUFjLEVBQWQ7RUFBSDtBQUZZLENBQU47O0FBSVIsS0FBQSxHQUFRLFFBQUEsQ0FBQyxRQUFELENBQUE7U0FDTixJQUFJLE9BQUosQ0FBWSxRQUFBLENBQUMsT0FBRCxDQUFBO1dBQWEsVUFBQSxDQUFXLE9BQVgsRUFBb0IsUUFBcEI7RUFBYixDQUFaO0FBRE07O0FBR1IsWUFBQSxHQUNLLDBEQUFILEdBQ0UsUUFBQSxDQUFBLENBQUE7U0FBRyxXQUFXLENBQUMsR0FBWixDQUFBO0FBQUgsQ0FERixHQUdFLFFBQUEsQ0FBQSxDQUFBO1NBQUcsSUFBSSxDQUFDLEdBQUwsQ0FBQTtBQUFIOztBQUVKLFNBQUEsR0FBWSxNQUFBLFFBQUEsQ0FBRSxJQUFGLENBQUE7U0FDVixDQUFFLENBQUEsTUFBTSxPQUFBLENBQVEsV0FBUixFQUFxQixJQUFyQixDQUFOLENBQUYsQ0FDRSxDQUFDO0FBRk87O0FBSVosT0FBQSxHQUFVLFFBQUEsQ0FBRSxJQUFGLEVBQVEsSUFBUixDQUFBO1NBQ0wsQ0FBQSxRQUFBLENBQUMsQ0FBRSxNQUFGLEVBQVUsT0FBVixFQUFtQixNQUFuQixDQUFELENBQUE7SUFDRCxXQUFXLENBQUMsSUFBWixDQUFpQixDQUFBLENBQUEsQ0FBSSxJQUFKLENBQUEsTUFBQSxDQUFqQjtJQUNBLE1BQUEsR0FBUyxRQUFBLENBQUEsQ0FBQTtNQUNQLFdBQVcsQ0FBQyxJQUFaLENBQWlCLENBQUEsQ0FBQSxDQUFJLElBQUosQ0FBQSxPQUFBLENBQWpCO01BQ0EsT0FBQSxHQUFVLFdBQVcsQ0FBQyxPQUFaLENBQW9CLENBQUEsQ0FBQSxDQUFJLElBQUosQ0FBQSxDQUFwQixFQUNSLENBQUEsQ0FBQSxDQUFJLElBQUosQ0FBQSxNQUFBLENBRFEsRUFDVyxDQUFBLENBQUEsQ0FBSSxJQUFKLENBQUEsT0FBQSxDQURYO2FBRVY7SUFKTztJQUtULE1BQUEsR0FBUyxJQUFBLENBQUE7SUFDVCxJQUFHLG1CQUFIO2FBQXVCLE1BQU0sQ0FBQyxJQUFQLENBQVksTUFBWixFQUF2QjtLQUFBLE1BQUE7YUFBaUQsTUFBQSxDQUFBLEVBQWpEOztFQVJDLENBQUEsRUFBK0IsQ0FBQTtBQUQxQjs7QUFXVixRQUFBLEdBQWMsQ0FBQSxRQUFBLENBQUUsSUFBRixDQUFBO1NBQ1osUUFBQSxDQUFFLFFBQUYsRUFBWSxDQUFaLENBQUE7V0FBbUIsUUFBQSxDQUFBLENBQUE7QUFDckIsVUFBQTtNQUFJLEdBQUEsR0FBTSxJQUFJLENBQUMsR0FBTCxDQUFBO01BQ04sSUFBRyxDQUFFLEdBQUEsR0FBTSxJQUFSLENBQUEsR0FBaUIsUUFBcEI7UUFDRSxJQUFBLEdBQU87ZUFDSixJQUZMOztJQUZpQjtFQUFuQjtBQURZLENBQUEsRUFBUyxHQTlCdkI7OztBQXdDQSxLQUFBLEdBQVEsUUFBQSxDQUFBLENBQUE7U0FDTixJQUFJLE9BQUosQ0FBWSxRQUFBLENBQUUsT0FBRixDQUFBO1dBQ1YsY0FBQSxDQUFlLE9BQWY7RUFEVSxDQUFaO0FBRE0sRUF4Q1I7Ozs7QUE4Q0EsTUFBQSxHQUFTLFFBQUEsQ0FBQSxDQUFBO0FBQ1QsTUFBQTtFQUFFLElBQUEsR0FBTztTQUNKLENBQUEsUUFBQSxDQUFDLENBQUUsT0FBRixFQUFXLFNBQVgsRUFBc0IsS0FBdEIsRUFBNkIsTUFBN0IsRUFBcUMsSUFBckMsQ0FBRCxDQUFBO0lBRUQsQ0FBRSxPQUFGLEVBQVcsU0FBWCxDQUFBO0FBQXlCLGNBQU8sSUFBSSxDQUFDLE1BQVo7QUFBQSxhQUNsQixDQURrQjtpQkFDWCxDQUFDLENBQUEsQ0FBRCxFQUFLLEdBQUEsSUFBTDtBQURXLGFBRWxCLENBRmtCO2lCQUVYO0FBRlc7VUFHbEIsTUFBTSxJQUFJLEtBQUosQ0FBVSwyQkFBVjtBQUhZOzs7TUFLekIsT0FBTyxDQUFDLFVBQVc7O0lBQ25CLEtBQUEsR0FBUSxJQUFJLENBQUMsR0FBTCxDQUFBO0lBRVIsSUFBQSxHQUFPLFFBQUEsQ0FBQSxDQUFBO2FBQ0wsQ0FBRSxNQUFBLEdBQVMsU0FBQSxDQUFBLENBQVgsQ0FBQSxJQUNFLENBQUMsQ0FBRSxJQUFJLENBQUMsR0FBTCxDQUFBLENBQUEsR0FBYSxLQUFmLENBQUEsR0FBeUIsT0FBTyxDQUFDLE9BQWxDO0lBRkc7SUFJUCxNQUFBLEdBQVM7V0FFVCxJQUFJLE9BQUosQ0FBWSxNQUFBLFFBQUEsQ0FBRSxPQUFGLENBQUE7QUFDVixhQUF1QixDQUFDLElBQUEsQ0FBQSxDQUF4QjtRQUFFLENBQUEsTUFBTSxLQUFBLENBQU0sQ0FBTixDQUFOO01BQUY7YUFDQSxPQUFBLENBQVEsTUFBUjtJQUZVLENBQVo7RUFoQkMsQ0FBQSxFQUErQyxDQUFBO0FBRjNDOztBQXNCVCxPQUFBO0VBQ0UsS0FERjtFQUVFLEtBRkY7RUFHRSxZQUhGO0VBSUUsU0FKRjtFQUtFLE9BTEY7RUFNRSxRQU5GO0VBT0UsS0FQRjtFQVFFLE1BUkY7OztBQVdBLE9BQUEsUUFBZSxDQUNiLEtBRGEsRUFFYixLQUZhLEVBR2IsWUFIYSxFQUliLFNBSmEsRUFLYixPQUxhLEVBTWIsUUFOYSxFQU9iLEtBUGEsRUFRYixNQVJhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdXJyeX0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuXG50aW1lciA9IGN1cnJ5IChpbnRlcnZhbCwgYWN0aW9uKSAtPlxuICBpZCA9IHNldFRpbWVvdXQoYWN0aW9uLCBpbnRlcnZhbClcbiAgLT4gY2xlYXJUaW1lb3V0KCBpZCApXG5cbnNsZWVwID0gKGludGVydmFsKSAtPlxuICBuZXcgUHJvbWlzZSAocmVzb2x2ZSkgLT4gc2V0VGltZW91dCByZXNvbHZlLCBpbnRlcnZhbFxuXG5taWxsaXNlY29uZHMgPVxuICBpZiBwZXJmb3JtYW5jZT9cbiAgICAtPiBwZXJmb3JtYW5jZS5ub3coKVxuICBlbHNlXG4gICAgLT4gRGF0ZS5ub3coKVxuXG5iZW5jaG1hcmsgPSAoIHRhc2sgKSAtPlxuICAoIGF3YWl0IG1lYXN1cmUgXCJhbm9ueW1vdXNcIiwgdGFzayApXG4gICAgLmR1cmF0aW9uXG5cbm1lYXN1cmUgPSAoIG5hbWUsIHRhc2sgKSAtPlxuICBkbyAoeyBmaW5pc2gsIG1lYXN1cmUsIHJlc3VsdCB9ID0ge30pIC0+XG4gICAgcGVyZm9ybWFuY2UubWFyayBcIiN7IG5hbWUgfS1zdGFydFwiXG4gICAgZmluaXNoID0gLT5cbiAgICAgIHBlcmZvcm1hbmNlLm1hcmsgXCIjeyBuYW1lIH0tZmluaXNoXCJcbiAgICAgIG1lYXN1cmUgPSBwZXJmb3JtYW5jZS5tZWFzdXJlIFwiI3sgbmFtZSB9XCIsIFxuICAgICAgICBcIiN7IG5hbWUgfS1zdGFydFwiLCBcIiN7IG5hbWUgfS1maW5pc2hcIlxuICAgICAgbWVhc3VyZVxuICAgIHJlc3VsdCA9IHRhc2soKVxuICAgIGlmIHJlc3VsdC50aGVuPyB0aGVuICggcmVzdWx0LnRoZW4gZmluaXNoICkgZWxzZSBmaW5pc2goKVxuXG5kZWJvdW5jZSA9IGRvICggbGFzdCA9IDAgKSAtPlxuICAoIGludGVydmFsLCBmICkgLT4gLT5cbiAgICBub3cgPSBEYXRlLm5vdygpXG4gICAgaWYgKCBub3cgLSBsYXN0ICkgPiBpbnRlcnZhbFxuICAgICAgbGFzdCA9IG5vd1xuICAgICAgZG8gZlxuXG5cbiMgZnJvbSBXYXlsYW5kXG5cbmZyYW1lID0gLT5cbiAgbmV3IFByb21pc2UgKCByZXNvbHZlICkgLT5cbiAgICBxdWV1ZU1pY3JvdGFzayByZXNvbHZlXG5cbiMgd2UncmUgZm9yY2VkIHRvIHVzZSBEYXRlLm5vdyBiZWxvd1xuIyBiZWNhdXNlIE5vZGUgZG9lc24ndCBpbmNsdWRlIGl0IGFzIGEgZ2xvYmFsXG5leHBlY3QgPSAtPlxuICBhcmdzID0gYXJndW1lbnRzXG4gIGRvICh7IG9wdGlvbnMsIHByZWRpY2F0ZSwgc3RhcnQsIHJlc3VsdCwgZG9uZSB9ID0ge30pIC0+XG5cbiAgICBbIG9wdGlvbnMsIHByZWRpY2F0ZSBdID0gc3dpdGNoIGFyZ3MubGVuZ3RoXG4gICAgICB3aGVuIDEgdGhlbiBbe30sIGFyZ3MuLi4gXVxuICAgICAgd2hlbiAyIHRoZW4gYXJnc1xuICAgICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IgXCJleHBlY3Q6IGludmFsaWQgYXJndW1lbnRzXCJcblxuICAgIG9wdGlvbnMudGltZW91dCA/PSAxMDAwXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpXG5cbiAgICBkb25lID0gLT5cbiAgICAgICggcmVzdWx0ID0gcHJlZGljYXRlKCkpIHx8XG4gICAgICAgICgoIERhdGUubm93KCkgLSBzdGFydCApID4gb3B0aW9ucy50aW1lb3V0IClcblxuICAgIHJlc3VsdCA9IGZhbHNlXG5cbiAgICBuZXcgUHJvbWlzZSAoIHJlc29sdmUgKSAtPlxuICAgICAgKCBhd2FpdCBzbGVlcCAxKSB3aGlsZSAhZG9uZSgpXG4gICAgICByZXNvbHZlIHJlc3VsdFxuXG5leHBvcnQge1xuICBzbGVlcFxuICB0aW1lclxuICBtaWxsaXNlY29uZHNcbiAgYmVuY2htYXJrXG4gIG1lYXN1cmVcbiAgZGVib3VuY2VcbiAgZnJhbWVcbiAgZXhwZWN0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2xlZXBcbiAgdGltZXJcbiAgbWlsbGlzZWNvbmRzXG4gIGJlbmNobWFya1xuICBtZWFzdXJlXG4gIGRlYm91bmNlXG4gIGZyYW1lXG4gIGV4cGVjdFxufVxuIl19
103
+ //# sourceURL=/@dashkite/joy/src/time.coffee
35
104
 
36
- export { sleep, timer, milliseconds, benchmark };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyIvQGRhc2hraXRlL2pveS9zcmMvdGltZS5jb2ZmZWUiXSwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3Vycnl9IGZyb20gXCIuL2Z1bmN0aW9uXCJcblxudGltZXIgPSBjdXJyeSAoaW50ZXJ2YWwsIGFjdGlvbikgLT5cbiAgaWQgPSBzZXRUaW1lb3V0KGFjdGlvbiwgaW50ZXJ2YWwpXG4gIC0+IGNsZWFyVGltZW91dCggaWQgKVxuXG5zbGVlcCA9IChpbnRlcnZhbCkgLT5cbiAgbmV3IFByb21pc2UgKHJlc29sdmUpIC0+IHNldFRpbWVvdXQgcmVzb2x2ZSwgaW50ZXJ2YWxcblxubWlsbGlzZWNvbmRzID1cbiAgaWYgcGVyZm9ybWFuY2U/XG4gICAgLT4gcGVyZm9ybWFuY2Uubm93KClcbiAgZWxzZVxuICAgIC0+IERhdGUubm93KClcblxuYmVuY2htYXJrID0gKCB0YXNrICkgLT5cbiAgKCBhd2FpdCBtZWFzdXJlIFwiYW5vbnltb3VzXCIsIHRhc2sgKVxuICAgIC5kdXJhdGlvblxuXG5tZWFzdXJlID0gKCBuYW1lLCB0YXNrICkgLT5cbiAgZG8gKHsgZmluaXNoLCBtZWFzdXJlLCByZXN1bHQgfSA9IHt9KSAtPlxuICAgIHBlcmZvcm1hbmNlLm1hcmsgXCIjeyBuYW1lIH0tc3RhcnRcIlxuICAgIGZpbmlzaCA9IC0+XG4gICAgICBwZXJmb3JtYW5jZS5tYXJrIFwiI3sgbmFtZSB9LWZpbmlzaFwiXG4gICAgICBtZWFzdXJlID0gcGVyZm9ybWFuY2UubWVhc3VyZSBcIiN7IG5hbWUgfVwiLCBcbiAgICAgICAgXCIjeyBuYW1lIH0tc3RhcnRcIiwgXCIjeyBuYW1lIH0tZmluaXNoXCJcbiAgICAgIG1lYXN1cmVcbiAgICByZXN1bHQgPSB0YXNrKClcbiAgICBpZiByZXN1bHQudGhlbj8gdGhlbiAoIHJlc3VsdC50aGVuIGZpbmlzaCApIGVsc2UgZmluaXNoKClcblxuZGVib3VuY2UgPSBkbyAoIGxhc3QgPSAwICkgLT5cbiAgKCBpbnRlcnZhbCwgZiApIC0+IC0+XG4gICAgbm93ID0gRGF0ZS5ub3coKVxuICAgIGlmICggbm93IC0gbGFzdCApID4gaW50ZXJ2YWxcbiAgICAgIGxhc3QgPSBub3dcbiAgICAgIGRvIGZcblxuXG4jIGZyb20gV2F5bGFuZFxuXG5mcmFtZSA9IC0+XG4gIG5ldyBQcm9taXNlICggcmVzb2x2ZSApIC0+XG4gICAgcXVldWVNaWNyb3Rhc2sgcmVzb2x2ZVxuXG4jIHdlJ3JlIGZvcmNlZCB0byB1c2UgRGF0ZS5ub3cgYmVsb3dcbiMgYmVjYXVzZSBOb2RlIGRvZXNuJ3QgaW5jbHVkZSBpdCBhcyBhIGdsb2JhbFxuZXhwZWN0ID0gLT5cbiAgYXJncyA9IGFyZ3VtZW50c1xuICBkbyAoeyBvcHRpb25zLCBwcmVkaWNhdGUsIHN0YXJ0LCByZXN1bHQsIGRvbmUgfSA9IHt9KSAtPlxuXG4gICAgWyBvcHRpb25zLCBwcmVkaWNhdGUgXSA9IHN3aXRjaCBhcmdzLmxlbmd0aFxuICAgICAgd2hlbiAxIHRoZW4gW3t9LCBhcmdzLi4uIF1cbiAgICAgIHdoZW4gMiB0aGVuIGFyZ3NcbiAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yIFwiZXhwZWN0OiBpbnZhbGlkIGFyZ3VtZW50c1wiXG5cbiAgICBvcHRpb25zLnRpbWVvdXQgPz0gMTAwMFxuICAgIHN0YXJ0ID0gRGF0ZS5ub3coKVxuXG4gICAgZG9uZSA9IC0+XG4gICAgICAoIHJlc3VsdCA9IHByZWRpY2F0ZSgpKSB8fFxuICAgICAgICAoKCBEYXRlLm5vdygpIC0gc3RhcnQgKSA+IG9wdGlvbnMudGltZW91dCApXG5cbiAgICByZXN1bHQgPSBmYWxzZVxuXG4gICAgbmV3IFByb21pc2UgKCByZXNvbHZlICkgLT5cbiAgICAgICggYXdhaXQgc2xlZXAgMSkgd2hpbGUgIWRvbmUoKVxuICAgICAgcmVzb2x2ZSByZXN1bHRcblxuZXhwb3J0IHtcbiAgc2xlZXBcbiAgdGltZXJcbiAgbWlsbGlzZWNvbmRzXG4gIGJlbmNobWFya1xuICBtZWFzdXJlXG4gIGRlYm91bmNlXG4gIGZyYW1lXG4gIGV4cGVjdFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNsZWVwXG4gIHRpbWVyXG4gIG1pbGxpc2Vjb25kc1xuICBiZW5jaG1hcmtcbiAgbWVhc3VyZVxuICBkZWJvdW5jZVxuICBmcmFtZVxuICBleHBlY3Rcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsWUFBQSxFQUFBLEtBQUEsRUFBQTtBQUFBLE9BQUEsRUFBUSxLQUFSLFFBQUEsYUFBQTtBQUVBLEtBQUEsR0FBUSxLQUFBLENBQU0sUUFBQSxDQUFDLFFBQUQsRUFBVyxNQUFYLENBQUE7SUFDZCxJQUFBO0lBQUUsRUFBQSxHQUFLLFVBQUEsQ0FBVyxNQUFYLEVBQW1CLFFBQW5CO1dBQ0wsUUFBQSxDQUFBLENBQUE7ZUFBRyxZQUFBLENBQWMsRUFBZDtJQUFIO0FBRlksQ0FBTjtBQUlSLEtBQUEsR0FBUSxRQUFBLENBQUMsUUFBRCxDQUFBO1dBQ04sSUFBSSxPQUFKLENBQVksUUFBQSxDQUFDLE9BQUQsQ0FBQTtlQUFhLFVBQUEsQ0FBVyxPQUFYLEVBQW9CLFFBQXBCO0lBQWIsQ0FBWjtBQURNO0FBR1IsWUFBQSxHQUNLLE9BQUEsZ0JBQUEsZUFBQSxnQkFBQSxJQUFILEdBQ0UsUUFBQSxDQUFBLENBQUE7V0FBRyxXQUFXLENBQUMsR0FBWixDQUFBO0FBQUgsQ0FERixHQUdFLFFBQUEsQ0FBQSxDQUFBO1dBQUcsSUFBSSxDQUFDLEdBQUwsQ0FBQTtBQUFIO0FBRUosU0FBQSxHQUFZLE1BQUEsUUFBQSxDQUFFLElBQUYsQ0FBQTtXQUNWLENBQUUsTUFBTSxPQUFBLENBQVEsV0FBUixFQUFxQixLQUFyQixDQUFOLENBQUYsQUFDRyxDQUFELE9BQUM7QUFGTztBQUlaLE9BQUEsR0FBVSxRQUFBLENBQUUsSUFBRixFQUFRLElBQVIsQ0FBQTtXQUNMLFFBQUEsQ0FBQyxFQUFFLE1BQUYs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