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/web.js CHANGED
@@ -1019,37 +1019,31 @@ var $;
1019
1019
  var $;
1020
1020
  (function ($) {
1021
1021
  class $mol_wire_atom extends $mol_wire_fiber {
1022
- static getter(task, keys) {
1022
+ static solo(host, task) {
1023
1023
  const field = task.name + '()';
1024
- if (keys) {
1025
- return function $mol_wire_atom_get(host, args) {
1026
- let dict, key, fiber;
1027
- key = `${host?.[Symbol.toStringTag] ?? host}.${task.name}(${args.map(v => $mol_key(v)).join(',')})`;
1028
- dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1029
- if (dict) {
1030
- const existen = dict.get(key);
1031
- if (existen)
1032
- return existen;
1033
- }
1034
- else {
1035
- dict = (host ?? task)[field] = new Map();
1036
- }
1037
- fiber = new $mol_wire_atom(key, task, host, args);
1038
- dict.set(key, fiber);
1039
- return fiber;
1040
- };
1024
+ const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1025
+ if (existen)
1026
+ return existen;
1027
+ const key = `${host?.[Symbol.toStringTag] ?? host}.${field}`;
1028
+ const fiber = new $mol_wire_atom(key, task, host, []);
1029
+ (host ?? task)[field] = fiber;
1030
+ return fiber;
1031
+ }
1032
+ static plex(host, task, key) {
1033
+ const field = task.name + '()';
1034
+ let dict = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1035
+ const id = `${host?.[Symbol.toStringTag] ?? host}.${task.name}(${$mol_key(key)})`;
1036
+ if (dict) {
1037
+ const existen = dict.get(id);
1038
+ if (existen)
1039
+ return existen;
1041
1040
  }
1042
1041
  else {
1043
- return function $mol_wire_atom_get(host, args) {
1044
- const existen = Object.getOwnPropertyDescriptor(host ?? task, field)?.value;
1045
- if (existen)
1046
- return existen;
1047
- const key = `${host?.[Symbol.toStringTag] ?? host}.${field}`;
1048
- const fiber = new $mol_wire_atom(key, task, host, args);
1049
- (host ?? task)[field] = fiber;
1050
- return fiber;
1051
- };
1042
+ dict = (host ?? task)[field] = new Map();
1052
1043
  }
1044
+ const fiber = new $mol_wire_atom(id, task, host, [key]);
1045
+ dict.set(id, fiber);
1046
+ return fiber;
1053
1047
  }
1054
1048
  static watching = new Set();
1055
1049
  static watch() {
@@ -1226,33 +1220,60 @@ var $;
1226
1220
  //mol/wire/async/async.ts
1227
1221
  ;
1228
1222
  "use strict";
1223
+ //mol/type/tail/tail.ts
1224
+ ;
1225
+ "use strict";
1229
1226
  var $;
1230
1227
  (function ($) {
1231
- function $mol_wire_mem(keys) {
1232
- const wrap = $mol_wire_mem_func(keys);
1233
- return (host, field, descr) => {
1234
- if (!descr)
1235
- descr = Reflect.getOwnPropertyDescriptor(host, field);
1236
- const orig = descr?.value ?? host[field];
1237
- const sup = Reflect.getPrototypeOf(host);
1238
- if (typeof sup[field] === 'function') {
1239
- Object.defineProperty(orig, 'name', { value: sup[field].name });
1228
+ function $mol_wire_solo(host, field, descr) {
1229
+ const orig = descr.value;
1230
+ const sup = Reflect.getPrototypeOf(host);
1231
+ if (typeof sup[field] === 'function') {
1232
+ Object.defineProperty(orig, 'name', { value: sup[field].name });
1233
+ }
1234
+ const descr2 = {
1235
+ ...descr,
1236
+ value: function (...args) {
1237
+ let atom = $mol_wire_atom.solo(this, orig);
1238
+ if ((args.length === 0) || (args[0] === undefined)) {
1239
+ if (!$mol_wire_fiber.warm)
1240
+ return atom.result();
1241
+ if ($mol_wire_auto() instanceof $mol_wire_task) {
1242
+ return atom.once();
1243
+ }
1244
+ else {
1245
+ return atom.sync();
1246
+ }
1247
+ }
1248
+ return atom.resync(args);
1240
1249
  }
1241
- const descr2 = {
1242
- ...descr,
1243
- value: wrap(orig)
1244
- };
1245
- Reflect.defineProperty(host, field, descr2);
1246
- return descr2;
1247
1250
  };
1251
+ Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });
1252
+ Object.assign(descr2.value, { orig });
1253
+ Reflect.defineProperty(host, field, descr2);
1254
+ return descr2;
1248
1255
  }
1249
- $.$mol_wire_mem = $mol_wire_mem;
1250
- function $mol_wire_mem_func(keys) {
1251
- return (func) => {
1252
- const persist = $mol_wire_atom.getter(func, keys);
1253
- const wrapper = function (...args) {
1254
- let atom = persist(this, args.slice(0, keys));
1255
- if (args.length <= keys || args[keys] === undefined) {
1256
+ $.$mol_wire_solo = $mol_wire_solo;
1257
+ })($ || ($ = {}));
1258
+ //mol/wire/solo/solo.ts
1259
+ ;
1260
+ "use strict";
1261
+ //mol/type/error/error.ts
1262
+ ;
1263
+ "use strict";
1264
+ var $;
1265
+ (function ($) {
1266
+ function $mol_wire_plex(host, field, descr) {
1267
+ const orig = descr.value;
1268
+ const sup = Reflect.getPrototypeOf(host);
1269
+ if (typeof sup[field] === 'function') {
1270
+ Object.defineProperty(orig, 'name', { value: sup[field].name });
1271
+ }
1272
+ const descr2 = {
1273
+ ...descr,
1274
+ value: function (...args) {
1275
+ let atom = $mol_wire_atom.plex(this, orig, args[0]);
1276
+ if ((args.length === 1) || (args[1] === undefined)) {
1256
1277
  if (!$mol_wire_fiber.warm)
1257
1278
  return atom.result();
1258
1279
  if ($mol_wire_auto() instanceof $mol_wire_task) {
@@ -1263,15 +1284,16 @@ var $;
1263
1284
  }
1264
1285
  }
1265
1286
  return atom.resync(args);
1266
- };
1267
- Object.defineProperty(wrapper, 'name', { value: func.name + ' ' });
1268
- Object.assign(wrapper, { orig: func });
1269
- return wrapper;
1287
+ }
1270
1288
  };
1289
+ Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });
1290
+ Object.assign(descr2.value, { orig });
1291
+ Reflect.defineProperty(host, field, descr2);
1292
+ return descr2;
1271
1293
  }
1272
- $.$mol_wire_mem_func = $mol_wire_mem_func;
1294
+ $.$mol_wire_plex = $mol_wire_plex;
1273
1295
  })($ || ($ = {}));
1274
- //mol/wire/mem/mem.ts
1296
+ //mol/wire/plex/plex.ts
1275
1297
  ;
1276
1298
  "use strict";
1277
1299
  var $;
@@ -1293,16 +1315,15 @@ var $;
1293
1315
  if (!descr)
1294
1316
  descr = Reflect.getOwnPropertyDescriptor(host, field);
1295
1317
  const _get = descr?.get || $mol_const(descr?.value);
1296
- const persist = $mol_wire_atom.getter(_get, 0);
1297
1318
  const _set = descr?.set || function (next) {
1298
- persist(this, []).put(next);
1319
+ $mol_wire_atom.solo(this, _get).put(next);
1299
1320
  };
1300
1321
  const sup = Reflect.getPrototypeOf(host);
1301
1322
  const sup_descr = Reflect.getOwnPropertyDescriptor(sup, field);
1302
1323
  Object.defineProperty(_get, 'name', { value: sup_descr?.get?.name ?? field });
1303
1324
  Object.defineProperty(_set, 'name', { value: sup_descr?.set?.name ?? field });
1304
1325
  function get() {
1305
- return persist(this, []).sync();
1326
+ return $mol_wire_atom.solo(this, _get).sync();
1306
1327
  }
1307
1328
  const temp = $mol_wire_task.getter(_set);
1308
1329
  function set(next) {
@@ -1332,17 +1353,16 @@ var $;
1332
1353
  continue;
1333
1354
  const get = descr.get ?? (() => descr.value);
1334
1355
  const set = descr.set ?? (next => descr.value = next);
1335
- const persist = $mol_wire_atom.getter(get, 0);
1336
1356
  Reflect.defineProperty(obj, field, {
1337
1357
  configurable: true,
1338
1358
  enumerable: descr.enumerable,
1339
1359
  get() {
1340
- const atom = persist(obj, []);
1360
+ const atom = $mol_wire_atom.solo(obj, get);
1341
1361
  atom.watch();
1342
1362
  return atom.sync();
1343
1363
  },
1344
1364
  set(next) {
1345
- const atom = persist(obj, []);
1365
+ const atom = $mol_wire_atom.solo(obj, get);
1346
1366
  set.call(this, next);
1347
1367
  atom.refresh();
1348
1368
  },
@@ -1550,10 +1570,8 @@ var $;
1550
1570
  "use strict";
1551
1571
  var $;
1552
1572
  (function ($) {
1553
- $.$mol_mem = $mol_wire_mem(0);
1554
- $.$mol_mem_key = $mol_wire_mem(1);
1555
- $.$mol_mem_key2 = $mol_wire_mem(2);
1556
- $.$mol_mem_key3 = $mol_wire_mem(3);
1573
+ $.$mol_mem = $mol_wire_solo;
1574
+ $.$mol_mem_key = $mol_wire_plex;
1557
1575
  })($ || ($ = {}));
1558
1576
  //mol/mem/mem.ts
1559
1577
  ;