mol_regexp 0.0.1019 → 0.0.1021

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.
package/node.deps.json CHANGED
@@ -1 +1 @@
1
- {"files":["mam.ts","LICENSE","README.md","yarn.lock","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/index.html","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/type/README.md","mol/type/equals/equals.ts","mol/type/merge/merge.ts","mol/type/intersect/intersect.ts","mol/type/override/override.ts","mol/fail/fail.ts","mol/unicode/unicode.ts","mol/regexp/README.md","mol/regexp/regexp.ts"],"mods":{},"deps_in":{"mol":{"mol/regexp":-9007199254740991,"mol/type":-9007199254740991,"mol/fail":-9007199254740991,"mol/unicode":-1},"":{"mol":-9007199254740991},"mol/type/merge":{"mol/regexp":-2},"mol/type":{"mol/type/merge":-9007199254740991,"mol/type/equals":-9007199254740991,"mol/type/intersect":-9007199254740991,"mol/type/override":-9007199254740991},"mol/type/equals":{"mol/type/merge":-3},"mol/type/intersect":{"mol/regexp":-2},"mol/type/override":{"mol/regexp":-2},"mol/fail":{"mol/regexp":-4},"mol/unicode":{"mol/regexp":-2}},"deps_out":{"mol/regexp":{"mol":-9007199254740991,"mol/type/merge":-2,"mol/type/intersect":-2,"mol/type/override":-2,"mol/fail":-4,"mol/unicode":-2},"mol":{"":-9007199254740991},"mol/type/merge":{"mol/type":-9007199254740991,"mol/type/equals":-3},"mol/type":{"mol":-9007199254740991},"mol/type/equals":{"mol/type":-9007199254740991},"mol/type/intersect":{"mol/type":-9007199254740991},"mol/type/override":{"mol/type":-9007199254740991},"mol/fail":{"mol":-9007199254740991},"mol/unicode":{"mol":-1}},"sloc":{"ts":707,"LICENSE":113,"md":718,"lock":974,"js":9,"json":92,"tree":41,"CNAME":1,"html":1},"deps":{"mol/regexp":{"..":-9007199254740991,"/mol/regexp/source":-1,"/mol/regexp/groups":-1,"/mol/type/merge":-2,"/mol/type/intersect":-2,"/mol/type/override":-2,"/mol/regexp":-1,"/mol/regexp/from":-2,"/mol/fail":-4,"/mol/regexp/repeat/greedy":-3,"/mol/regexp/optional":-5,"/mol/unicode/category":-2},"mol":{"..":-9007199254740991},"":{},"mol/type/merge":{"..":-9007199254740991,"/mol/type/merge":-1,"/mol/type/merge/object":-1,"/mol/type/equals":-3},"mol/type":{"..":-9007199254740991},"mol/type/equals":{"..":-9007199254740991,"/mol/type/equals":-1},"mol/type/intersect":{"..":-9007199254740991,"/mol/type/intersect":-1},"mol/type/override":{"..":-9007199254740991,"/mol/type/override":-1},"mol/fail":{"..":-9007199254740991,"/mol/fail":-1},"mol/unicode":{"..":-9007199254740991,"/mol/unicode/category":-1,"/mol/unicode/category/binary":-1,"/mol/char/category/general":-1,"/mol/unicode/category/script":-1}}}
1
+ {"files":["mam.ts","LICENSE","README.md","yarn.lock","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/index.html","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/type/README.md","mol/type/equals/equals.ts","mol/type/merge/merge.ts","mol/type/intersect/intersect.ts","mol/type/override/override.ts","mol/fail/fail.ts","mol/unicode/unicode.ts","mol/regexp/README.md","mol/regexp/regexp.ts"],"mods":{},"deps_in":{"mol":{"mol/regexp":-9007199254740991,"mol/type":-9007199254740991,"mol/fail":-9007199254740991,"mol/unicode":-1},"":{"mol":-9007199254740991},"mol/type/merge":{"mol/regexp":-2},"mol/type":{"mol/type/merge":-9007199254740991,"mol/type/equals":-9007199254740991,"mol/type/intersect":-9007199254740991,"mol/type/override":-9007199254740991},"mol/type/equals":{"mol/type/merge":-3},"mol/type/intersect":{"mol/regexp":-2},"mol/type/override":{"mol/regexp":-2},"mol/fail":{"mol/regexp":-4},"mol/unicode":{"mol/regexp":-2}},"deps_out":{"mol/regexp":{"mol":-9007199254740991,"mol/type/merge":-2,"mol/type/intersect":-2,"mol/type/override":-2,"mol/fail":-4,"mol/unicode":-2},"mol":{"":-9007199254740991},"mol/type/merge":{"mol/type":-9007199254740991,"mol/type/equals":-3},"mol/type":{"mol":-9007199254740991},"mol/type/equals":{"mol/type":-9007199254740991},"mol/type/intersect":{"mol/type":-9007199254740991},"mol/type/override":{"mol/type":-9007199254740991},"mol/fail":{"mol":-9007199254740991},"mol/unicode":{"mol":-1}},"sloc":{"ts":707,"LICENSE":113,"md":718,"lock":974,"js":9,"json":93,"tree":41,"CNAME":1,"html":1},"deps":{"mol/regexp":{"..":-9007199254740991,"/mol/regexp/source":-1,"/mol/regexp/groups":-1,"/mol/type/merge":-2,"/mol/type/intersect":-2,"/mol/type/override":-2,"/mol/regexp":-1,"/mol/regexp/from":-2,"/mol/fail":-4,"/mol/regexp/repeat/greedy":-3,"/mol/regexp/optional":-5,"/mol/unicode/category":-2},"mol":{"..":-9007199254740991},"":{},"mol/type/merge":{"..":-9007199254740991,"/mol/type/merge":-1,"/mol/type/merge/object":-1,"/mol/type/equals":-3},"mol/type":{"..":-9007199254740991},"mol/type/equals":{"..":-9007199254740991,"/mol/type/equals":-1},"mol/type/intersect":{"..":-9007199254740991,"/mol/type/intersect":-1},"mol/type/override":{"..":-9007199254740991,"/mol/type/override":-1},"mol/fail":{"..":-9007199254740991,"/mol/fail":-1},"mol/unicode":{"..":-9007199254740991,"/mol/unicode/category":-1,"/mol/unicode/category/binary":-1,"/mol/char/category/general":-1,"/mol/unicode/category/script":-1}}}
package/node.test.js CHANGED
@@ -958,7 +958,12 @@ var $;
958
958
  var $;
959
959
  (function ($) {
960
960
  function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
961
- return new Proxy(new $mol_range2_array(), {
961
+ const source = typeof item === 'function' ? new $mol_range2_array() : item;
962
+ if (typeof item !== 'function') {
963
+ item = index => source[index];
964
+ size = () => source.length;
965
+ }
966
+ return new Proxy(source, {
962
967
  get(target, field) {
963
968
  if (typeof field === 'string') {
964
969
  if (field === 'length')
@@ -971,7 +976,7 @@ var $;
971
976
  if (index === Math.trunc(index))
972
977
  return item(index);
973
978
  }
974
- return target[field];
979
+ return $mol_range2_array.prototype[field];
975
980
  },
976
981
  set(target, field) {
977
982
  return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
@@ -1012,13 +1017,16 @@ var $;
1012
1017
  return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
1013
1018
  }
1014
1019
  filter(check, context) {
1015
- const filtered = new $mol_range2_array();
1016
- for (let index = 0; index < this.length; ++index) {
1017
- const item = this[index];
1018
- if (check.call(context, item, index, this))
1019
- filtered.push(item);
1020
- }
1021
- return filtered;
1020
+ const filtered = [];
1021
+ let cursor = -1;
1022
+ return $mol_range2(index => {
1023
+ while (cursor < this.length && index >= filtered.length - 1) {
1024
+ const val = this[++cursor];
1025
+ if (check(val, cursor, this))
1026
+ filtered.push(val);
1027
+ }
1028
+ return filtered[index];
1029
+ }, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
1022
1030
  }
1023
1031
  forEach(proceed, context) {
1024
1032
  for (let [key, value] of this.entries())
@@ -1078,7 +1086,7 @@ var $;
1078
1086
  'lazy calls'() {
1079
1087
  let calls = 0;
1080
1088
  const list = $mol_range2(index => (++calls, index), () => 10);
1081
- $mol_assert_ok(list instanceof Array);
1089
+ $mol_assert_equal(true, list instanceof Array);
1082
1090
  $mol_assert_equal(list.length, 10);
1083
1091
  $mol_assert_equal(list[-1], undefined);
1084
1092
  $mol_assert_equal(list[0], 0);
@@ -1121,11 +1129,17 @@ var $;
1121
1129
  $mol_range2(i => i, () => 5).forEach(i => log += i);
1122
1130
  $mol_assert_equal(log, '01234');
1123
1131
  },
1132
+ 'reduce'() {
1133
+ let calls = 0;
1134
+ const list = $mol_range2().slice(1, 6);
1135
+ $mol_assert_equal(list.reduce((s, v) => s + v), 15);
1136
+ $mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
1137
+ },
1124
1138
  'lazy concat'() {
1125
1139
  let calls1 = 0;
1126
1140
  let calls2 = 0;
1127
1141
  const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
1128
- $mol_assert_ok(list instanceof Array);
1142
+ $mol_assert_equal(true, list instanceof Array);
1129
1143
  $mol_assert_equal(list.length, 15);
1130
1144
  $mol_assert_equal(list[0], 0);
1131
1145
  $mol_assert_equal(list[4], 4);
@@ -1137,32 +1151,26 @@ var $;
1137
1151
  $mol_assert_equal(calls1, 2);
1138
1152
  $mol_assert_equal(calls2, 2);
1139
1153
  },
1140
- 'filter'() {
1154
+ 'lazy filter'() {
1141
1155
  let calls = 0;
1142
- const list = $mol_range2(index => (++calls, index), () => 10).filter(v => v % 2).slice(0, 3);
1143
- $mol_assert_ok(list instanceof Array);
1156
+ const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
1157
+ $mol_assert_equal(true, list instanceof Array);
1144
1158
  $mol_assert_equal(list.length, 3);
1145
1159
  $mol_assert_equal(list[0], 1);
1146
1160
  $mol_assert_equal(list[2], 5);
1147
1161
  $mol_assert_equal(list[3], undefined);
1148
- $mol_assert_equal(calls, 10);
1162
+ $mol_assert_equal(calls, 8);
1149
1163
  },
1150
- 'reverse'() {
1164
+ 'lazy reverse'() {
1151
1165
  let calls = 0;
1152
1166
  const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
1153
- $mol_assert_ok(list instanceof Array);
1167
+ $mol_assert_equal(true, list instanceof Array);
1154
1168
  $mol_assert_equal(list.length, 3);
1155
1169
  $mol_assert_equal(list[0], 9);
1156
1170
  $mol_assert_equal(list[2], 7);
1157
1171
  $mol_assert_equal(list[3], undefined);
1158
1172
  $mol_assert_equal(calls, 2);
1159
1173
  },
1160
- 'reduce'() {
1161
- let calls = 0;
1162
- const list = $mol_range2().slice(1, 6);
1163
- $mol_assert_equal(list.reduce((s, v) => s + v), 15);
1164
- $mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
1165
- },
1166
1174
  'lazy map'() {
1167
1175
  let calls1 = 0;
1168
1176
  let calls2 = 0;
@@ -1172,7 +1180,7 @@ var $;
1172
1180
  $mol_assert_equal(source, self);
1173
1181
  return index + 10;
1174
1182
  }, () => 5);
1175
- $mol_assert_ok(target instanceof Array);
1183
+ $mol_assert_equal(true, target instanceof Array);
1176
1184
  $mol_assert_equal(target.length, 5);
1177
1185
  $mol_assert_equal(target[0], 10);
1178
1186
  $mol_assert_equal(target[4], 14);
@@ -1183,7 +1191,7 @@ var $;
1183
1191
  'lazy slice'() {
1184
1192
  let calls = 0;
1185
1193
  const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
1186
- $mol_assert_ok(list instanceof Array);
1194
+ $mol_assert_equal(true, list instanceof Array);
1187
1195
  $mol_assert_equal(list.length, 4);
1188
1196
  $mol_assert_equal(list[0], 3);
1189
1197
  $mol_assert_equal(list[3], 6);
@@ -1192,22 +1200,22 @@ var $;
1192
1200
  },
1193
1201
  'lazy some'() {
1194
1202
  let calls = 0;
1195
- $mol_assert_ok($mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
1203
+ $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
1196
1204
  $mol_assert_equal(calls, 3);
1197
- $mol_assert_not($mol_range2(i => i, () => 0).some(v => true));
1198
- $mol_assert_ok($mol_range2(i => i).some(v => v > 5));
1205
+ $mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
1206
+ $mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
1199
1207
  },
1200
1208
  'lazy every'() {
1201
1209
  let calls = 0;
1202
- $mol_assert_not($mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
1210
+ $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
1203
1211
  $mol_assert_equal(calls, 3);
1204
- $mol_assert_ok($mol_range2(i => i, () => 0).every(v => false));
1205
- $mol_assert_not($mol_range2(i => i).every(v => v < 5));
1212
+ $mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
1213
+ $mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
1206
1214
  },
1207
1215
  'lazyfy'() {
1208
1216
  let calls = 0;
1209
- const list = new $mol_range2_array(...[0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
1210
- $mol_assert_ok(list instanceof Array);
1217
+ const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
1218
+ $mol_assert_equal(true, list instanceof Array);
1211
1219
  $mol_assert_equal(list.length, 4);
1212
1220
  $mol_assert_equal(calls, 0);
1213
1221
  $mol_assert_equal(list[0], 12);