@xylabs/events 4.13.19 → 4.13.20

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/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
  [![snyk-badge][]][snyk-link]
13
13
  [![socket-badge][]][socket-link]
14
14
 
15
- Version: 4.13.15
15
+ Version: 4.13.19
16
16
 
17
17
  Primary SDK for using XYO Protocol 2.0
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/events",
3
- "version": "4.13.19",
3
+ "version": "4.13.20",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -22,27 +22,32 @@
22
22
  "exports": {
23
23
  ".": {
24
24
  "types": "./dist/neutral/index.d.ts",
25
+ "source": "./src/index.ts",
25
26
  "default": "./dist/neutral/index.mjs"
26
27
  },
27
28
  "./package.json": "./package.json"
28
29
  },
29
- "module": "dist/neutral/index.mjs",
30
+ "module": "./dist/neutral/index.mjs",
30
31
  "source": "./src/index.ts",
31
- "types": "dist/neutral/index.d.ts",
32
+ "types": "./dist/neutral/index.d.ts",
33
+ "files": [
34
+ "dist",
35
+ "src"
36
+ ],
32
37
  "dependencies": {
33
- "@xylabs/assert": "^4.13.19",
34
- "@xylabs/base": "^4.13.19",
35
- "@xylabs/error": "^4.13.19",
36
- "@xylabs/forget": "^4.13.19",
37
- "@xylabs/object": "^4.13.19",
38
- "@xylabs/promise": "^4.13.19",
39
- "@xylabs/typeof": "^4.13.19"
38
+ "@xylabs/assert": "^4.13.20",
39
+ "@xylabs/base": "^4.13.20",
40
+ "@xylabs/error": "^4.13.20",
41
+ "@xylabs/forget": "^4.13.20",
42
+ "@xylabs/object": "^4.13.20",
43
+ "@xylabs/promise": "^4.13.20",
44
+ "@xylabs/typeof": "^4.13.20"
40
45
  },
41
46
  "devDependencies": {
42
- "@xylabs/delay": "^4.13.19",
43
- "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.27",
44
- "@xylabs/tsconfig": "^7.0.0-rc.27",
45
- "@xylabs/vitest-extended": "^4.13.19",
47
+ "@xylabs/delay": "^4.13.20",
48
+ "@xylabs/ts-scripts-yarn3": "^7.0.0",
49
+ "@xylabs/tsconfig": "^7.0.0",
50
+ "@xylabs/vitest-extended": "^4.13.20",
46
51
  "typescript": "^5.8.3",
47
52
  "vitest": "^3.2.4"
48
53
  },
@@ -0,0 +1,64 @@
1
+ import '@xylabs/vitest-extended'
2
+
3
+ import { delay } from '@xylabs/delay'
4
+ import type { Promisable } from '@xylabs/promise'
5
+ import {
6
+ describe, expect, it,
7
+ } from 'vitest'
8
+
9
+ import { Events } from '../Events.ts'
10
+
11
+ type TestEvents = {
12
+ test: { test: boolean }
13
+ testNumber: { testNumber: number }
14
+ }
15
+
16
+ const waitFor = async (check: () => boolean, timeout = 5000) => {
17
+ const startTime = Date.now()
18
+ while (!check()) {
19
+ if (Date.now() - startTime > timeout) {
20
+ return false
21
+ }
22
+ await delay(100)
23
+ }
24
+ return true
25
+ }
26
+
27
+ const callbackTest = async (fn: (complete: () => void) => Promisable<void>, timeout?: number) => {
28
+ let completed = false
29
+ await fn(() => {
30
+ completed = true
31
+ })
32
+ expect(await waitFor(() => completed, timeout)).toBeTrue()
33
+ }
34
+
35
+ /**
36
+ * @group module
37
+ */
38
+
39
+ describe('Events', () => {
40
+ const sut = new Events<TestEvents>()
41
+ it('should instantiate', () => {
42
+ expect(sut).toBeTruthy()
43
+ })
44
+
45
+ it('should emit test event', async () => {
46
+ await callbackTest(async (complete) => {
47
+ sut.on('test', ({ test }) => {
48
+ expect(test).toBeTrue()
49
+ complete()
50
+ })
51
+ await sut.emit('test', { test: true })
52
+ })
53
+ })
54
+
55
+ it('should emit testNumber event', async () => {
56
+ await callbackTest(async (complete) => {
57
+ sut.on('testNumber', ({ testNumber }) => {
58
+ expect(testNumber).toBeNumber()
59
+ complete()
60
+ })
61
+ await sut.emit('testNumber', { testNumber: 1 })
62
+ })
63
+ })
64
+ })
@@ -0,0 +1,72 @@
1
+ import '@xylabs/vitest-extended'
2
+
3
+ import { delay } from '@xylabs/delay'
4
+ import type { Promisable } from '@xylabs/promise'
5
+ import {
6
+ describe, expect, it,
7
+ } from 'vitest'
8
+
9
+ import type { EventData } from '../../model/index.ts'
10
+ import { Events } from '../Events.ts'
11
+
12
+ type ParentTestEvents = {
13
+ parentTest: { test: boolean }
14
+ parentTestNumber: { testNumber: number }
15
+ }
16
+
17
+ type TestEvents<TEvents extends EventData> = {
18
+ test: { test: boolean }
19
+ testNumber: { testNumber: number }
20
+ } & TEvents
21
+
22
+ type AllTestEvents = TestEvents<ParentTestEvents>
23
+
24
+ const waitFor = async (check: () => boolean, timeout = 5000) => {
25
+ const startTime = Date.now()
26
+ while (!check()) {
27
+ if (Date.now() - startTime > timeout) {
28
+ return false
29
+ }
30
+ await delay(100)
31
+ }
32
+ return true
33
+ }
34
+
35
+ const callbackTest = async (fn: (complete: () => void) => Promisable<void>, timeout?: number) => {
36
+ let completed = false
37
+ await fn(() => {
38
+ completed = true
39
+ })
40
+ expect(await waitFor(() => completed, timeout)).toBeTrue()
41
+ }
42
+
43
+ /**
44
+ * @group module
45
+ */
46
+
47
+ describe('Events', () => {
48
+ const sut = new Events<AllTestEvents>()
49
+ it('should instantiate', () => {
50
+ expect(sut).toBeTruthy()
51
+ })
52
+
53
+ it('should emit test event', async () => {
54
+ await callbackTest(async (complete) => {
55
+ sut.on('test', ({ test }) => {
56
+ expect(test).toBeTrue()
57
+ complete()
58
+ })
59
+ await sut.emit('test', { test: true })
60
+ })
61
+ })
62
+
63
+ it('should emit testNumber event', async () => {
64
+ await callbackTest(async (complete) => {
65
+ sut.on('testNumber', ({ testNumber }) => {
66
+ expect(testNumber).toBeNumber()
67
+ complete()
68
+ })
69
+ await sut.emit('testNumber', { testNumber: 1 })
70
+ })
71
+ })
72
+ })
package/xy.config.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
- const config: XyTsupConfig = {
3
- compile: {
4
- browser: {},
5
- neutral: { src: true },
6
- node: {},
7
- },
8
- }
9
-
10
- export default config