mol_wire_lib 1.0.201 → 1.0.204

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,57 @@ var $;
1226
1220
  //mol/wire/async/async.ts
1227
1221
  ;
1228
1222
  "use strict";
1223
+ //mol/type/error/error.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
+ var $;
1262
+ (function ($) {
1263
+ function $mol_wire_plex(host, field, descr) {
1264
+ const orig = descr.value;
1265
+ const sup = Reflect.getPrototypeOf(host);
1266
+ if (typeof sup[field] === 'function') {
1267
+ Object.defineProperty(orig, 'name', { value: sup[field].name });
1268
+ }
1269
+ const descr2 = {
1270
+ ...descr,
1271
+ value: function (...args) {
1272
+ let atom = $mol_wire_atom.plex(this, orig, args[0]);
1273
+ if ((args.length === 1) || (args[1] === undefined)) {
1256
1274
  if (!$mol_wire_fiber.warm)
1257
1275
  return atom.result();
1258
1276
  if ($mol_wire_auto() instanceof $mol_wire_task) {
@@ -1263,15 +1281,16 @@ var $;
1263
1281
  }
1264
1282
  }
1265
1283
  return atom.resync(args);
1266
- };
1267
- Object.defineProperty(wrapper, 'name', { value: func.name + ' ' });
1268
- Object.assign(wrapper, { orig: func });
1269
- return wrapper;
1284
+ }
1270
1285
  };
1286
+ Reflect.defineProperty(descr2.value, 'name', { value: orig.name + ' ' });
1287
+ Object.assign(descr2.value, { orig });
1288
+ Reflect.defineProperty(host, field, descr2);
1289
+ return descr2;
1271
1290
  }
1272
- $.$mol_wire_mem_func = $mol_wire_mem_func;
1291
+ $.$mol_wire_plex = $mol_wire_plex;
1273
1292
  })($ || ($ = {}));
1274
- //mol/wire/mem/mem.ts
1293
+ //mol/wire/plex/plex.ts
1275
1294
  ;
1276
1295
  "use strict";
1277
1296
  var $;
@@ -1293,16 +1312,15 @@ var $;
1293
1312
  if (!descr)
1294
1313
  descr = Reflect.getOwnPropertyDescriptor(host, field);
1295
1314
  const _get = descr?.get || $mol_const(descr?.value);
1296
- const persist = $mol_wire_atom.getter(_get, 0);
1297
1315
  const _set = descr?.set || function (next) {
1298
- persist(this, []).put(next);
1316
+ $mol_wire_atom.solo(this, _get).put(next);
1299
1317
  };
1300
1318
  const sup = Reflect.getPrototypeOf(host);
1301
1319
  const sup_descr = Reflect.getOwnPropertyDescriptor(sup, field);
1302
1320
  Object.defineProperty(_get, 'name', { value: sup_descr?.get?.name ?? field });
1303
1321
  Object.defineProperty(_set, 'name', { value: sup_descr?.set?.name ?? field });
1304
1322
  function get() {
1305
- return persist(this, []).sync();
1323
+ return $mol_wire_atom.solo(this, _get).sync();
1306
1324
  }
1307
1325
  const temp = $mol_wire_task.getter(_set);
1308
1326
  function set(next) {
@@ -1332,17 +1350,16 @@ var $;
1332
1350
  continue;
1333
1351
  const get = descr.get ?? (() => descr.value);
1334
1352
  const set = descr.set ?? (next => descr.value = next);
1335
- const persist = $mol_wire_atom.getter(get, 0);
1336
1353
  Reflect.defineProperty(obj, field, {
1337
1354
  configurable: true,
1338
1355
  enumerable: descr.enumerable,
1339
1356
  get() {
1340
- const atom = persist(obj, []);
1357
+ const atom = $mol_wire_atom.solo(obj, get);
1341
1358
  atom.watch();
1342
1359
  return atom.sync();
1343
1360
  },
1344
1361
  set(next) {
1345
- const atom = persist(obj, []);
1362
+ const atom = $mol_wire_atom.solo(obj, get);
1346
1363
  set.call(this, next);
1347
1364
  atom.refresh();
1348
1365
  },
@@ -1550,10 +1567,8 @@ var $;
1550
1567
  "use strict";
1551
1568
  var $;
1552
1569
  (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);
1570
+ $.$mol_mem = $mol_wire_solo;
1571
+ $.$mol_mem_key = $mol_wire_plex;
1557
1572
  })($ || ($ = {}));
1558
1573
  //mol/mem/mem.ts
1559
1574
  ;