@jackens/nnn 2024.2.10 → 2024.2.12

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/eq.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  export function eq(x: any, y: any): boolean;
5
5
 
6
6
  export namespace tests {
7
- function eq(): void;
7
+ function eq(expect: import("bun:test").Expect): void;
8
8
  }
package/eq.js CHANGED
@@ -45,39 +45,39 @@ export const eq = /** @return {boolean} */ (/** @type {any} */ x, /** @type {any
45
45
  }
46
46
 
47
47
  export const tests = {
48
- eq: () => {
49
- console.assert(eq(true, true))
50
- console.assert(eq(NaN, NaN))
51
- console.assert(!eq(null, undefined))
52
- console.assert(eq(42, 42))
48
+ eq: (/** @type {import('bun:test').Expect} */ expect) => {
49
+ expect(eq(true, true)).toBe(true)
50
+ expect(eq(NaN, NaN)).toBe(true)
51
+ expect(eq(null, undefined)).toBe(false)
52
+ expect(eq(42, 42)).toBe(true)
53
53
  // eslint-disable-next-line no-new-wrappers
54
- console.assert(eq(42, new Number(42)))
55
- console.assert(eq(42, Number(42)))
54
+ expect(eq(42, new Number(42))).toBe(true)
55
+ expect(eq(42, Number(42))).toBe(true)
56
56
  // eslint-disable-next-line no-new-wrappers
57
- console.assert(eq(new Number(42), Number(42)))
58
- console.assert(!eq(42, '42'))
59
- console.assert(eq('42', '42'))
57
+ expect(eq(new Number(42), Number(42))).toBe(true)
58
+ expect(eq(42, '42')).toBe(false)
59
+ expect(eq('42', '42')).toBe(true)
60
60
  // eslint-disable-next-line no-new-wrappers
61
- console.assert(eq('42', new String('42')))
62
- console.assert(eq('42', String('42')))
61
+ expect(eq('42', new String('42'))).toBe(true)
62
+ expect(eq('42', String('42'))).toBe(true)
63
63
  // eslint-disable-next-line no-new-wrappers
64
- console.assert(eq(String('42'), new String('42')))
65
- console.assert(eq(/42/, /42/))
66
- console.assert(!eq(/42/, /42/g))
67
- console.assert(eq(new Date(42), new Date(42)))
68
- console.assert(!eq(new Date(), new Date(42)))
69
- console.assert(eq({ j: '42', c: 42 }, { c: 42, j: '42' }))
70
- console.assert(eq([42, '42'], [42, '42']))
71
- console.assert(eq(new Set(['42', 42]), new Set([42, '42'])))
72
- console.assert(!eq(new Set(['42', 42]), new Set([42])))
73
- console.assert(!eq(new Set([42, undefined]), new Set([42])))
74
- console.assert(eq(
64
+ expect(eq(String('42'), new String('42'))).toBe(true)
65
+ expect(eq(/42/, /42/)).toBe(true)
66
+ expect(eq(/42/, /42/g)).toBe(false)
67
+ expect(eq(new Date(42), new Date(42))).toBe(true)
68
+ expect(eq(new Date(), new Date(42))).toBe(false)
69
+ expect(eq({ j: '42', c: 42 }, { c: 42, j: '42' })).toBe(true)
70
+ expect(eq([42, '42'], [42, '42'])).toBe(true)
71
+ expect(eq(new Set(['42', 42]), new Set([42, '42']))).toBe(true)
72
+ expect(eq(new Set(['42', 42]), new Set([42]))).toBe(false)
73
+ expect(eq(new Set([42, undefined]), new Set([42]))).toBe(false)
74
+ expect(eq(
75
75
  new Map([[{ j: 42 }, { J: '42' }], [{ c: 42 }, { C: '42' }]]),
76
76
  new Map([[{ c: 42 }, { C: '42' }], [{ j: 42 }, { J: '42' }]])
77
- ))
78
- console.assert(!eq(
77
+ )).toBe(true)
78
+ expect(eq(
79
79
  new Map([[{ j: 42 }, { J: '42' }], [{ c: 42 }, { C: '42' }]]),
80
80
  new Map([[{ j: '42' }, { J: 42 }], [{ c: '42' }, { C: 42 }]])
81
- ))
81
+ )).toBe(false)
82
82
  }
83
83
  }
package/escape.d.ts CHANGED
@@ -14,5 +14,5 @@ export function escape(escapeMap: EscapeMap, template: TemplateStringsArray, ...
14
14
  export function escapeValues(escapeMap: EscapeMap, values: any[]): string[];
15
15
 
16
16
  export namespace tests {
17
- function escape(): void;
17
+ function escape(expect: import("bun:test").Expect): void;
18
18
  }
package/escape.js CHANGED
@@ -22,7 +22,7 @@ export const escape = (
22
22
  ) => String.raw(template, ...escapeValues(escapeMap, values))
23
23
 
24
24
  export const tests = {
25
- escape: () => {
25
+ escape: (/** @type {import('bun:test').Expect} */ expect) => {
26
26
  // @ts-ignore
27
27
  const /** @type {EscapeMap} */ escapeMap = new Map([
28
28
  [undefined, () => 'NULL'],
@@ -46,6 +46,6 @@ export const tests = {
46
46
  FROM table_name
47
47
  WHERE column_name IN (b'1', NULL, NULL, 42, '42', '4''2', NULL, '1980-03-31 04:30:00')`
48
48
 
49
- console.assert(actual === expected)
49
+ expect(actual).toEqual(expected)
50
50
  }
51
51
  }
@@ -4,5 +4,5 @@
4
4
  export function fixTypography(node: Node): void;
5
5
 
6
6
  export namespace tests {
7
- function fixTypography(): void;
7
+ function fixTypography(expect: import("bun:test").Expect): void;
8
8
  }
package/fixTypography.js CHANGED
@@ -49,12 +49,12 @@ export const fixTypography = (/** @type {Node} */ node) => {
49
49
  }
50
50
 
51
51
  export const tests = {
52
- fixTypography: () => {
52
+ fixTypography: (/** @type {import('bun:test').Expect} */ expect) => {
53
53
  const p = h('p', 'Pchnąć w tę łódź jeża lub ośm skrzyń fig (zob. https://pl.wikipedia.org/wiki/Pangram).')
54
54
 
55
55
  fixTypography(p)
56
56
 
57
- console.assert(p.innerHTML ===
57
+ expect(p.innerHTML).toEqual(
58
58
  'Pchnąć <span style="white-space:nowrap">w </span>tę łódź jeża lub ośm skrzyń fig ' +
59
59
  '(zob. https://\u200Bpl.\u200Bwikipedia.\u200Borg/\u200Bwiki/\u200BPangram).')
60
60
  }
package/h.d.ts CHANGED
@@ -6,14 +6,14 @@ export type HArgs = [string | Node, ...HArgs1[]];
6
6
  /**
7
7
  * The type of arguments of the `h` and `s` helpers.
8
8
  */
9
- export type HArgs1 = Record<string, any> | null | undefined | Node | string | number | [string | Node, ...HArgs1[]];
9
+ export type HArgs1 = Partial<Record<PropertyKey, any>> | null | undefined | Node | string | number | [string | Node, ...HArgs1[]];
10
10
 
11
11
  /**
12
12
  * A lightweight [HyperScript](https://github.com/hyperhype/hyperscript)-style helper for creating and modifying `HTMLElement`s (see also `s`).
13
13
  *
14
14
  * - The first argument of type `string` specifies the tag of the element to be created.
15
15
  * - The first argument of type `Node` specifies the element to be modified.
16
- * - All other arguments of type `Record<string, any>` are mappings of attributes and properties.
16
+ * - All other arguments of type `Partial<Record<PropertyKey, any>>` are mappings of attributes and properties.
17
17
  * Keys starting with `$` specify *properties* (without the leading `$`) to be set on the element being created or modified.
18
18
  * (Note that `$` is not a valid attribute name character.)
19
19
  * All other keys specify *attributes* to be set by `setAttribute`.
@@ -32,7 +32,7 @@ export function h(tagOrNode: string | Node, ...args1: HArgs1[]): Node;
32
32
  *
33
33
  * - The first argument of type `string` specifies the tag of the element to be created.
34
34
  * - The first argument of type `Node` specifies the element to be modified.
35
- * - All other arguments of type `Record<string, any>` are mappings of attributes and properties.
35
+ * - All other arguments of type `Partial<Record<PropertyKey, any>>` are mappings of attributes and properties.
36
36
  * Keys starting with `$` specify *properties* (without the leading `$`) to be set on the element being created or modified.
37
37
  * (Note that `$` is not a valid attribute name character.)
38
38
  * All other keys specify *attributes* to be set by `setAttributeNS`.
@@ -47,9 +47,9 @@ export function s<N extends Node>(node: N, ...args1: HArgs1[]): N;
47
47
  export function s(tagOrNode: string | Node, ...args1: HArgs1[]): Node;
48
48
 
49
49
  export const tests: {
50
- h: () => void;
51
- 'h: innerText vs items': () => void;
52
- 'h: style': () => void;
53
- 'h: attributes vs properties': () => void;
54
- 'h: nested properties': () => void;
50
+ h: (expect: import('bun:test').Expect) => void;
51
+ 'h: innerText vs items': (expect: import('bun:test').Expect) => void;
52
+ 'h: style': (expect: import('bun:test').Expect) => void;
53
+ 'h: attributes vs properties': (expect: import('bun:test').Expect) => void;
54
+ 'h: nested properties': (expect: import('bun:test').Expect) => void;
55
55
  };
package/h.js CHANGED
@@ -1,10 +1,9 @@
1
- import { eq } from './eq.js'
2
1
  import { is } from './is.js'
3
2
 
4
3
  /**
5
4
  * The type of arguments of the `h` and `s` helpers.
6
5
  *
7
- * @typedef {Record<string, any> | null | undefined | Node | string | number | HArgs} HArgs1
6
+ * @typedef {Partial<Record<PropertyKey, any>> | null | undefined | Node | string | number | HArgs} HArgs1
8
7
  */
9
8
 
10
9
  /**
@@ -113,7 +112,7 @@ const _h = (/** @type {string?=} */ namespaceURI) => {
113
112
  *
114
113
  * - The first argument of type `string` specifies the tag of the element to be created.
115
114
  * - The first argument of type `Node` specifies the element to be modified.
116
- * - All other arguments of type `Record<string, any>` are mappings of attributes and properties.
115
+ * - All other arguments of type `Partial<Record<PropertyKey, any>>` are mappings of attributes and properties.
117
116
  * Keys starting with `$` specify *properties* (without the leading `$`) to be set on the element being created or modified.
118
117
  * (Note that `$` is not a valid attribute name character.)
119
118
  * All other keys specify *attributes* to be set by `setAttribute`.
@@ -130,7 +129,7 @@ export const h = _h()
130
129
  *
131
130
  * - The first argument of type `string` specifies the tag of the element to be created.
132
131
  * - The first argument of type `Node` specifies the element to be modified.
133
- * - All other arguments of type `Record<string, any>` are mappings of attributes and properties.
132
+ * - All other arguments of type `Partial<Record<PropertyKey, any>>` are mappings of attributes and properties.
134
133
  * Keys starting with `$` specify *properties* (without the leading `$`) to be set on the element being created or modified.
135
134
  * (Note that `$` is not a valid attribute name character.)
136
135
  * All other keys specify *attributes* to be set by `setAttributeNS`.
@@ -143,72 +142,72 @@ export const h = _h()
143
142
  export const s = _h('http://www.w3.org/2000/svg')
144
143
 
145
144
  export const tests = {
146
- h: () => {
145
+ h: (/** @type {import('bun:test').Expect} */ expect) => {
147
146
  const b = h('b')
148
147
 
149
- console.assert(b.outerHTML === '<b></b>')
148
+ expect(b.outerHTML).toEqual('<b></b>')
150
149
 
151
150
  const i = h('i', 'text')
152
151
 
153
152
  h(b, i)
154
153
 
155
- console.assert(i.outerHTML === '<i>text</i>')
156
- console.assert(b.outerHTML === '<b><i>text</i></b>')
154
+ expect(i.outerHTML).toEqual('<i>text</i>')
155
+ expect(b.outerHTML).toEqual('<b><i>text</i></b>')
157
156
 
158
157
  h(i, { $className: 'some class' })
159
158
 
160
- console.assert(i.outerHTML === '<i class="some class">text</i>')
161
- console.assert(b.outerHTML === '<b><i class="some class">text</i></b>')
159
+ expect(i.outerHTML).toEqual('<i class="some class">text</i>')
160
+ expect(b.outerHTML).toEqual('<b><i class="some class">text</i></b>')
162
161
  },
163
162
 
164
- 'h: innerText vs items': () => {
165
- console.assert(h('span', 'text').outerHTML === '<span>text</span>')
166
- console.assert(h('span', { $innerText: 'text' }).outerHTML === '<span>text</span>')
163
+ 'h: innerText vs items': (/** @type {import('bun:test').Expect} */ expect) => {
164
+ expect(h('span', 'text').outerHTML).toEqual('<span>text</span>')
165
+ expect(h('span', { $innerText: 'text' }).outerHTML).toEqual('<span>text</span>')
167
166
  },
168
167
 
169
- 'h: style': () => {
170
- console.assert(h('div', { style: 'margin:0;padding:0' }).outerHTML ===
171
- '<div style="margin:0;padding:0"></div>')
172
- console.assert(h('div', { $style: 'margin:0;padding:0' }).outerHTML ===
173
- '<div style="margin: 0px; padding: 0px;"></div>')
174
- console.assert(h('div', { $style: { margin: 0, padding: 0 } }).outerHTML ===
175
- '<div style="margin: 0px; padding: 0px;"></div>')
168
+ 'h: style': (/** @type {import('bun:test').Expect} */ expect) => {
169
+ expect(h('div', { style: 'margin:0;padding:0' }).outerHTML)
170
+ .toEqual('<div style="margin:0;padding:0"></div>')
171
+ expect(h('div', { $style: 'margin:0;padding:0' }).outerHTML)
172
+ .toEqual('<div style="margin: 0px; padding: 0px;"></div>')
173
+ expect(h('div', { $style: { margin: 0, padding: 0 } }).outerHTML)
174
+ .toEqual('<div style="margin: 0px; padding: 0px;"></div>')
176
175
  },
177
176
 
178
- 'h: attributes vs properties': () => {
177
+ 'h: attributes vs properties': (/** @type {import('bun:test').Expect} */ expect) => {
179
178
  const input1 = h('input', { value: 42 })
180
179
  const input2 = h('input', { $value: '42' })
181
180
 
182
- console.assert(input1.value === '42')
183
- console.assert(input2.value === '42')
181
+ expect(input1.value).toEqual('42')
182
+ expect(input2.value).toEqual('42')
184
183
 
185
- console.assert(input1.outerHTML === '<input value="42">')
186
- console.assert(input2.outerHTML === '<input>')
184
+ expect(input1.outerHTML).toEqual('<input value="42">')
185
+ expect(input2.outerHTML).toEqual('<input>')
187
186
 
188
187
  const checkbox1 = h('input', { type: 'checkbox', checked: true })
189
188
  const checkbox2 = h('input', { type: 'checkbox', $checked: true })
190
189
 
191
- console.assert(checkbox1.checked === true)
192
- console.assert(checkbox2.checked === true)
190
+ expect(checkbox1.checked).toBe(true)
191
+ expect(checkbox2.checked).toBe(true)
193
192
 
194
- console.assert(checkbox1.outerHTML === '<input type="checkbox" checked="">')
195
- console.assert(checkbox2.outerHTML === '<input type="checkbox">')
193
+ expect(checkbox1.outerHTML).toEqual('<input type="checkbox" checked="">')
194
+ expect(checkbox2.outerHTML).toEqual('<input type="checkbox">')
196
195
  },
197
196
 
198
- 'h: nested properties': () => {
197
+ 'h: nested properties': (/** @type {import('bun:test').Expect} */ expect) => {
199
198
  const div = h('div')
200
199
 
201
200
  // @ts-ignore
202
- console.assert(div.key === undefined)
201
+ expect(div.key).toBeUndefined()
203
202
 
204
203
  h(div, { $key: { one: 1 } })
205
204
 
206
205
  // @ts-ignore
207
- console.assert(eq(div.key, { one: 1 }))
206
+ expect(div.key).toEqual({ one: 1 })
208
207
 
209
208
  h(div, { $key: { two: 2 } })
210
209
 
211
210
  // @ts-ignore
212
- console.assert(eq(div.key, { one: 1, two: 2 }))
211
+ expect(div.key).toEqual({ one: 1, two: 2 })
213
212
  }
214
213
  }
package/has.d.ts CHANGED
@@ -4,6 +4,6 @@
4
4
  export function has(key: any, ref: any): boolean;
5
5
 
6
6
  export const tests: {
7
- has: () => void;
8
- 'has: null': () => void;
7
+ has: (expect: import('bun:test').Expect) => void;
8
+ 'has: null': (expect: import('bun:test').Expect) => void;
9
9
  };
package/has.js CHANGED
@@ -7,34 +7,34 @@ export const has = (/** @type {any} */ key, /** @type {any} */ ref) =>
7
7
  (is(String, key) || is(Number, key) || is(Symbol, key)) && Object.hasOwnProperty.call(ref ?? Object, key)
8
8
 
9
9
  export const tests = {
10
- has: () => {
10
+ has: (/** @type {import('bun:test').Expect} */ expect) => {
11
11
  const obj = { key: 'K', null: 'N' }
12
12
 
13
- console.assert('key' in obj)
14
- console.assert(has('key', obj))
13
+ expect('key' in obj).toBe(true)
14
+ expect(has('key', obj)).toBe(true)
15
15
 
16
- console.assert('null' in obj)
17
- console.assert(has('null', obj))
16
+ expect('null' in obj).toBe(true)
17
+ expect(has('null', obj)).toBe(true)
18
18
 
19
19
  // @ts-ignore
20
- console.assert(null in obj)
21
- console.assert(!has(null, obj))
20
+ expect(null in obj).toBe(true)
21
+ expect(has(null, obj)).toBe(false)
22
22
 
23
- console.assert('toString' in obj)
24
- console.assert(!has('toString', obj))
23
+ expect('toString' in obj).toBe(true)
24
+ expect(has('toString', obj)).toBe(false)
25
25
  },
26
26
 
27
- 'has: null': () => {
27
+ 'has: null': (/** @type {import('bun:test').Expect} */ expect) => {
28
28
  let typeError
29
29
 
30
30
  try {
31
31
  // @ts-ignore
32
- console.assert('key' in null)
32
+ 'key' in null
33
33
  } catch (error) {
34
34
  typeError = error
35
35
  }
36
36
 
37
- console.assert(typeError instanceof TypeError) // Cannot use 'in' operator to search for 'key' in null
38
- console.assert(!has('key', null))
37
+ expect(typeError instanceof TypeError) // Cannot use 'in' operator to search for 'key' in null
38
+ expect(has('key', null)).toBe(false)
39
39
  }
40
40
  }
package/is.d.ts CHANGED
@@ -12,6 +12,6 @@ export const is: {
12
12
  };
13
13
 
14
14
  export const tests: {
15
- is: () => void;
16
- 'is: toString.call': () => void;
15
+ is: (expect: import('bun:test').Expect) => void;
16
+ 'is: toString.call': (expect: import('bun:test').Expect) => void;
17
17
  };
package/is.js CHANGED
@@ -18,48 +18,48 @@
18
18
  export const is = (/** @type {T} */ type, /** @type {any} */ arg) => arg?.constructor === type
19
19
 
20
20
  export const tests = {
21
- is: () => {
22
- console.assert(is(Number, 42))
23
- console.assert(is(Number, Number(42)))
21
+ is: (/** @type {import('bun:test').Expect} */ expect) => {
22
+ expect(is(Number, 42)).toBe(true)
23
+ expect(is(Number, Number(42))).toBe(true)
24
24
  // eslint-disable-next-line no-new-wrappers
25
- console.assert(is(Number, new Number(42)))
26
- console.assert(is(Number, NaN))
27
- console.assert(is(String, '42'))
28
- console.assert(is(String, String('42')))
25
+ expect(is(Number, new Number(42))).toBe(true)
26
+ expect(is(Number, NaN)).toBe(true)
27
+ expect(is(String, '42')).toBe(true)
28
+ expect(is(String, String('42'))).toBe(true)
29
29
  // eslint-disable-next-line no-new-wrappers
30
- console.assert(is(String, new String('42')))
31
- console.assert(is(Symbol, Symbol('42')))
32
- console.assert(is(Symbol, Object(Symbol('42'))))
33
- console.assert(is(undefined, undefined))
34
- console.assert(is(undefined, null))
35
- console.assert(is(Object, {}))
36
- console.assert(is(Array, []))
37
- console.assert(is(RegExp, /42/))
38
- console.assert(is(Date, new Date(42)))
39
- console.assert(is(Set, new Set(['42', 42])))
40
- console.assert(is(Map, new Map([[{ j: 42 }, { J: '42' }], [{ c: 42 }, { C: '42' }]])))
30
+ expect(is(String, new String('42'))).toBe(true)
31
+ expect(is(Symbol, Symbol('42'))).toBe(true)
32
+ expect(is(Symbol, Object(Symbol('42')))).toBe(true)
33
+ expect(is(undefined, undefined)).toBe(true)
34
+ expect(is(undefined, null)).toBe(true)
35
+ expect(is(Object, {})).toBe(true)
36
+ expect(is(Array, [])).toBe(true)
37
+ expect(is(RegExp, /42/)).toBe(true)
38
+ expect(is(Date, new Date(42))).toBe(true)
39
+ expect(is(Set, new Set(['42', 42]))).toBe(true)
40
+ expect(is(Map, new Map([[{ j: 42 }, { J: '42' }], [{ c: 42 }, { C: '42' }]]))).toBe(true)
41
41
  },
42
42
 
43
- 'is: toString.call': () => {
43
+ 'is: toString.call': (/** @type {import('bun:test').Expect} */ expect) => {
44
44
  const iz = (/** @type {any} */ type, /** @type {any} */ arg) => ({}).toString.call(arg).slice(8, -1) === type?.name
45
45
 
46
46
  class FooBar { }
47
47
 
48
- console.assert(is(FooBar, new FooBar()))
49
- console.assert(!iz(FooBar, new FooBar()))
48
+ expect(is(FooBar, new FooBar())).toBe(true)
49
+ expect(iz(FooBar, new FooBar())).toBe(false)
50
50
 
51
- console.assert(!is(Object, new FooBar()))
52
- console.assert(iz(Object, new FooBar()))
51
+ expect(is(Object, new FooBar())).toBe(false)
52
+ expect(iz(Object, new FooBar())).toBe(true)
53
53
 
54
54
  const fakeFooBar = {}
55
55
 
56
56
  // @ts-ignore
57
57
  fakeFooBar[Symbol.toStringTag] = FooBar.name
58
58
 
59
- console.assert(!is(FooBar, fakeFooBar))
60
- console.assert(iz(FooBar, fakeFooBar))
59
+ expect(is(FooBar, fakeFooBar)).toBe(false)
60
+ expect(iz(FooBar, fakeFooBar)).toBe(true)
61
61
 
62
- console.assert(is(Object, fakeFooBar))
63
- console.assert(!iz(Object, fakeFooBar))
62
+ expect(is(Object, fakeFooBar)).toBe(true)
63
+ expect(iz(Object, fakeFooBar)).toBe(false)
64
64
  }
65
65
  }
package/jcss.d.ts CHANGED
@@ -8,7 +8,7 @@ export type JcssNode = {
8
8
  /**
9
9
  * The type of arguments of the `jcss` helper.
10
10
  */
11
- export type JcssRoot = Partial<Record<string, JcssNode>>;
11
+ export type JcssRoot = Partial<Record<PropertyKey, JcssNode>>;
12
12
 
13
13
  /**
14
14
  * A simple CSS-in-JS helper.
@@ -24,10 +24,10 @@ export type JcssRoot = Partial<Record<string, JcssNode>>;
24
24
  export function jcss(root: JcssRoot, splitter?: string): string;
25
25
 
26
26
  export const tests: {
27
- 'jcss: #1': () => void;
28
- 'jcss: #2': () => void;
29
- 'jcss: #3': () => void;
30
- 'jcss: #4': () => void;
31
- 'jcss: #5': () => void;
32
- 'jcss: #6': () => void;
27
+ 'jcss: #1': (expect: import('bun:test').Expect) => void;
28
+ 'jcss: #2': (expect: import('bun:test').Expect) => void;
29
+ 'jcss: #3': (expect: import('bun:test').Expect) => void;
30
+ 'jcss: #4': (expect: import('bun:test').Expect) => void;
31
+ 'jcss: #5': (expect: import('bun:test').Expect) => void;
32
+ 'jcss: #6': (expect: import('bun:test').Expect) => void;
33
33
  };
package/jcss.js CHANGED
@@ -11,7 +11,7 @@ import { is } from './is.js'
11
11
  /**
12
12
  * The type of arguments of the `jcss` helper.
13
13
  *
14
- * @typedef {Partial<Record<string, JcssNode>>} JcssRoot
14
+ * @typedef {Partial<Record<PropertyKey, JcssNode>>} JcssRoot
15
15
  */
16
16
 
17
17
  const _jcss = (
@@ -97,7 +97,7 @@ export const jcss = (/** @type {JcssRoot} */ root, splitter = '$$') => {
97
97
  }
98
98
 
99
99
  export const tests = {
100
- 'jcss: #1': () => {
100
+ 'jcss: #1': (/** @type {import('bun:test').Expect} */ expect) => {
101
101
  const actual = jcss({
102
102
  a: {
103
103
  color: 'red',
@@ -120,10 +120,10 @@ export const tests = {
120
120
  padding:1
121
121
  }`.replace(/\n\s*/g, '')
122
122
 
123
- console.assert(actual === expected)
123
+ expect(actual).toEqual(expected)
124
124
  },
125
125
 
126
- 'jcss: #2': () => {
126
+ 'jcss: #2': (/** @type {import('bun:test').Expect} */ expect) => {
127
127
  const actual = jcss({
128
128
  a: {
129
129
  '.b': {
@@ -148,10 +148,10 @@ export const tests = {
148
148
  padding:1
149
149
  }`.replace(/\n\s*/g, '')
150
150
 
151
- console.assert(actual === expected)
151
+ expect(actual).toEqual(expected)
152
152
  },
153
153
 
154
- 'jcss: #3': () => {
154
+ 'jcss: #3': (/** @type {import('bun:test').Expect} */ expect) => {
155
155
  const actual = jcss({
156
156
  '@font-face$$1': {
157
157
  fontFamily: 'Jackens',
@@ -223,10 +223,10 @@ export const tests = {
223
223
  }
224
224
  }`.replace(/\n\s*/g, '')
225
225
 
226
- console.assert(actual === expected)
226
+ expect(actual).toEqual(expected)
227
227
  },
228
228
 
229
- 'jcss: #4': () => {
229
+ 'jcss: #4': (/** @type {import('bun:test').Expect} */ expect) => {
230
230
  const actual = jcss({
231
231
  a: {
232
232
  '.b,.c': {
@@ -246,10 +246,10 @@ export const tests = {
246
246
  margin:2
247
247
  }`.replace(/\n\s*/g, '')
248
248
 
249
- console.assert(actual === expected)
249
+ expect(actual).toEqual(expected)
250
250
  },
251
251
 
252
- 'jcss: #5': () => {
252
+ 'jcss: #5': (/** @type {import('bun:test').Expect} */ expect) => {
253
253
  const actual = jcss({
254
254
  '.b,.c': {
255
255
  margin: 1,
@@ -267,10 +267,10 @@ export const tests = {
267
267
  margin:2
268
268
  }`.replace(/\n\s*/g, '')
269
269
 
270
- console.assert(actual === expected)
270
+ expect(actual).toEqual(expected)
271
271
  },
272
272
 
273
- 'jcss: #6': () => {
273
+ 'jcss: #6': (/** @type {import('bun:test').Expect} */ expect) => {
274
274
  const actual = jcss({
275
275
  '.a,.b': {
276
276
  margin: 1,
@@ -288,6 +288,6 @@ export const tests = {
288
288
  margin:2
289
289
  }`.replace(/\n\s*/g, '')
290
290
 
291
- console.assert(actual === expected)
291
+ expect(actual).toEqual(expected)
292
292
  }
293
293
  }
package/jsOnParse.d.ts CHANGED
@@ -13,8 +13,8 @@
13
13
  * handlers['«handlerName»'](...«params»)
14
14
  * ```
15
15
  */
16
- export function jsOnParse(handlers: Partial<Record<string, Function>>, text: string): any;
16
+ export function jsOnParse(handlers: Partial<Record<PropertyKey, Function>>, text: string): any;
17
17
 
18
18
  export namespace tests {
19
- function jsOnParse(): void;
19
+ function jsOnParse(expect: import("bun:test").Expect): void;
20
20
  }
package/jsOnParse.js CHANGED
@@ -1,4 +1,3 @@
1
- import { eq } from './eq.js'
2
1
  import { has } from './has.js'
3
2
  import { is } from './is.js'
4
3
 
@@ -18,7 +17,7 @@ import { is } from './is.js'
18
17
  * ```
19
18
  */
20
19
  export const jsOnParse = (
21
- /** @type {Partial<Record<string, Function>>} */ handlers,
20
+ /** @type {Partial<Record<PropertyKey, Function>>} */ handlers,
22
21
  /** @type {string} */ text
23
22
  ) => JSON.parse(text, (key, value) => {
24
23
  if (is(Object, value)) {
@@ -41,7 +40,7 @@ export const jsOnParse = (
41
40
  })
42
41
 
43
42
  export const tests = {
44
- jsOnParse: () => {
43
+ jsOnParse: (/** @type {import('bun:test').Expect} */ expect) => {
45
44
  const handlers = {
46
45
  $hello: (/** @type {string} */ name) => `Hello ${name}!`,
47
46
  $foo: () => 'bar'
@@ -81,6 +80,6 @@ export const tests = {
81
80
  }
82
81
  ]
83
82
 
84
- console.assert(eq(actual, expected))
83
+ expect(actual).toEqual(expected)
85
84
  }
86
85
  }
package/locale.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Language translations helper.
3
3
  */
4
- export function locale(map: Partial<Record<string, Partial<Record<string, string>>>>, defaultVersion: string): (text: string, version?: string) => string;
4
+ export function locale(map: Partial<Record<PropertyKey, Partial<Record<PropertyKey, string>>>>, defaultVersion: string): (text: string, version?: string) => string;
5
5
 
6
6
  export namespace tests {
7
- function locale(): void;
7
+ function locale(expect: import("bun:test").Expect): void;
8
8
  }