@dashkite/joy 0.3.16 → 0.4.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, 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 = 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, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RleHQuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsS0FBQSxFQUFBLFNBQUEsRUFBQSxHQUFBLEVBQUEsTUFBQSxFQUFBLFFBQUEsRUFBQSxXQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBQUEsU0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQSxFQUFBLFdBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLENBQUEsRUFBQTs7QUFBQSxPQUFBO0VBQVEsS0FBUjtFQUFlLElBQWY7RUFBcUIsTUFBckI7Q0FBQSxNQUFBOztBQUNBLE9BQUE7RUFBUyxRQUFUO0VBQW1CLFFBQW5CO0VBQTZCLFFBQTdCO0NBQUEsTUFBQTs7QUFDQSxPQUFBO0VBQVEsT0FBUjtDQUFBLE1BQUE7O0FBRUEsUUFBQSxHQUFXLFFBQUEsQ0FBQyxDQUFELENBQUE7U0FBTyxDQUFDLENBQUMsUUFBRixDQUFBO0FBQVA7O0FBRVgsTUFBQSxHQUFTLEtBQUEsQ0FBTSxRQUFBLENBQUMsS0FBRCxFQUFRLE1BQVIsQ0FBQTtFQUNiLElBQUcsQ0FBQyxRQUFBLENBQVMsS0FBVCxDQUFELENBQUEsSUFBb0IsQ0FBQyxDQUFDLFFBQUEsQ0FBUyxNQUFULENBQUQsQ0FBQSxJ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R0E5QkY7RUErQkUsTUEvQkY7RUFnQ0UsUUFoQ0Y7RUFpQ0UsTUFqQ0Y7RUFrQ0UsS0FsQ0Y7RUFtQ0UsQ0FuQ0Y7RUFvQ0UsS0FwQ0Y7RUFxQ0UsT0FyQ0Y7RUFzQ0UsS0F0Q0Y7RUF1Q0UsT0F2Q0Y7RUF3Q0UsT0F4Q0Y7RUF5Q0UsV0F6Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBwaXBlLCBkZXRhY2h9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7IGlzU3RyaW5nLCBpc051bWJlciwgaXNCaWdJbnQgfSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcIi4vdmFsdWVcIlxuXG50b1N0cmluZyA9ICh4KSAtPiB4LnRvU3RyaW5nKClcblxudG9CYXNlID0gY3VycnkgKHJhZGl4LCBudW1iZXIpIC0+XG4gIGlmIChpc051bWJlciByYWRpeCkgJiYgKChpc051bWJlciBudW1iZXIpIHx8IGlzQmlnSW50IG51bWJlcilcbiAgICBpZiAyIDw9IHJhZGl4IDw9IDM2XG4gICAgICBudW1iZXIudG9TdHJpbmcgcmFkaXhcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiByYWRpeCBtdXN0IGJldHdlZW4gMiBhbmQgMzZcIlxuICBlbHNlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvciBcInRvQmFzZTogYXJndW1lbnRzIG11c3QgYmUgbnVtYmVyc1wiXG5cbmZyb21CYXNlID0gY3VycnkgKHJhZGl4LCBzdHJpbmcpIC0+IE51bWJlci5wYXJzZUludCBzdHJpbmcsIHJhZGl4XG5cbnBhcnNlTnVtYmVyID0gKHN0cmluZykgLT4gTnVtYmVyIHN0cmluZ1xuXG5tYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHN0cmluZy5tYXRjaCBwYXR0ZXJuXG5cbmlzTWF0Y2ggPSBjdXJyeSAocGF0dGVybiwgc3RyaW5nKSAtPiBwYXR0ZXJuLnRlc3Qgc3RyaW5nXG5cbnJlcGxhY2UgPSBjdXJyeSAocGF0dGVybiwgcmVwbGFjZW1lbnQsIHN0cmluZykgLT5cbiAgc3RyaW5nLnJlcGxhY2UgcGF0dGVybiwgcmVwbGFjZW1lbnRcblxudG9VcHBlckNhc2UgPSB0b1VwcGVyID0gZGV0YWNoIFN0cmluZzo6dG9VcHBlckNhc2VcblxudG9Mb3dlckNhc2UgPSB0b0xvd2VyID0gZGV0YWNoIFN0cmluZzo6dG9Mb3dlckNhc2VcblxudHJpbSA9IGRldGFjaCBTdHJpbmc6OnRyaW1cblxudHJpbVN0YXJ0ID0gZGV0YWNoIFN0cmluZzo6dHJpbVN0YXJ0XG5cbnRyaW1FbmQgPSBkZXRhY2ggU3RyaW5nOjp0cmltRW5kXG5cbmNvbGxhcHNlID0gKHMpIC0+IHJlcGxhY2UgL1xccysvZywgXCIgXCIsIHRyaW0gc1xuXG4jIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vVml0b3JMdWl6Qy9ub3JtYWxpemUtdGV4dFxubm9ybWFsaXplID0gKHN0cmluZykgLT5cbiAgc3RyaW5nXG4gIC5ub3JtYWxpemUgXCJORktEXCJcbiAgLnJlcGxhY2UgL1tcXHUwMzAwLVxcdTAzNkZdL2csIFwiXCJcblxudW5jYXNlID0gcGlwZSBbXG4gIHJlcGxhY2UgL15bQS1aXS9nLCAoYykgLT4gYy50b0xvd2VyQ2FzZSgpXG4gIHJlcGxhY2UgL1tBLVpdL2csIChjKSAtPiBcIiAje2MudG9Mb3dlckNhc2UoKX1cIlxuICByZXBsYWNlIC9bXy1dL2csIFwiIFwiXG5dXG5cbmdsb3NzID0gcGlwZSBbXG4gIG5vcm1hbGl6ZVxuICBjb2xsYXBzZVxuICB0b0xvd2VyQ2FzZVxuICByZXBsYWNlIC9bXkEtWmEtejAtOSBdKy9nLCBcIlwiXG5dXG5cbmNhbWVsQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzXFx3L2csIHBpcGUgW1xuICAgIHRyaW1cbiAgICB0b1VwcGVyQ2FzZVxuICBdXG5dXG5cbmRhc2hlZCA9IGRhc2hlcyA9IGRhc2ggPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCItXCJcbl1cblxudW5kZXJzY29yZWQgPSB1bmRlcnNjb3JlcyA9IHVuZGVyc2NvcmUgPSBzbmFrZUNhc2UgPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCJfXCJcbl1cblxuY2FwaXRhbGl6ZSA9IChzdHJpbmcpIC0+ICh0b1VwcGVyQ2FzZSBzdHJpbmdbMF0pICsgc3RyaW5nWzEuLl1cblxudGl0bGVDYXNlID0gcmVwbGFjZSAvXFxiXFx3L2csIHRvVXBwZXJDYXNlXG5cbnN0YXJ0c1dpdGggPSBjdXJyeSAodGFyZ2V0LCBzdHJpbmcpIC0+IHN0cmluZy5zdGFydHNXaXRoIHRhcmdldFxuXG5lbmRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLmVuZHNXaXRoIHRhcmdldFxuXG5wYWRFbmQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkRW5kIG4sIHBhZGRpbmdcblxucGFkU3RhcnQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkU3RhcnQgbiwgcGFkZGluZ1xuXG5wYWQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPlxuICBwYWRTdGFydCBuLCBwYWRkaW5nLFxuICAgIHBhZEVuZCAoTWF0aC5jZWlsIChuIC0gc3RyaW5nLmxlbmd0aCkvMikgKyBzdHJpbmcubGVuZ3RoLCBwYWRkaW5nLCBzdHJpbmdcblxucmVwZWF0ID0gY3VycnkgKG4sIHN0cmluZykgLT4gc3RyaW5nLnJlcGVhdCBuXG5cbmVuY2xvc2UgPSBjdXJyeSAoZGVsaW1pdGVyLCBzdHJpbmcpIC0+XG4gIGRvICh7c3RhcnQsIGVuZH0gPSB7fSkgLT5cbiAgICBpZiBkZWxpbWl0ZXIubGVuZ3RoID4gMVxuICAgICAgWyBzdGFydCwgZW5kIF0gPSBkZWxpbWl0ZXJcbiAgICBlbHNlXG4gICAgICBzdGFydCA9IGVuZCA9IGRlbGltaXRlclxuICAgIHN0YXJ0ICsgc3RyaW5nICsgZW5kXG5cbnF1b3RlID0gZHF1b3RlID0gZW5jbG9zZSAnXCInXG5cbnNxdW90ZSA9IGVuY2xvc2UgXCInXCJcblxudHJ1bmNhdGUgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmdbMC4uLm5dXG5cbmVsaWRlID0gY3VycnkgKG4sIGVuZCwgc3RyaW5nKSAtPlxuICBpZiBzdHJpbmcubGVuZ3RoID4gblxuICAgIHJlcGxhY2UgL1xcVytcXHcqJC8sIGVuZCwgdHJ1bmNhdGUgbiAtIGVuZC5sZW5ndGggKyAxLCBzdHJpbmdcbiAgZWxzZVxuICAgIHN0cmluZ1xuXG5zcGxpdCA9IGN1cnJ5IChyZSwgcykgLT4gcy5zcGxpdCByZVxuXG53ID0gd29yZHMgPSBwaXBlIFtcbiAgdHJpbVxuICBzcGxpdCAvXFxzKy9cbl1cblxuaXNCbGFuayA9IChzKSAtPiAoaXNTdHJpbmcgcykgJiYgKGlzRW1wdHkgcylcblxuaW50ZXJwb2xhdGUgPSBjdXJyeSAoIHRlbXBsYXRlLCBjb250ZXh0ICkgLT5cbiAgcGFyYW1ldGVycyA9IE9iamVjdC5rZXlzIGNvbnRleHRcbiAgZiA9IG5ldyBGdW5jdGlvbiBcInsjeyBwYXJhbWV0ZXJzIH19XCIsIFwicmV0dXJuIGAjeyB0ZW1wbGF0ZSB9YFwiXG4gIGYgY29udGV4dFxuXG5leHBvcnQge1xuICB0b1N0cmluZ1xuICB0b0Jhc2VcbiAgZnJvbUJhc2VcbiAgcGFyc2VOdW1iZXJcbiAgdG9VcHBlckNhc2VcbiAgdG9Mb3dlckNhc2VcbiAgY29sbGFwc2VcbiAgbm9ybWFsaXplXG4gIHVuY2FzZVxuICBnbG9zc1xuICBjYW1lbENhc2VcbiAgZGFzaGVkXG4gIGRhc2hlc1xuICBkYXNoXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl19
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9AZGFzaGtpdGUvam95L3NyYy90ZXh0LmNvZmZlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5LCBwaXBlLCBkZXRhY2h9IGZyb20gXCIuL2Z1bmN0aW9uXCJcbmltcG9ydCB7IGlzU3RyaW5nLCBpc051bWJlciwgaXNCaWdJbnQgfSBmcm9tIFwiLi90eXBlXCJcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcIi4vdmFsdWVcIlxuXG50b1N0cmluZyA9ICh4KSAtPiB4LnRvU3RyaW5nKClcblxudG9CYXNlID0gY3VycnkgKHJhZGl4LCBudW1iZXIpIC0+XG4gIGlmIChpc051bWJlciByYWRpeCkgJiYgKChpc051bWJlciBudW1iZXIpIHx8IGlzQmlnSW50IG51bWJlcilcbiAgICBpZiAyIDw9IHJhZGl4IDw9IDM2XG4gICAgICBudW1iZXIudG9TdHJpbmcgcmFkaXhcbiAgICBlbHNlXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yIFwidG9CYXNlOiByYWRpeCBtdXN0IGJldHdlZW4gMiBhbmQgMzZcIlxuICBlbHNlXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvciBcInRvQmFzZTogYXJndW1lbnRzIG11c3QgYmUgbnVtYmVyc1wiXG5cbmZyb21CYXNlID0gY3VycnkgKHJhZGl4LCBzdHJpbmcpIC0+IE51bWJlci5wYXJzZUludCBzdHJpbmcsIHJhZGl4XG5cbnBhcnNlTnVtYmVyID0gKHN0cmluZykgLT4gTnVtYmVyIHN0cmluZ1xuXG5tYXRjaCA9IGN1cnJ5IChwYXR0ZXJuLCBzdHJpbmcpIC0+IHN0cmluZy5tYXRjaCBwYXR0ZXJuXG5cbmlzTWF0Y2ggPSBjdXJyeSAocGF0dGVybiwgc3RyaW5nKSAtPiBwYXR0ZXJuLnRlc3Qgc3RyaW5nXG5cbnJlcGxhY2UgPSBjdXJyeSAocGF0dGVybiwgcmVwbGFjZW1lbnQsIHN0cmluZykgLT5cbiAgc3RyaW5nLnJlcGxhY2UgcGF0dGVybiwgcmVwbGFjZW1lbnRcblxudG9VcHBlckNhc2UgPSB0b1VwcGVyID0gZGV0YWNoIFN0cmluZzo6dG9VcHBlckNhc2VcblxudG9Mb3dlckNhc2UgPSB0b0xvd2VyID0gZGV0YWNoIFN0cmluZzo6dG9Mb3dlckNhc2VcblxudHJpbSA9IGRldGFjaCBTdHJpbmc6OnRyaW1cblxudHJpbVN0YXJ0ID0gZGV0YWNoIFN0cmluZzo6dHJpbVN0YXJ0XG5cbnRyaW1FbmQgPSBkZXRhY2ggU3RyaW5nOjp0cmltRW5kXG5cbmNvbGxhcHNlID0gKHMpIC0+IHJlcGxhY2UgL1xccysvZywgXCIgXCIsIHRyaW0gc1xuXG4jIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vVml0b3JMdWl6Qy9ub3JtYWxpemUtdGV4dFxubm9ybWFsaXplID0gKHN0cmluZykgLT5cbiAgc3RyaW5nXG4gIC5ub3JtYWxpemUgXCJORktEXCJcbiAgLnJlcGxhY2UgL1tcXHUwMzAwLVxcdTAzNkZdL2csIFwiXCJcblxudW5jYXNlID0gcGlwZSBbXG4gIHJlcGxhY2UgL15bQS1aXS9nLCAoYykgLT4gYy50b0xvd2VyQ2FzZSgpXG4gIHJlcGxhY2UgL1tBLVpdL2csIChjKSAtPiBcIiAje2MudG9Mb3dlckNhc2UoKX1cIlxuICByZXBsYWNlIC9bXy1dL2csIFwiIFwiXG5dXG5cbmdsb3NzID0gcGlwZSBbXG4gIG5vcm1hbGl6ZVxuICBjb2xsYXBzZVxuICB0b0xvd2VyQ2FzZVxuICByZXBsYWNlIC9bXkEtWmEtejAtOSBdKy9nLCBcIlwiXG5dXG5cbmNhbWVsQ2FzZSA9IHBpcGUgW1xuICB1bmNhc2VcbiAgZ2xvc3NcbiAgcmVwbGFjZSAvXFxzXFx3L2csIHBpcGUgW1xuICAgIHRyaW1cbiAgICB0b1VwcGVyQ2FzZVxuICBdXG5dXG5cbmRhc2hlZCA9IGRhc2hlcyA9IGRhc2ggPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCItXCJcbl1cblxudW5kZXJzY29yZWQgPSB1bmRlcnNjb3JlcyA9IHVuZGVyc2NvcmUgPSBzbmFrZUNhc2UgPSBwaXBlIFtcbiAgdW5jYXNlXG4gIGdsb3NzXG4gIHJlcGxhY2UgL1xccy9nLCAocykgLT4gXCJfXCJcbl1cblxuY2FwaXRhbGl6ZSA9IChzdHJpbmcpIC0+ICh0b1VwcGVyQ2FzZSBzdHJpbmdbMF0pICsgc3RyaW5nWzEuLl1cblxudGl0bGVDYXNlID0gcmVwbGFjZSAvXFxiXFx3L2csIHRvVXBwZXJDYXNlXG5cbnN0YXJ0c1dpdGggPSBjdXJyeSAodGFyZ2V0LCBzdHJpbmcpIC0+IHN0cmluZy5zdGFydHNXaXRoIHRhcmdldFxuXG5lbmRzV2l0aCA9IGN1cnJ5ICh0YXJnZXQsIHN0cmluZykgLT4gc3RyaW5nLmVuZHNXaXRoIHRhcmdldFxuXG5wYWRFbmQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkRW5kIG4sIHBhZGRpbmdcblxucGFkU3RhcnQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPiBzdHJpbmcucGFkU3RhcnQgbiwgcGFkZGluZ1xuXG5wYWQgPSBjdXJyeSAobiwgcGFkZGluZywgc3RyaW5nKSAtPlxuICBwYWRTdGFydCBuLCBwYWRkaW5nLFxuICAgIHBhZEVuZCAoTWF0aC5jZWlsIChuIC0gc3RyaW5nLmxlbmd0aCkvMikgKyBzdHJpbmcubGVuZ3RoLCBwYWRkaW5nLCBzdHJpbmdcblxucmVwZWF0ID0gY3VycnkgKG4sIHN0cmluZykgLT4gc3RyaW5nLnJlcGVhdCBuXG5cbmVuY2xvc2UgPSBjdXJyeSAoZGVsaW1pdGVyLCBzdHJpbmcpIC0+XG4gIGRvICh7c3RhcnQsIGVuZH0gPSB7fSkgLT5cbiAgICBpZiBkZWxpbWl0ZXIubGVuZ3RoID4gMVxuICAgICAgWyBzdGFydCwgZW5kIF0gPSBkZWxpbWl0ZXJcbiAgICBlbHNlXG4gICAgICBzdGFydCA9IGVuZCA9IGRlbGltaXRlclxuICAgIHN0YXJ0ICsgc3RyaW5nICsgZW5kXG5cbnF1b3RlID0gZHF1b3RlID0gZW5jbG9zZSAnXCInXG5cbnNxdW90ZSA9IGVuY2xvc2UgXCInXCJcblxudHJ1bmNhdGUgPSBjdXJyeSAobiwgc3RyaW5nKSAtPiBzdHJpbmdbMC4uLm5dXG5cbmVsaWRlID0gY3VycnkgKG4sIGVuZCwgc3RyaW5nKSAtPlxuICBpZiBzdHJpbmcubGVuZ3RoID4gblxuICAgIHJlcGxhY2UgL1xcVytcXHcqJC8sIGVuZCwgdHJ1bmNhdGUgbiAtIGVuZC5sZW5ndGggKyAxLCBzdHJpbmdcbiAgZWxzZVxuICAgIHN0cmluZ1xuXG5zcGxpdCA9IGN1cnJ5IChyZSwgcykgLT4gcy5zcGxpdCByZVxuXG53ID0gd29yZHMgPSBwaXBlIFtcbiAgdHJpbVxuICBzcGxpdCAvXFxzKy9cbl1cblxuaXNCbGFuayA9IChzKSAtPiAoaXNTdHJpbmcgcykgJiYgKGlzRW1wdHkgcylcblxuaW50ZXJwb2xhdGUgPSBjdXJyeSAoIHRlbXBsYXRlLCBjb250ZXh0ICkgLT5cbiAgcGFyYW1ldGVycyA9IE9iamVjdC5rZXlzIGNvbnRleHRcbiAgZiA9IG5ldyBGdW5jdGlvbiBcInsjeyBwYXJhbWV0ZXJzIH19XCIsIFwicmV0dXJuIGAjeyB0ZW1wbGF0ZSB9YFwiXG4gIGYgY29udGV4dFxuXG5leHBvcnQge1xuICB0b1N0cmluZ1xuICB0b0Jhc2VcbiAgZnJvbUJhc2VcbiAgcGFyc2VOdW1iZXJcbiAgdG9VcHBlckNhc2VcbiAgdG9Mb3dlckNhc2VcbiAgY29sbGFwc2VcbiAgbm9ybWFsaXplXG4gIHVuY2FzZVxuICBnbG9zc1xuICBjYW1lbENhc2VcbiAgZGFzaGVkXG4gIGRhc2hlc1xuICBkYXNoXG4gIHVuZGVyc2NvcmVkXG4gIHVuZGVyc2NvcmVzXG4gIHVuZGVyc2NvcmVcbiAgc25ha2VDYXNlXG4gIGNhcGl0YWxpemVcbiAgdGl0bGVDYXNlXG4gIHRyaW1cbiAgdHJ1bmNhdGVcbiAgZWxpZGVcbiAgZW5jbG9zZVxuICBxdW90ZVxuICBkcXVvdGVcbiAgc3F1b3RlXG4gIHN0YXJ0c1dpdGhcbiAgZW5kc1dpdGhcbiAgcGFkXG4gIHBhZEVuZFxuICBwYWRTdGFydFxuICByZXBlYXRcbiAgc3BsaXRcbiAgd1xuICB3b3Jkc1xuICBpc0JsYW5rXG4gIG1hdGNoXG4gIGlzTWF0Y2hcbiAgcmVwbGFjZVxuICBpbnRlcnBvbGF0ZVxufVxuIl0sIm5hbWVzIjpbImNhbWVsQ2FzZSIsImNhcGl0YWxpemUiLCJjb2xsYXBzZSIsImRhc2giLCJkYXNoZWQiLCJkYXNoZXMiLCJkcXVvdGUiLCJlbGlkZSIsImVuY2xvc2UiLCJlbmRzV2l0aCIsImZyb21CYXNlIiwiZ2xvc3MiLCJpbnRlcnBvbGF0ZSIsImlzQmxhbmsiLCJpc01hdGNoIiwibWF0Y2giLCJub3JtYWxpemUiLCJwYWQiLCJwYWRFbmQiLCJwYWRTdGFydCIsInBhcnNlTnVtYmVyIiwicXVvdGUiLCJyZXBlYXQiLCJyZXBsYWNlIiwic25ha2VDYXNlIiwic3BsaXQiLCJzcXVvdGUiLCJzdGFydHNXaXRoIiwidGl0bGVDYXNlIiwidG9CYXNlIiwidG9Mb3dlciIsInRvTG93ZXJDYXNlIiwidG9TdHJpbmciLCJ0b1VwcGVyIiwidG9VcHBlckNhc2UiLCJ0cmltIiwidHJpbUVuZCIsInRyaW1TdGFydCIsInRydW5jYXRlIiwidW5jYXNlIiwidW5kZXJzY29yZSIsInVuZGVyc2NvcmVkIiwidW5kZXJzY29yZXMiLCJ3Iiwid29yZHMiLCJjdXJyeSIsInBpcGUiLCJkZXRhY2giLCJpc1N0cmluZyIsImlzTnVtYmVyIiwiaXNCaWdJbnQiLCJpc0VtcHR5IiwieCIsInJhZGl4IiwibnVtYmVyIiwiVHlwZUVycm9yIiwic3RyaW5nIiwiTnVtYmVyIiwicGFyc2VJbnQiLCJwYXR0ZXJuIiwidGVzdCIsInJlcGxhY2VtZW50IiwiU3RyaW5nIiwicHJvdG90eXBlIiwicyIsImMiLCJzbGljZSIsInRhcmdldCIsIm4iLCJwYWRkaW5nIiwiTWF0aCIsImNlaWwiLCJsZW5ndGgiLCJkZWxpbWl0ZXIiLCJzdGFydCIsImVuZCIsInJlIiwidGVtcGxhdGUiLCJjb250ZXh0IiwiZiIsInBhcmFtZXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiRnVuY3Rpb24iXSwibWFwcGluZ3MiOiJBQUFBLElB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
@@ -1,36 +1,94 @@
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, 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 = function(f) {
21
+ var r, ref, start;
22
+ start = milliseconds();
23
+ if (((ref = r = f()) != null ? ref.then : void 0) != null) {
24
+ return r.then(function() {
25
+ return milliseconds() - start;
26
+ });
27
+ } else {
28
+ return milliseconds() - start;
29
+ }
30
+ };
31
+ debounce = function(last) {
32
+ return function(interval, f) {
33
+ return function() {
34
+ var now;
35
+ now = Date.now();
36
+ if (now - last > interval) {
37
+ last = now;
38
+ return f();
39
+ }
40
+ };
41
+ };
42
+ }(0);
43
+ frame = function() {
44
+ return new Promise(function(resolve) {
45
+ return queueMicrotask(resolve);
30
46
  });
31
- } else {
32
- return milliseconds() - start;
33
- }
34
47
  };
48
+ // we're forced to use Date.now below
49
+ // because Node doesn't include it as a global
50
+ expect = function() {
51
+ var args;
52
+ args = arguments;
53
+ return function({ options, predicate, start, result, done }) {
54
+ [options, predicate] = function() {
55
+ switch(args.length){
56
+ case 1:
57
+ return [
58
+ {
59
+ timeout: 1000
60
+ },
61
+ ...args
62
+ ];
63
+ case 2:
64
+ return args;
65
+ default:
66
+ throw new Error("expect: invalid arguments");
67
+ }
68
+ }();
69
+ start = Date.now();
70
+ done = function() {
71
+ return (result = predicate()) || Date.now() - start > options.timeout;
72
+ };
73
+ result = false;
74
+ return new Promise(async function(resolve) {
75
+ while(!done()){
76
+ await sleep(1);
77
+ }
78
+ return resolve(result);
79
+ });
80
+ }({});
81
+ };
82
+ export { sleep, timer, milliseconds, benchmark, debounce, frame, expect };
83
+ export default {
84
+ sleep,
85
+ timer,
86
+ milliseconds,
87
+ benchmark,
88
+ debounce,
89
+ frame,
90
+ expect
91
+ }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiL0BkYXNoa2l0ZS9qb3kvc3JjL3RpbWUuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsU0FBQSxFQUFBLFFBQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLFlBQUEsRUFBQSxLQUFBLEVBQUE7O0FBQUEsT0FBQTtFQUFRLEtBQVI7Q0FBQSxNQUFBOztBQUVBLEtBQUEsR0FBUSxLQUFBLENBQU0sUUFBQSxDQUFDLFFBQUQsRUFBVyxNQUFYLENBQUE7QUFDZCxNQUFBO0VBQUUsRUFBQSxHQUFLLFVBQUEsQ0FBVyxNQUFYLEVBQW1CLFFBQW5CO1NBQ0wsUUFBQSxDQUFBLENBQUE7V0FBRyxZQUFBLENBQWMsRUFBZDtFQUFIO0FBRlksQ0FBTjs7QUFJUixLQUFBLEdBQVEsUUFBQSxDQUFDLFFBQUQsQ0FBQTtTQUNOLElBQUksT0FBSixDQUFZLFFBQUEsQ0FBQyxPQUFELENBQUE7V0FBYSxVQUFBLENBQVcsT0FBWCxFQUFvQixRQUFwQjtFQUFiLENBQVo7QUFETTs7QUFHUixZQUFBLEdBQ0ssMERBQUgsR0FDRSxRQUFBLENBQUEsQ0FBQTtTQUFHLFdBQVcsQ0FBQyxHQUFaLENBQUE7QUFBSCxDQURGLEdBR0UsUUFBQSxDQUFBLENBQUE7U0FBRyxJQUFJLENBQUMsR0FBTCxDQUFBO0FBQUg7O0FBRUosU0FBQSxHQUFZLFFBQUEsQ0FBQyxDQUFELENBQUE7QUFDWixNQUFBLENBQUEsRUFBQSxHQUFBLEVBQUE7RUFBRSxLQUFBLEdBQVEsWUFBQSxDQUFBO0VBQ1IsSUFBRyx1REFBSDtXQUNFLENBQUMsQ0FBQyxJQUFGLENBQU8sUUFBQSxDQUFBLENBQUE7YUFBRyxZQUFBLENBQUEsQ0FBQSxHQUFpQjtJQUFwQixDQUFQLEVBREY7R0FBQSxNQUFBO1dBR0UsWUFBQSxDQUFBLENBQUEsR0FBaUIsTUFIbkI7O0FBRlU7O0FBT1osUUFBQSxHQUFjLENBQUEsUUFBQSxDQUFFLElBQUYsQ0FBQTtTQUNaLFFBQUEsQ0FBRSxRQUFGLEVBQVksQ0FBWixDQUFBO1dBQW1CLFFBQUEsQ0FBQSxDQUFBO0FBQ3JCLFVBQUE7TUFBSSxHQUFBLEdBQU0sSUFBSSxDQUFDLEdBQUwsQ0FBQTtNQUNOLElBQUcsQ0FBRSxHQUFBLEdBQU0sSUFBUixDQUFBLEdBQWlCLFFBQXBCO1FBQ0UsSUFBQSxHQUFPO2VBQ0osSUFGTDs7SUFGaUI7RUFBbkI7QUFEWSxDQUFBLEVBQVM7O0FBT3ZCLEtBQUEsR0FBUSxRQUFBLENBQUEsQ0FBQTtTQUNOLElBQUksT0FBSixDQUFZLFFBQUEsQ0FBRSxPQUFGLENBQUE7V0FDVixjQUFBLENBQWUsT0FBZjtFQURVLENBQVo7QUFETSxFQTdCUjs7OztBQW1DQSxNQUFBLEdBQVMsUUFBQSxDQUFBLENBQUE7QUFDVCxNQUFBO0VBQUUsSUFBQSxHQUFPO1NBQ0osQ0FBQSxRQUFBLENBQUMsQ0FBRSxPQUFGLEVBQVcsU0FBWCxFQUFzQixLQUF0QixFQUE2QixNQUE3QixFQUFxQyxJQUFyQyxDQUFELENBQUE7SUFFRCxDQUFFLE9BQUYsRUFBVyxTQUFYLENBQUE7QUFBeUIsY0FBTyxJQUFJLENBQUMsTUFBWjtBQUFBLGFBQ2xCLENBRGtCO2lCQUNYO1lBQUM7Y0FBRSxPQUFBLEVBQVM7WUFBWCxDQUFEO1lBQW9CLEdBQUEsSUFBcEI7O0FBRFcsYUFFbEIsQ0FGa0I7aUJBRVg7QUFGVztVQUdsQixNQUFNLElBQUksS0FBSixDQUFVLDJCQUFWO0FBSFk7O0lBS3pCLEtBQUEsR0FBUSxJQUFJLENBQUMsR0FBTCxDQUFBO0lBRVIsSUFBQSxHQUFPLFFBQUEsQ0FBQSxDQUFBO2FBQ0wsQ0FBRSxNQUFBLEdBQVMsU0FBQSxDQUFBLENBQVgsQ0FBQSxJQUNFLENBQUMsQ0FBRSxJQUFJLENBQUMsR0FBTCxDQUFBLENBQUEsR0FBYSxLQUFmLENBQUEsR0FBeUIsT0FBTyxDQUFDLE9BQWxDO0lBRkc7SUFJUCxNQUFBLEdBQVM7V0FFVCxJQUFJLE9BQUosQ0FBWSxNQUFBLFFBQUEsQ0FBRSxPQUFGLENBQUE7QUFDVixhQUF1QixDQUFDLElBQUEsQ0FBQSxDQUF4QjtRQUFFLENBQUEsTUFBTSxLQUFBLENBQU0sQ0FBTixDQUFOO01BQUY7YUFDQSxPQUFBLENBQVEsTUFBUjtJQUZVLENBQVo7RUFmQyxDQUFBLEVBQStDLENBQUE7QUFGM0M7O0FBcUJULE9BQUE7RUFDRSxLQURGO0VBRUUsS0FGRjtFQUdFLFlBSEY7RUFJRSxTQUpGO0VBS0UsUUFMRjtFQU1FLEtBTkY7RUFPRSxNQVBGOzs7QUFVQSxPQUFBLFFBQWUsQ0FDYixLQURhLEVBRWIsS0FGYSxFQUdiLFlBSGEsRUFJYixTQUphLEVBS2IsUUFMYSxFQU1iLEtBTmEsRUFPYixNQVBhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjdXJyeX0gZnJvbSBcIi4vZnVuY3Rpb25cIlxuXG50aW1lciA9IGN1cnJ5IChpbnRlcnZhbCwgYWN0aW9uKSAtPlxuICBpZCA9IHNldFRpbWVvdXQoYWN0aW9uLCBpbnRlcnZhbClcbiAgLT4gY2xlYXJUaW1lb3V0KCBpZCApXG5cbnNsZWVwID0gKGludGVydmFsKSAtPlxuICBuZXcgUHJvbWlzZSAocmVzb2x2ZSkgLT4gc2V0VGltZW91dCByZXNvbHZlLCBpbnRlcnZhbFxuXG5taWxsaXNlY29uZHMgPVxuICBpZiBwZXJmb3JtYW5jZT9cbiAgICAtPiBwZXJmb3JtYW5jZS5ub3coKVxuICBlbHNlXG4gICAgLT4gRGF0ZS5ub3coKVxuXG5iZW5jaG1hcmsgPSAoZikgLT5cbiAgc3RhcnQgPSBtaWxsaXNlY29uZHMoKVxuICBpZiAociA9IGYoKSk/LnRoZW4/XG4gICAgci50aGVuIC0+IG1pbGxpc2Vjb25kcygpIC0gc3RhcnRcbiAgZWxzZVxuICAgIG1pbGxpc2Vjb25kcygpIC0gc3RhcnRcblxuZGVib3VuY2UgPSBkbyAoIGxhc3QgPSAwICkgLT5cbiAgKCBpbnRlcnZhbCwgZiApIC0+IC0+XG4gICAgbm93ID0gRGF0ZS5ub3coKVxuICAgIGlmICggbm93IC0gbGFzdCApID4gaW50ZXJ2YWxcbiAgICAgIGxhc3QgPSBub3dcbiAgICAgIGRvIGZcblxuZnJhbWUgPSAtPlxuICBuZXcgUHJvbWlzZSAoIHJlc29sdmUgKSAtPlxuICAgIHF1ZXVlTWljcm90YXNrIHJlc29sdmVcblxuIyB3ZSdyZSBmb3JjZWQgdG8gdXNlIERhdGUubm93IGJlbG93XG4jIGJlY2F1c2UgTm9kZSBkb2Vzbid0IGluY2x1ZGUgaXQgYXMgYSBnbG9iYWxcbmV4cGVjdCA9IC0+XG4gIGFyZ3MgPSBhcmd1bWVudHNcbiAgZG8gKHsgb3B0aW9ucywgcHJlZGljYXRlLCBzdGFydCwgcmVzdWx0LCBkb25lIH0gPSB7fSkgLT5cblxuICAgIFsgb3B0aW9ucywgcHJlZGljYXRlIF0gPSBzd2l0Y2ggYXJncy5sZW5ndGhcbiAgICAgIHdoZW4gMSB0aGVuIFt7IHRpbWVvdXQ6IDEwMDAgfSwgYXJncy4uLiBdXG4gICAgICB3aGVuIDIgdGhlbiBhcmdzXG4gICAgICBlbHNlIHRocm93IG5ldyBFcnJvciBcImV4cGVjdDogaW52YWxpZCBhcmd1bWVudHNcIlxuXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpXG5cbiAgICBkb25lID0gLT5cbiAgICAgICggcmVzdWx0ID0gcHJlZGljYXRlKCkpIHx8XG4gICAgICAgICgoIERhdGUubm93KCkgLSBzdGFydCApID4gb3B0aW9ucy50aW1lb3V0IClcblxuICAgIHJlc3VsdCA9IGZhbHNlXG5cbiAgICBuZXcgUHJvbWlzZSAoIHJlc29sdmUgKSAtPlxuICAgICAgKCBhd2FpdCBzbGVlcCAxKSB3aGlsZSAhZG9uZSgpXG4gICAgICByZXNvbHZlIHJlc3VsdFxuXG5leHBvcnQge1xuICBzbGVlcFxuICB0aW1lclxuICBtaWxsaXNlY29uZHNcbiAgYmVuY2htYXJrXG4gIGRlYm91bmNlXG4gIGZyYW1lXG4gIGV4cGVjdFxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNsZWVwXG4gIHRpbWVyXG4gIG1pbGxpc2Vjb25kc1xuICBiZW5jaG1hcmtcbiAgZGVib3VuY2VcbiAgZnJhbWVcbiAgZXhwZWN0XG59XG4iXX0=
92
+ //# sourceURL=/@dashkite/joy/src/time.coffee
35
93
 
36
- export { sleep, timer, milliseconds, benchmark };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9AZGFzaGtpdGUvam95L3NyYy90aW1lLmNvZmZlZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2N1cnJ5fSBmcm9tIFwiLi9mdW5jdGlvblwiXG5cbnRpbWVyID0gY3VycnkgKGludGVydmFsLCBhY3Rpb24pIC0+XG4gIGlkID0gc2V0VGltZW91dChhY3Rpb24sIGludGVydmFsKVxuICAtPiBjbGVhclRpbWVvdXQoIGlkIClcblxuc2xlZXAgPSAoaW50ZXJ2YWwpIC0+XG4gIG5ldyBQcm9taXNlIChyZXNvbHZlKSAtPiBzZXRUaW1lb3V0IHJlc29sdmUsIGludGVydmFsXG5cbm1pbGxpc2Vjb25kcyA9XG4gIGlmIHBlcmZvcm1hbmNlP1xuICAgIC0+IHBlcmZvcm1hbmNlLm5vdygpXG4gIGVsc2VcbiAgICAtPiBEYXRlLm5vdygpXG5cbmJlbmNobWFyayA9IChmKSAtPlxuICBzdGFydCA9IG1pbGxpc2Vjb25kcygpXG4gIGlmIChyID0gZigpKT8udGhlbj9cbiAgICByLnRoZW4gLT4gbWlsbGlzZWNvbmRzKCkgLSBzdGFydFxuICBlbHNlXG4gICAgbWlsbGlzZWNvbmRzKCkgLSBzdGFydFxuXG5kZWJvdW5jZSA9IGRvICggbGFzdCA9IDAgKSAtPlxuICAoIGludGVydmFsLCBmICkgLT4gLT5cbiAgICBub3cgPSBEYXRlLm5vdygpXG4gICAgaWYgKCBub3cgLSBsYXN0ICkgPiBpbnRlcnZhbFxuICAgICAgbGFzdCA9IG5vd1xuICAgICAgZG8gZlxuXG5mcmFtZSA9IC0+XG4gIG5ldyBQcm9taXNlICggcmVzb2x2ZSApIC0+XG4gICAgcXVldWVNaWNyb3Rhc2sgcmVzb2x2ZVxuXG4jIHdlJ3JlIGZvcmNlZCB0byB1c2UgRGF0ZS5ub3cgYmVsb3dcbiMgYmVjYXVzZSBOb2RlIGRvZXNuJ3QgaW5jbHVkZSBpdCBhcyBhIGdsb2JhbFxuZXhwZWN0ID0gLT5cbiAgYXJncyA9IGFyZ3VtZW50c1xuICBkbyAoeyBvcHRpb25zLCBwcmVkaWNhdGUsIHN0YXJ0LCByZXN1bHQsIGRvbmUgfSA9IHt9KSAtPlxuXG4gICAgWyBvcHRpb25zLCBwcmVkaWNhdGUgXSA9IHN3aXRjaCBhcmdzLmxlbmd0aFxuICAgICAgd2hlbiAxIHRoZW4gW3sgdGltZW91dDogMTAwMCB9LCBhcmdzLi4uIF1cbiAgICAgIHdoZW4gMiB0aGVuIGFyZ3NcbiAgICAgIGVsc2UgdGhyb3cgbmV3IEVycm9yIFwiZXhwZWN0OiBpbnZhbGlkIGFyZ3VtZW50c1wiXG5cbiAgICBzdGFydCA9IERhdGUubm93KClcblxuICAgIGRvbmUgPSAtPlxuICAgICAgKCByZXN1bHQgPSBwcmVkaWNhdGUoKSkgfHxcbiAgICAgICAgKCggRGF0ZS5ub3coKSAtIHN0YXJ0ICkgPiBvcHRpb25zLnRpbWVvdXQgKVxuXG4gICAgcmVzdWx0ID0gZmFsc2VcblxuICAgIG5ldyBQcm9taXNlICggcmVzb2x2ZSApIC0+XG4gICAgICAoIGF3YWl0IHNsZWVwIDEpIHdoaWxlICFkb25lKClcbiAgICAgIHJlc29sdmUgcmVzdWx0XG5cbmV4cG9ydCB7XG4gIHNsZWVwXG4gIHRpbWVyXG4gIG1pbGxpc2Vjb25kc1xuICBiZW5jaG1hcmtcbiAgZGVib3VuY2VcbiAgZnJhbWVcbiAgZXhwZWN0XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2xlZXBcbiAgdGltZXJcbiAgbWlsbGlzZWNvbmRzXG4gIGJlbmNobWFya1xuICBkZWJvdW5jZVxuICBmcmFtZVxuICBleHBlY3Rcbn1cbiJdLCJuYW1lcyI6WyJiZW5jaG1hcmsiLCJkZWJvdW5jZSIsImV4cGVjdCIsImZyYW1lIiwibWlsbGlzZWNvbmRzIiwic2xlZXAiLCJ0aW1lciIsImN1cnJ5IiwiaW50ZXJ2YWwiLCJhY3Rpb24iLCJpZCIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBlcmZvcm1hbmNlIiwibm93IiwiRGF0ZSIsImYiLCJyIiwicmVmIiwic3RhcnQiLCJ0aGVuIiwibGFzdCIsInF1ZXVlTWljcm90YXNrIiwiYXJncyIsImFyZ3VtZW50cyIsIm9wdGlvbnMiLCJwcmVkaWNhdGUiLCJyZXN1bHQiLCJkb25lIiwibGVuZ3RoIiwidGltZW91dCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFBQSxXQUFBQyxVQUFBQyxRQUFBQyxPQUFBQyxjQUFBQyxPQUFBQztBQUFBLFNBQVFDLEtBQVIsUUFBQSxhQUFBO0FBRUFELFFBQVFDLE1BQU0sU0FBQ0MsUUFBRCxFQUFXQyxNQUFYO0lBQ2QsSUFBQUM7SUFBRUEsS0FBS0MsV0FBV0YsUUFBUUQ7V0FDeEI7ZUFBR0ksYUFBY0Y7SUFBakI7QUFGWTtBQUlkTCxRQUFRLFNBQUNHLFFBQUQ7V0FDTixJQUFJSyxRQUFRLFNBQUNDLE9BQUQ7ZUFBYUgsV0FBV0csU0FBU047SUFBakM7QUFETjtBQUdSSixlQUNLLE9BQUFXLGdCQUFBLGVBQUFBLGdCQUFBLE9BQ0Q7V0FBR0EsWUFBWUMsR0FBWjtBQUFILElBRUE7V0FBR0MsS0FBS0QsR0FBTDtBQUFIO0FBRUpoQixZQUFZLFNBQUNrQixDQUFEO0lBQ1osSUFBQUMsR0FBQUMsS0FBQUM7SUFBRUEsUUFBUWpCO0lBQ1IsSUFBRyxDQUFBLEFBQUFnQixDQUFBQSxNQUFBRCxJQUFBRCxHQUFBLEtBQUEsT0FBQUUsSUFBQUUsSUFBQSxHQUFBLEtBQUEsQ0FBQSxLQUFBLE1BQUg7ZUFDRUgsRUFBRUcsSUFBRixDQUFPO21CQUFHbEIsaUJBQWlCaUI7UUFBcEI7V0FEVDtlQUdFakIsaUJBQWlCaUI7O0FBTFQ7QUFPWnBCLFdBQWMsU0FBRXNCLElBQUY7V0FDWixTQUFFZixRQUFGLEVBQVlVLENBQVo7ZUFBbUI7WUFDckIsSUFBQUY7WUFBSUEsTUFBTUMsS0FBS0QsR0FBTDtZQUNOLElBQUcsQUFBRUEsTUFBTU8sT0FBU2YsVUFBcEI7Z0JBQ0VlLE9BQU9QO3VCQUNKRTs7UUFKWTtJQUFuQjtBQURZLEVBQVM7QUFPdkJmLFFBQVE7V0FDTixJQUFJVSxRQUFRLFNBQUVDLE9BQUY7ZUFDVlUsZUFBZVY7SUFETDtBQUROOzs7QUFNUlosU0FBUztJQUNULElBQUF1QjtJQUFFQSxPQUFPQztXQUNKLFNBQUMsRUFBRUMsT0FBRixFQUFXQyxTQUFYLEVBQXNCUCxLQUF0QixFQUE2QlEsTUFBN0IsRUFBcUNDLElBQXJDLEVBQUQ7UUFFRCxDQUFFSCxTQUFTQyxVQUFYLEdBQUE7WUFBeUIsT0FBT0gsS0FBS00sTUFBWjtnQkFBQSxLQUNsQjsyQkFBTzt3QkFBQzs0QkFBRUMsU0FBUzt3QkFBWDsyQkFBbUJQOztnQkFEVCxLQUVsQjsyQkFBT0E7Z0JBRlc7b0JBR2xCLE1BQU0sSUFBSVEsTUFBTTtZQUhFOztRQUt6QlosUUFBUUosS0FBS0QsR0FBTDtRQUVSYyxPQUFPO21CQUNMLEFBQUVELENBQUFBLFNBQVNELFdBQUEsS0FDUixBQUFFWCxLQUFLRCxHQUFMLEtBQWFLLFFBQVVNLFFBQVFLLE9BQWxDO1FBRkc7UUFJUEgsU0FBUztlQUVULElBQUloQixRQUFRLGVBQUVDLE9BQUY7WUFDVixNQUF1QixDQUFDZ0IsT0FBeEI7Z0JBQUUsTUFBTXpCLE1BQU07WUFBZDttQkFDQVMsUUFBUWU7UUFGRTtJQWZYLEVBQStDLENBQUE7QUFGM0M7QUFxQlQsU0FDRXhCLEtBREYsRUFFRUMsS0FGRixFQUdFRixZQUhGLEVBSUVKLFNBSkYsRUFLRUMsUUFMRixFQU1FRSxLQU5GLEVBT0VELE1BUEY7QUFVQSxlQUFlO0lBQ2JHO0lBQ0FDO0lBQ0FGO0lBQ0FKO0lBQ0FDO0lBQ0FFO0lBQ0FEO0FBUGEsRUFBQSJ9