mol_wire_lib 1.0.202 → 1.0.205

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.js CHANGED
@@ -1013,37 +1013,31 @@ var $;
1013
1013
  var $;
1014
1014
  (function ($) {
1015
1015
  class $mol_wire_atom extends $mol_wire_fiber {
1016
- static getter(task, keys) {
1016
+ static solo(host, task) {
1017
1017
  const field = task.name + '()';
1018
- if (keys) {
1019
- return function $mol_wire_atom_get(host, args) {
1020
- let dict, key, fiber;
1021
- key = `${host?.[Symbol.toStringTag] ?? host}.${task.name}(${args.map(v => $mol_key(v)).join(',')})`;
1022
- dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1023
- if (dict) {
1024
- const existen = dict.get(key);
1025
- if (existen)
1026
- return existen;
1027
- }
1028
- else {
1029
- dict = (host ?? task)[field] = new Map();
1030
- }
1031
- fiber = new $mol_wire_atom(key, task, host, args);
1032
- dict.set(key, fiber);
1033
- return fiber;
1034
- };
1018
+ const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1019
+ if (existen)
1020
+ return existen;
1021
+ const key = `${host?.[Symbol.toStringTag] ?? host}.${field}`;
1022
+ const fiber = new $mol_wire_atom(key, task, host, []);
1023
+ (host ?? task)[field] = fiber;
1024
+ return fiber;
1025
+ }
1026
+ static plex(host, task, key) {
1027
+ const field = task.name + '()';
1028
+ let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1029
+ const id = `${host?.[Symbol.toStringTag] ?? host}.${task.name}(${$mol_key(key)})`;
1030
+ if (dict) {
1031
+ const existen = dict.get(id);
1032
+ if (existen)
1033
+ return existen;
1035
1034
  }
1036
1035
  else {
1037
- return function $mol_wire_atom_get(host, args) {
1038
- const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1039
- if (existen)
1040
- return existen;
1041
- const key = `${host?.[Symbol.toStringTag] ?? host}.${field}`;
1042
- const fiber = new $mol_wire_atom(key, task, host, args);
1043
- (host ?? task)[field] = fiber;
1044
- return fiber;
1045
- };
1036
+ dict = (host ?? task)[field] = new Map();
1046
1037
  }
1038
+ const fiber = new $mol_wire_atom(id, task, host, [key]);
1039
+ dict.set(id, fiber);
1040
+ return fiber;
1047
1041
  }
1048
1042
  static watching = new Set();
1049
1043
  static watch() {
@@ -1220,33 +1214,60 @@ var $;
1220
1214
  //mol/wire/async/async.ts
1221
1215
  ;
1222
1216
  "use strict";
1217
+ //mol/type/tail/tail.ts
1218
+ ;
1219
+ "use strict";
1223
1220
  var $;
1224
1221
  (function ($) {
1225
- function $mol_wire_mem(keys) {
1226
- const wrap = $mol_wire_mem_func(keys);
1227
- return (host, field, descr) => {
1228
- if (!descr)
1229
- descr = Reflect.getOwnPropertyDescriptor(host, field);
1230
- const orig = descr?.value ?? host[field];
1231
- const sup = Reflect.getPrototypeOf(host);
1232
- if (typeof sup[field] === 'function') {
1233
- Object.defineProperty(orig, 'name', { value: sup[field].name });
1222
+ function $mol_wire_solo(host, field, descr) {
1223
+ const orig = descr.value;
1224
+ const sup = Reflect.getPrototypeOf(host);
1225
+ if (typeof sup[field] === 'function') {
1226
+ Object.defineProperty(orig, 'name', { value: sup[field].name });
1227
+ }
1228
+ const descr2 = {
1229
+ ...descr,
1230
+ value: function (...args) {
1231
+ let atom = $mol_wire_atom.solo(this, orig);
1232
+ if ((args.length === 0) || (args[0] === undefined)) {
1233
+ if (!$mol_wire_fiber.warm)
1234
+ return atom.result();
1235
+ if ($mol_wire_auto() instanceof $mol_wire_task) {
1236
+ return atom.once();
1237
+ }
1238
+ else {
1239
+ return atom.sync();
1240
+ }
1241
+ }
1242
+ return atom.resync(args);
1234
1243
  }
1235
- const descr2 = {
1236
- ...descr,
1237
- value: wrap(orig)
1238
- };
1239
- Reflect.defineProperty(host, field, descr2);
1240
- return descr2;
1241
1244
  };
1245
+ Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });
1246
+ Object.assign(descr2.value, { orig });
1247
+ Reflect.defineProperty(host, field, descr2);
1248
+ return descr2;
1242
1249
  }
1243
- $.$mol_wire_mem = $mol_wire_mem;
1244
- function $mol_wire_mem_func(keys) {
1245
- return (func) => {
1246
- const persist = $mol_wire_atom.getter(func, keys);
1247
- const wrapper = function (...args) {
1248
- let atom = persist(this, args.slice(0, keys));
1249
- if (args.length <= keys || args[keys] === undefined) {
1250
+ $.$mol_wire_solo = $mol_wire_solo;
1251
+ })($ || ($ = {}));
1252
+ //mol/wire/solo/solo.ts
1253
+ ;
1254
+ "use strict";
1255
+ //mol/type/error/error.ts
1256
+ ;
1257
+ "use strict";
1258
+ var $;
1259
+ (function ($) {
1260
+ function $mol_wire_plex(host, field, descr) {
1261
+ const orig = descr.value;
1262
+ const sup = Reflect.getPrototypeOf(host);
1263
+ if (typeof sup[field] === 'function') {
1264
+ Object.defineProperty(orig, 'name', { value: sup[field].name });
1265
+ }
1266
+ const descr2 = {
1267
+ ...descr,
1268
+ value: function (...args) {
1269
+ let atom = $mol_wire_atom.plex(this, orig, args[0]);
1270
+ if ((args.length === 1) || (args[1] === undefined)) {
1250
1271
  if (!$mol_wire_fiber.warm)
1251
1272
  return atom.result();
1252
1273
  if ($mol_wire_auto() instanceof $mol_wire_task) {
@@ -1257,15 +1278,16 @@ var $;
1257
1278
  }
1258
1279
  }
1259
1280
  return atom.resync(args);
1260
- };
1261
- Object.defineProperty(wrapper, 'name', { value: func.name + ' ' });
1262
- Object.assign(wrapper, { orig: func });
1263
- return wrapper;
1281
+ }
1264
1282
  };
1283
+ Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });
1284
+ Object.assign(descr2.value, { orig });
1285
+ Reflect.defineProperty(host, field, descr2);
1286
+ return descr2;
1265
1287
  }
1266
- $.$mol_wire_mem_func = $mol_wire_mem_func;
1288
+ $.$mol_wire_plex = $mol_wire_plex;
1267
1289
  })($ || ($ = {}));
1268
- //mol/wire/mem/mem.ts
1290
+ //mol/wire/plex/plex.ts
1269
1291
  ;
1270
1292
  "use strict";
1271
1293
  var $;
@@ -1287,16 +1309,15 @@ var $;
1287
1309
  if (!descr)
1288
1310
  descr = Reflect.getOwnPropertyDescriptor(host, field);
1289
1311
  const _get = descr?.get || $mol_const(descr?.value);
1290
- const persist = $mol_wire_atom.getter(_get, 0);
1291
1312
  const _set = descr?.set || function (next) {
1292
- persist(this, []).put(next);
1313
+ $mol_wire_atom.solo(this, _get).put(next);
1293
1314
  };
1294
1315
  const sup = Reflect.getPrototypeOf(host);
1295
1316
  const sup_descr = Reflect.getOwnPropertyDescriptor(sup, field);
1296
1317
  Object.defineProperty(_get, 'name', { value: sup_descr?.get?.name ?? field });
1297
1318
  Object.defineProperty(_set, 'name', { value: sup_descr?.set?.name ?? field });
1298
1319
  function get() {
1299
- return persist(this, []).sync();
1320
+ return $mol_wire_atom.solo(this, _get).sync();
1300
1321
  }
1301
1322
  const temp = $mol_wire_task.getter(_set);
1302
1323
  function set(next) {
@@ -1326,17 +1347,16 @@ var $;
1326
1347
  continue;
1327
1348
  const get = descr.get ?? (() => descr.value);
1328
1349
  const set = descr.set ?? (next => descr.value = next);
1329
- const persist = $mol_wire_atom.getter(get, 0);
1330
1350
  Reflect.defineProperty(obj, field, {
1331
1351
  configurable: true,
1332
1352
  enumerable: descr.enumerable,
1333
1353
  get() {
1334
- const atom = persist(obj, []);
1354
+ const atom = $mol_wire_atom.solo(obj, get);
1335
1355
  atom.watch();
1336
1356
  return atom.sync();
1337
1357
  },
1338
1358
  set(next) {
1339
- const atom = persist(obj, []);
1359
+ const atom = $mol_wire_atom.solo(obj, get);
1340
1360
  set.call(this, next);
1341
1361
  atom.refresh();
1342
1362
  },
@@ -1523,10 +1543,8 @@ var $;
1523
1543
  "use strict";
1524
1544
  var $;
1525
1545
  (function ($) {
1526
- $.$mol_mem = $mol_wire_mem(0);
1527
- $.$mol_mem_key = $mol_wire_mem(1);
1528
- $.$mol_mem_key2 = $mol_wire_mem(2);
1529
- $.$mol_mem_key3 = $mol_wire_mem(3);
1546
+ $.$mol_mem = $mol_wire_solo;
1547
+ $.$mol_mem_key = $mol_wire_plex;
1530
1548
  })($ || ($ = {}));
1531
1549
  //mol/mem/mem.ts
1532
1550
  ;