@jackens/nnn 2026.2.25 → 2026.2.26

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.
Files changed (3) hide show
  1. package/nnn.js +16 -18
  2. package/package.json +1 -1
  3. package/readme.md +13 -1
package/nnn.js CHANGED
@@ -311,24 +311,22 @@ var pick = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key])
311
311
  var ARRAY_INDEX_REGEXP = /^(0|[1-9]\d*)$/;
312
312
  var isObject = (ref) => typeof ref === "object";
313
313
  var getTarget = (parent, parentKey, key) => parent[parentKey] ??= isString(key) && ARRAY_INDEX_REGEXP.test(key) ? [] : {};
314
- var _vivify = (parent, parentKey) => {
315
- return parent != null && isObject(parent) ? new Proxy(parent, {
316
- get(_, key) {
317
- const target = getTarget(parent, parentKey, key);
318
- const value = target[key];
319
- return isString(key) && isObject(target) && (value == null || isObject(value)) ? _vivify(target, key) : value;
320
- },
321
- set(_, key, value) {
322
- const target = getTarget(parent, parentKey, key);
323
- target[key] = value;
324
- return true;
325
- },
326
- deleteProperty(_, key) {
327
- const target = getTarget(parent, parentKey, key);
328
- return delete target[key];
329
- }
330
- }) : parent?.[parentKey];
331
- };
314
+ var _vivify = (parent, parentKey) => new Proxy(parent, {
315
+ get(_, key) {
316
+ const target = getTarget(parent, parentKey, key);
317
+ const value = target[key];
318
+ return isString(key) && isObject(target) && (value == null || isObject(value)) ? _vivify(target, key) : value;
319
+ },
320
+ set(_, key, value) {
321
+ const target = getTarget(parent, parentKey, key);
322
+ target[key] = value;
323
+ return true;
324
+ },
325
+ deleteProperty(_, key) {
326
+ const target = getTarget(parent, parentKey, key);
327
+ return delete target[key];
328
+ }
329
+ });
332
330
  var vivify = (ref) => _vivify({ _: ref }, "_");
333
331
 
334
332
  // src/nnn/rwd.ts
package/package.json CHANGED
@@ -44,5 +44,5 @@
44
44
  "name": "@jackens/nnn",
45
45
  "type": "module",
46
46
  "types": "nnn.d.ts",
47
- "version": "2026.2.25"
47
+ "version": "2026.2.26"
48
48
  }
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # nnn
2
2
 
3
- A collection of Jackens’ JavaScript helper utilities (version: `2026.2.25`).
3
+ A collection of Jackens’ JavaScript helper utilities (version: `2026.2.26`).
4
4
 
5
5
  ## Installation
6
6
 
@@ -1355,6 +1355,18 @@ expect(ref).to.deep.equal({ one: { two: { three: { four: 5 } } } })
1355
1355
  expect(vivify(ref).one.two.three.four.toString.name).to.equal('toString')
1356
1356
 
1357
1357
  expect(ref).to.deep.equal({ one: { two: { three: { four: 5 } } } })
1358
+
1359
+ const u = undefined
1360
+
1361
+ vivify(u).one.two = 3
1362
+
1363
+ expect(u).to.be.undefined
1364
+
1365
+ const n = null
1366
+
1367
+ delete vivify(n).one.two.three
1368
+
1369
+ expect(n).to.be.null
1358
1370
  ```
1359
1371
 
1360
1372
  ## License