@jackens/nnn 2026.9.1 → 2026.9.2

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 (4) hide show
  1. package/nnn.d.ts +209 -366
  2. package/nnn.js +10 -31
  3. package/package.json +1 -1
  4. package/readme.md +562 -527
package/nnn.js CHANGED
@@ -1,10 +1,3 @@
1
- // src/nnn/is.ts
2
- var isArray = Array.isArray;
3
- var isNumber = (arg) => typeof arg === "number";
4
- var isFiniteNumber = Number.isFinite;
5
- var isString = (arg) => typeof arg === "string";
6
- var isRecord = (arg) => typeof arg === "object" && arg != null && !isArray(arg);
7
-
8
1
  // src/nnn/c.ts
9
2
  var DEFAULT_SPLITTER = "$$";
10
3
  var combinePrefixAndName = (prefix, name) => {
@@ -34,7 +27,7 @@ var _c = (node, splitter = DEFAULT_SPLITTER, prefix = "", flatten = false) => {
34
27
  }
35
28
  const splitterIndex = rawKey.indexOf(splitter);
36
29
  const name = splitterIndex < 0 ? rawKey : rawKey.slice(0, splitterIndex);
37
- if (isNumber(value) || isString(value)) {
30
+ if (typeof value === "number" || typeof value === "string") {
38
31
  if (flatten) {
39
32
  out.push(`${prefix + name}:${value}`);
40
33
  } else {
@@ -69,7 +62,7 @@ var createTokenizer = (decorator, ...specs) => (code) => {
69
62
  for (const [metadata, pattern] of specs) {
70
63
  let index = -1;
71
64
  let chunk = "";
72
- if (isString(pattern) && pattern.length > 0) {
65
+ if (typeof pattern === "string" && pattern.length > 0) {
73
66
  index = code.indexOf(pattern);
74
67
  chunk = code.slice(index, index + pattern.length);
75
68
  }
@@ -106,19 +99,21 @@ var csvParse = (csv, separator = ",") => {
106
99
  // src/nnn/h.ts
107
100
  var XLINK_NS = "http://www.w3.org/1999/xlink";
108
101
  var _h = (createElement, tagOrNode, ...args) => {
109
- const node = isString(tagOrNode) ? createElement(tagOrNode) : tagOrNode;
102
+ const node = typeof tagOrNode === "string" ? createElement(tagOrNode) : tagOrNode;
110
103
  args.forEach((arg) => {
111
104
  let child = null;
112
105
  if (arg instanceof Node) {
113
106
  child = arg;
114
- } else if (isArray(arg)) {
107
+ } else if (Array.isArray(arg)) {
115
108
  child = _h(createElement, ...arg);
116
- } else if (isRecord(arg)) {
109
+ } else if (typeof arg === "string" || typeof arg === "number") {
110
+ child = document.createTextNode(arg);
111
+ } else if (arg != null) {
117
112
  for (const name in arg) {
118
113
  const value = arg[name];
119
114
  if (name[0] === "$") {
120
115
  const name1 = name.slice(1);
121
- if (isRecord(value)) {
116
+ if (typeof value === "object" && value != null && !Array.isArray(value)) {
122
117
  Object.assign(node[name1] ??= {}, value);
123
118
  } else {
124
119
  node[name1] = value;
@@ -148,8 +143,6 @@ var _h = (createElement, tagOrNode, ...args) => {
148
143
  }
149
144
  }
150
145
  }
151
- } else if (isString(arg) || isNumber(arg)) {
152
- child = document.createTextNode(arg);
153
146
  }
154
147
  if (child != null) {
155
148
  node.appendChild(child);
@@ -199,8 +192,6 @@ var fixPlTypography = (node) => {
199
192
  }
200
193
  }
201
194
  };
202
- // src/nnn/hasOwn.ts
203
- var hasOwn = (ref, key) => ref != null && Object.hasOwn(ref, key);
204
195
  // src/nnn/monokai.ts
205
196
  var monokai = {
206
197
  ":root$$monokai": {
@@ -295,10 +286,6 @@ var OPERATOR = "operator";
295
286
  var PUNCTUATION = "punctuation";
296
287
  var STRING = "string";
297
288
  var nanolightTs = /* @__PURE__ */ createTokenizer((chunk, name) => name != null ? ["span", { class: name }, chunk] : chunk, [COMMENT, /\/\*.*?\*\//s], [COMMENT, /(?<!\\)\/\/.*?(?=\n)/], [STRING, /".*?"/], [STRING, /'.*?'/], [STRING, /`.*?`/s], [STRING, /\/[^\s]*[^\\]\/[dgimsuvy]*/], [NUMBER, /0b[01_]+/], [NUMBER, /0o[01234567_]+/], [NUMBER, /0x[\dabcdef_]+/], [NUMBER, /\d[\d_]*(\.[\d_]+)?(e[+-]?[\d_]+)?/], [OPERATOR, "!"], [OPERATOR, "!="], [OPERATOR, "!=="], [OPERATOR, "%"], [OPERATOR, "%="], [OPERATOR, "&&"], [OPERATOR, "&&="], [OPERATOR, "&"], [OPERATOR, "&="], [OPERATOR, "*"], [OPERATOR, "**"], [OPERATOR, "**="], [OPERATOR, "*="], [OPERATOR, "+"], [OPERATOR, "++"], [OPERATOR, "+="], [OPERATOR, "-"], [OPERATOR, "--"], [OPERATOR, "-="], [OPERATOR, "..."], [OPERATOR, "/"], [OPERATOR, "/="], [OPERATOR, ":"], [OPERATOR, "<"], [OPERATOR, "<<"], [OPERATOR, "<<="], [OPERATOR, "<="], [OPERATOR, "="], [OPERATOR, "=="], [OPERATOR, "==="], [OPERATOR, "=>"], [OPERATOR, ">"], [OPERATOR, ">="], [OPERATOR, ">>"], [OPERATOR, ">>="], [OPERATOR, ">>>"], [OPERATOR, ">>>="], [OPERATOR, "?"], [OPERATOR, "?"], [OPERATOR, "??"], [OPERATOR, "??="], [OPERATOR, "^"], [OPERATOR, "^="], [OPERATOR, "|"], [OPERATOR, "|="], [OPERATOR, "||"], [OPERATOR, "||="], [OPERATOR, "~"], [OPERATOR, "~="], [OPERATOR, /(?<=\s):/], [PUNCTUATION, "("], [PUNCTUATION, ")"], [PUNCTUATION, ","], [PUNCTUATION, "."], [PUNCTUATION, ":"], [PUNCTUATION, ";"], [PUNCTUATION, "?."], [PUNCTUATION, "["], [PUNCTUATION, "]"], [PUNCTUATION, "{"], [PUNCTUATION, "}"], [KEYWORD1, "as"], [KEYWORD1, "async"], [KEYWORD1, "await"], [KEYWORD1, "break"], [KEYWORD1, "case"], [KEYWORD1, "catch"], [KEYWORD1, "class"], [KEYWORD1, "const"], [KEYWORD1, "continue"], [KEYWORD1, "debugger"], [KEYWORD1, "default"], [KEYWORD1, "delete"], [KEYWORD1, "do"], [KEYWORD1, "else"], [KEYWORD1, "export"], [KEYWORD1, "extends"], [KEYWORD1, "finally"], [KEYWORD1, "for"], [KEYWORD1, "from"], [KEYWORD1, "function"], [KEYWORD1, "function*"], [KEYWORD1, "goto"], [KEYWORD1, "if"], [KEYWORD1, "import"], [KEYWORD1, "in"], [KEYWORD1, "instanceof"], [KEYWORD1, "is"], [KEYWORD1, "keyof"], [KEYWORD1, "let"], [KEYWORD1, "new"], [KEYWORD1, "of"], [KEYWORD1, "package"], [KEYWORD1, "return"], [KEYWORD1, "super"], [KEYWORD1, "switch"], [KEYWORD1, "this"], [KEYWORD1, "throw"], [KEYWORD1, "try"], [KEYWORD1, "type"], [KEYWORD1, "typeof"], [KEYWORD1, "var"], [KEYWORD1, "void"], [KEYWORD1, "while"], [KEYWORD1, "with"], [KEYWORD1, "yield"], [KEYWORD1, "yield*"], [KEYWORD2, "false"], [KEYWORD2, "Infinity"], [KEYWORD2, "NaN"], [KEYWORD2, "null"], [KEYWORD2, "true"], [KEYWORD2, "undefined"], [KEYWORD3, "any"], [KEYWORD3, "bigint"], [KEYWORD3, "boolean"], [KEYWORD3, "eval"], [KEYWORD3, "number"], [KEYWORD3, "string"], [KEYWORD3, "symbol"], [KEYWORD3, "unknown"], [IDENTIFIER1, /[\p{Lu}_$][\p{Lu}\d_$]*/u], [IDENTIFIER2, /[\p{L}_$][\p{L}\d_$]*(?=[(`])/u], [IDENTIFIER3, /\p{Lu}[\p{L}\d_$]*/u], [IDENTIFIER4, /[\p{L}_$][\p{L}\d_$]*/u]);
298
- // src/nnn/omit.ts
299
- var omit = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key]) => !keys.includes(key)));
300
- // src/nnn/pick.ts
301
- var pick = (ref, keys) => Object.fromEntries(Object.entries(ref).filter(([key]) => keys.includes(key)));
302
289
  // src/nnn/rwd.ts
303
290
  var rwd = (root, selector, cellWidthPx, cellHeightPx, ...specs) => {
304
291
  const main = root[selector] ??= {};
@@ -334,12 +321,12 @@ var uuidV1 = (date = new Date, node = Math.random().toString(16).slice(2)) => {
334
321
  // src/nnn/vivify.ts
335
322
  var ARRAY_INDEX_REGEXP = /^(0|[1-9]\d*)$/;
336
323
  var isObject = (ref) => typeof ref === "object";
337
- var getTarget = (parent, parentKey, key) => parent[parentKey] ??= isString(key) && ARRAY_INDEX_REGEXP.test(key) ? [] : {};
324
+ var getTarget = (parent, parentKey, key) => parent[parentKey] ??= typeof key === "string" && ARRAY_INDEX_REGEXP.test(key) ? [] : {};
338
325
  var _vivify = (parent, parentKey) => new Proxy(parent, {
339
326
  get(_, key) {
340
327
  const target = getTarget(parent, parentKey, key);
341
328
  const value = target[key];
342
- return isString(key) && isObject(target) && (value == null || isObject(value)) ? _vivify(target, key) : value;
329
+ return typeof key === "string" && isObject(target) && (value == null || isObject(value)) ? _vivify(target, key) : value;
343
330
  },
344
331
  set(_, key, value) {
345
332
  const target = getTarget(parent, parentKey, key);
@@ -359,16 +346,8 @@ export {
359
346
  csvParse,
360
347
  fixPlTypography,
361
348
  h,
362
- hasOwn,
363
- isArray,
364
- isFiniteNumber,
365
- isNumber,
366
- isRecord,
367
- isString,
368
349
  monokai,
369
350
  nanolightTs,
370
- omit,
371
- pick,
372
351
  rwd,
373
352
  s,
374
353
  svgUse,
package/package.json CHANGED
@@ -41,5 +41,5 @@
41
41
  "name": "@jackens/nnn",
42
42
  "type": "module",
43
43
  "types": "nnn.d.ts",
44
- "version": "2026.9.1"
44
+ "version": "2026.9.2"
45
45
  }