@gjsify/assert 0.3.13 → 0.3.15

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.
@@ -1,75 +1,77 @@
1
+ //#region src/inspect-fallback.ts
2
+ /**
3
+ * Minimal value-to-string converter for assertion error messages.
4
+ * This avoids depending on util.inspect (which itself depends on @gjsify/deno_std).
5
+ * Can be replaced with util.inspect once @gjsify/util is migrated.
6
+ */
1
7
  const MAX_DEPTH = 3;
2
8
  const MAX_ARRAY_LENGTH = 10;
3
9
  const MAX_STRING_LENGTH = 128;
4
10
  function safeInspect(value, depth = MAX_DEPTH) {
5
- if (value === null) return "null";
6
- if (value === void 0) return "undefined";
7
- switch (typeof value) {
8
- case "string":
9
- if (value.length > MAX_STRING_LENGTH) {
10
- return `'${value.slice(0, MAX_STRING_LENGTH)}...'`;
11
- }
12
- return `'${value}'`;
13
- case "number":
14
- case "boolean":
15
- case "bigint":
16
- return String(value);
17
- case "symbol":
18
- return value.toString();
19
- case "function":
20
- return `[Function: ${value.name || "anonymous"}]`;
21
- case "object":
22
- return inspectObject(value, depth);
23
- }
24
- return String(value);
11
+ if (value === null) return "null";
12
+ if (value === undefined) return "undefined";
13
+ switch (typeof value) {
14
+ case "string":
15
+ if (value.length > MAX_STRING_LENGTH) {
16
+ return `'${value.slice(0, MAX_STRING_LENGTH)}...'`;
17
+ }
18
+ return `'${value}'`;
19
+ case "number":
20
+ case "boolean":
21
+ case "bigint": return String(value);
22
+ case "symbol": return value.toString();
23
+ case "function": return `[Function: ${value.name || "anonymous"}]`;
24
+ case "object": return inspectObject(value, depth);
25
+ }
26
+ return String(value);
25
27
  }
26
- function inspectObject(obj, depth, seen = /* @__PURE__ */ new WeakSet()) {
27
- if (seen.has(obj)) return "[Circular]";
28
- seen.add(obj);
29
- if (obj instanceof Date) return obj.toISOString();
30
- if (obj instanceof RegExp) return obj.toString();
31
- if (obj instanceof Error) return `[${obj.constructor.name}: ${obj.message}]`;
32
- if (obj instanceof Map) {
33
- if (depth <= 0) return `Map(${obj.size}) { ... }`;
34
- const entries2 = [...obj.entries()].slice(0, MAX_ARRAY_LENGTH).map(([k, v]) => `${inspectInner(k, depth - 1, seen)} => ${inspectInner(v, depth - 1, seen)}`);
35
- const suffix2 = obj.size > MAX_ARRAY_LENGTH ? ", ..." : "";
36
- return `Map(${obj.size}) { ${entries2.join(", ")}${suffix2} }`;
37
- }
38
- if (obj instanceof Set) {
39
- if (depth <= 0) return `Set(${obj.size}) { ... }`;
40
- const entries2 = [...obj.values()].slice(0, MAX_ARRAY_LENGTH).map((v) => inspectInner(v, depth - 1, seen));
41
- const suffix2 = obj.size > MAX_ARRAY_LENGTH ? ", ..." : "";
42
- return `Set(${obj.size}) { ${entries2.join(", ")}${suffix2} }`;
43
- }
44
- if (ArrayBuffer.isView(obj)) {
45
- const typedName = obj.constructor.name;
46
- const arr = obj instanceof DataView ? new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength) : obj;
47
- const len = "length" in arr ? arr.length : 0;
48
- const shown = Math.min(len, MAX_ARRAY_LENGTH);
49
- const items = [];
50
- for (let i = 0; i < shown; i++) items.push(String(arr[i]));
51
- const suffix2 = len > MAX_ARRAY_LENGTH ? ", ..." : "";
52
- return `${typedName}(${len}) [ ${items.join(", ")}${suffix2} ]`;
53
- }
54
- if (Array.isArray(obj)) {
55
- if (depth <= 0) return `[ ... ]`;
56
- const shown = obj.slice(0, MAX_ARRAY_LENGTH).map((v) => inspectInner(v, depth - 1, seen));
57
- const suffix2 = obj.length > MAX_ARRAY_LENGTH ? ", ..." : "";
58
- return `[ ${shown.join(", ")}${suffix2} ]`;
59
- }
60
- if (depth <= 0) return "{ ... }";
61
- const keys = Object.keys(obj);
62
- const entries = keys.slice(0, MAX_ARRAY_LENGTH).map((k) => `${k}: ${inspectInner(obj[k], depth - 1, seen)}`);
63
- const suffix = keys.length > MAX_ARRAY_LENGTH ? ", ..." : "";
64
- const prefix = obj.constructor && obj.constructor.name !== "Object" ? `${obj.constructor.name} ` : "";
65
- return `${prefix}{ ${entries.join(", ")}${suffix} }`;
28
+ function inspectObject(obj, depth, seen = new WeakSet()) {
29
+ if (seen.has(obj)) return "[Circular]";
30
+ seen.add(obj);
31
+ if (obj instanceof Date) return obj.toISOString();
32
+ if (obj instanceof RegExp) return obj.toString();
33
+ if (obj instanceof Error) return `[${obj.constructor.name}: ${obj.message}]`;
34
+ if (obj instanceof Map) {
35
+ if (depth <= 0) return `Map(${obj.size}) { ... }`;
36
+ const entries = [...obj.entries()].slice(0, MAX_ARRAY_LENGTH).map(([k, v]) => `${inspectInner(k, depth - 1, seen)} => ${inspectInner(v, depth - 1, seen)}`);
37
+ const suffix = obj.size > MAX_ARRAY_LENGTH ? ", ..." : "";
38
+ return `Map(${obj.size}) { ${entries.join(", ")}${suffix} }`;
39
+ }
40
+ if (obj instanceof Set) {
41
+ if (depth <= 0) return `Set(${obj.size}) { ... }`;
42
+ const entries = [...obj.values()].slice(0, MAX_ARRAY_LENGTH).map((v) => inspectInner(v, depth - 1, seen));
43
+ const suffix = obj.size > MAX_ARRAY_LENGTH ? ", ..." : "";
44
+ return `Set(${obj.size}) { ${entries.join(", ")}${suffix} }`;
45
+ }
46
+ if (ArrayBuffer.isView(obj)) {
47
+ const typedName = obj.constructor.name;
48
+ const arr = obj instanceof DataView ? new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength) : obj;
49
+ const len = "length" in arr ? arr.length : 0;
50
+ const shown = Math.min(len, MAX_ARRAY_LENGTH);
51
+ const items = [];
52
+ for (let i = 0; i < shown; i++) items.push(String(arr[i]));
53
+ const suffix = len > MAX_ARRAY_LENGTH ? ", ..." : "";
54
+ return `${typedName}(${len}) [ ${items.join(", ")}${suffix} ]`;
55
+ }
56
+ if (Array.isArray(obj)) {
57
+ if (depth <= 0) return `[ ... ]`;
58
+ const shown = obj.slice(0, MAX_ARRAY_LENGTH).map((v) => inspectInner(v, depth - 1, seen));
59
+ const suffix = obj.length > MAX_ARRAY_LENGTH ? ", ..." : "";
60
+ return `[ ${shown.join(", ")}${suffix} ]`;
61
+ }
62
+ if (depth <= 0) return "{ ... }";
63
+ const keys = Object.keys(obj);
64
+ const entries = keys.slice(0, MAX_ARRAY_LENGTH).map((k) => `${k}: ${inspectInner(obj[k], depth - 1, seen)}`);
65
+ const suffix = keys.length > MAX_ARRAY_LENGTH ? ", ..." : "";
66
+ const prefix = obj.constructor && obj.constructor.name !== "Object" ? `${obj.constructor.name} ` : "";
67
+ return `${prefix}{ ${entries.join(", ")}${suffix} }`;
66
68
  }
67
69
  function inspectInner(value, depth, seen) {
68
- if (value === null) return "null";
69
- if (value === void 0) return "undefined";
70
- if (typeof value === "object") return inspectObject(value, depth, seen);
71
- return safeInspect(value, depth);
70
+ if (value === null) return "null";
71
+ if (value === undefined) return "undefined";
72
+ if (typeof value === "object") return inspectObject(value, depth, seen);
73
+ return safeInspect(value, depth);
72
74
  }
73
- export {
74
- safeInspect
75
- };
75
+
76
+ //#endregion
77
+ export { safeInspect };
@@ -1,43 +1,4 @@
1
- import { strict, strict as strict2 } from "../index.js";
2
- import {
3
- AssertionError,
4
- ok,
5
- fail,
6
- ifError,
7
- match,
8
- doesNotMatch,
9
- throws,
10
- doesNotThrow,
11
- rejects,
12
- doesNotReject,
13
- strictEqual,
14
- notStrictEqual,
15
- deepStrictEqual,
16
- notDeepStrictEqual,
17
- strictEqual as strictEqual2,
18
- notStrictEqual as notStrictEqual2,
19
- deepStrictEqual as deepStrictEqual2,
20
- notDeepStrictEqual as notDeepStrictEqual2
21
- } from "../index.js";
22
- export {
23
- AssertionError,
24
- deepStrictEqual2 as deepEqual,
25
- deepStrictEqual,
26
- strict as default,
27
- doesNotMatch,
28
- doesNotReject,
29
- doesNotThrow,
30
- strictEqual2 as equal,
31
- fail,
32
- ifError,
33
- match,
34
- notDeepStrictEqual2 as notDeepEqual,
35
- notDeepStrictEqual,
36
- notStrictEqual2 as notEqual,
37
- notStrictEqual,
38
- ok,
39
- rejects,
40
- strict2 as strict,
41
- strictEqual,
42
- throws
43
- };
1
+ import { AssertionError } from "../assertion-error.js";
2
+ import { deepStrictEqual, doesNotMatch, doesNotReject, doesNotThrow, fail, ifError, match, notDeepStrictEqual, notStrictEqual, ok, rejects, strict, strictEqual, throws } from "../index.js";
3
+
4
+ export { AssertionError, deepStrictEqual as deepEqual, deepStrictEqual, strict as default, doesNotMatch, doesNotReject, doesNotThrow, strictEqual as equal, fail, ifError, match, notDeepStrictEqual as notDeepEqual, notDeepStrictEqual, notStrictEqual as notEqual, notStrictEqual, ok, rejects, strict, strictEqual, throws };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/assert",
3
- "version": "0.3.13",
3
+ "version": "0.3.15",
4
4
  "description": "Node.js assert module for Gjs",
5
5
  "type": "module",
6
6
  "module": "lib/esm/index.js",
@@ -35,8 +35,8 @@
35
35
  "assert"
36
36
  ],
37
37
  "devDependencies": {
38
- "@gjsify/cli": "^0.3.13",
39
- "@gjsify/unit": "^0.3.13",
38
+ "@gjsify/cli": "^0.3.15",
39
+ "@gjsify/unit": "^0.3.15",
40
40
  "@types/node": "^25.6.0",
41
41
  "typescript": "^6.0.3"
42
42
  }