Skip to content

Commit d65c142

Browse files
committed
feat(enums): SystemErrorCode
Signed-off-by: Lexus Drumgold <[email protected]>
1 parent 964c15b commit d65c142

File tree

6 files changed

+170
-1
lines changed

6 files changed

+170
-1
lines changed

.cspell.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,15 @@
4343
"useGitignore": true,
4444
"usePnP": false,
4545
"version": "0.2",
46-
"words": ["Odfijos", "fldv"]
46+
"words": [
47+
"ECHARSET",
48+
"EFTYPE",
49+
"EHOSTDOWN",
50+
"ENONET",
51+
"EREMOTEIO",
52+
"ESHUTDOWN",
53+
"ESOCKTNOSUPPORT",
54+
"Odfijos",
55+
"fldv"
56+
]
4757
}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ This package is fully typed with [TypeScript][8]. It exports the following defin
321321
### Enums
322322

323323
- [`ErrorCode`](src/enums/error-code.ts)
324+
- [`SystemErrorCode`](src/enums/error-code-system.ts)
324325

325326
### Type Definitions
326327

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @file Type Tests - SystemErrorCode
3+
* @module errnode/enums/tests/unit-d/SystemErrorCode
4+
*/
5+
6+
import type TestSubject from '../error-code-system'
7+
8+
describe('unit-d:enums/SystemErrorCode', () => {
9+
it('should have members of type Uppercase<string>', () => {
10+
// Arrange
11+
type Key = keyof typeof TestSubject
12+
13+
// Expect
14+
expectTypeOf<Key>().toMatchTypeOf<Uppercase<string>>()
15+
expectTypeOf<TestSubject>().toMatchTypeOf<Key>()
16+
expectTypeOf<typeof TestSubject[Key]>().toEqualTypeOf<TestSubject>()
17+
})
18+
})
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* @file Unit Tests - SystemErrorCode
3+
* @module errnode/enums/tests/unit/SystemErrorCode
4+
*/
5+
6+
import { getSystemErrorMap } from 'node:util'
7+
import TestSubject from '../error-code-system'
8+
9+
describe('unit:enums/SystemErrorCode', () => {
10+
let cases: string[]
11+
12+
beforeAll(() => {
13+
cases = [...getSystemErrorMap().values()].map(([code]) => code)
14+
})
15+
16+
it('should map system error codes to system error codes', () => {
17+
cases.forEach(code => {
18+
expect(TestSubject).to.have.property(code).equal(code)
19+
})
20+
})
21+
})

src/enums/error-code-system.ts

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/**
2+
* @file Enums - SystemErrorCode
3+
* @module errnode/enums/SystemErrorCode
4+
*/
5+
6+
/**
7+
* System error codes.
8+
*
9+
* @see https://github.com/nodejs/node/blob/v19.3.0/deps/uv/include/uv.h#L72-L154
10+
*
11+
* @enum {Uppercase<string>}
12+
*/
13+
enum SystemErrorCode {
14+
E2BIG = 'E2BIG',
15+
EACCES = 'EACCES',
16+
EADDRINUSE = 'EADDRINUSE',
17+
EADDRNOTAVAIL = 'EADDRNOTAVAIL',
18+
EAFNOSUPPORT = 'EAFNOSUPPORT',
19+
EAGAIN = 'EAGAIN',
20+
EAI_ADDRFAMILY = 'EAI_ADDRFAMILY',
21+
EAI_AGAIN = 'EAI_AGAIN',
22+
EAI_BADFLAGS = 'EAI_BADFLAGS',
23+
EAI_BADHINTS = 'EAI_BADHINTS',
24+
EAI_CANCELED = 'EAI_CANCELED',
25+
EAI_FAIL = 'EAI_FAIL',
26+
EAI_FAMILY = 'EAI_FAMILY',
27+
EAI_MEMORY = 'EAI_MEMORY',
28+
EAI_NODATA = 'EAI_NODATA',
29+
EAI_NONAME = 'EAI_NONAME',
30+
EAI_OVERFLOW = 'EAI_OVERFLOW',
31+
EAI_PROTOCOL = 'EAI_PROTOCOL',
32+
EAI_SERVICE = 'EAI_SERVICE',
33+
EAI_SOCKTYPE = 'EAI_SOCKTYPE',
34+
EALREADY = 'EALREADY',
35+
EBADF = 'EBADF',
36+
EBADMSG = 'EBADMSG',
37+
EBUSY = 'EBUSY',
38+
ECANCELED = 'ECANCELED',
39+
ECHARSET = 'ECHARSET',
40+
ECHILD = 'ECHILD',
41+
ECONNABORTED = 'ECONNABORTED',
42+
ECONNREFUSED = 'ECONNREFUSED',
43+
ECONNRESET = 'ECONNRESET',
44+
EDEADLK = 'EDEADLK',
45+
EDESTADDRREQ = 'EDESTADDRREQ',
46+
EDOM = 'EDOM',
47+
EDQUOT = 'EDQUOT',
48+
EEXIST = 'EEXIST',
49+
EFAULT = 'EFAULT',
50+
EFBIG = 'EFBIG',
51+
EFTYPE = 'EFTYPE',
52+
EHOSTDOWN = 'EHOSTDOWN',
53+
EHOSTUNREACH = 'EHOSTUNREACH',
54+
EIDRM = 'EIDRM',
55+
EILSEQ = 'EILSEQ',
56+
EINPROGRESS = 'EINPROGRESS',
57+
EINTR = 'EINTR',
58+
EINVAL = 'EINVAL',
59+
EIO = 'EIO',
60+
EISCONN = 'EISCONN',
61+
EISDIR = 'EISDIR',
62+
ELOOP = 'ELOOP',
63+
EMFILE = 'EMFILE',
64+
EMLINK = 'EMLINK',
65+
EMSGSIZE = 'EMSGSIZE',
66+
EMULTIHOP = 'EMULTIHOP',
67+
ENAMETOOLONG = 'ENAMETOOLONG',
68+
ENETDOWN = 'ENETDOWN',
69+
ENETRESET = 'ENETRESET',
70+
ENETUNREACH = 'ENETUNREACH',
71+
ENFILE = 'ENFILE',
72+
ENOBUFS = 'ENOBUFS',
73+
ENODATA = 'ENODATA',
74+
ENODEV = 'ENODEV',
75+
ENOENT = 'ENOENT',
76+
ENOEXEC = 'ENOEXEC',
77+
ENOLCK = 'ENOLCK',
78+
ENOLINK = 'ENOLINK',
79+
ENOMEM = 'ENOMEM',
80+
ENOMSG = 'ENOMSG',
81+
ENONET = 'ENONET',
82+
ENOPROTOOPT = 'ENOPROTOOPT',
83+
ENOSPC = 'ENOSPC',
84+
ENOSR = 'ENOSR',
85+
ENOSTR = 'ENOSTR',
86+
ENOSYS = 'ENOSYS',
87+
ENOTCONN = 'ENOTCONN',
88+
ENOTDIR = 'ENOTDIR',
89+
ENOTEMPTY = 'ENOTEMPTY',
90+
ENOTSOCK = 'ENOTSOCK',
91+
ENOTSUP = 'ENOTSUP',
92+
ENOTTY = 'ENOTTY',
93+
ENXIO = 'ENXIO',
94+
EOF = 'EOF',
95+
EOPNOTSUPP = 'EOPNOTSUPP',
96+
EOVERFLOW = 'EOVERFLOW',
97+
EPERM = 'EPERM',
98+
EPIPE = 'EPIPE',
99+
EPROTO = 'EPROTO',
100+
EPROTONOSUPPORT = 'EPROTONOSUPPORT',
101+
EPROTOTYPE = 'EPROTOTYPE',
102+
ERANGE = 'ERANGE',
103+
EREMOTEIO = 'EREMOTEIO',
104+
EROFS = 'EROFS',
105+
ESHUTDOWN = 'ESHUTDOWN',
106+
ESOCKTNOSUPPORT = 'ESOCKTNOSUPPORT',
107+
ESPIPE = 'ESPIPE',
108+
ESRCH = 'ESRCH',
109+
ESTALE = 'ESTALE',
110+
ETIME = 'ETIME',
111+
ETIMEDOUT = 'ETIMEDOUT',
112+
ETXTBSY = 'ETXTBSY',
113+
EWOULDBLOCK = 'EWOULDBLOCK',
114+
EXDEV = 'EXDEV',
115+
UNKNOWN = 'UNKNOWN'
116+
}
117+
118+
export default SystemErrorCode

src/enums/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
*/
55

66
export { default as ErrorCode } from './error-code'
7+
export { default as SystemErrorCode } from './error-code-system'

0 commit comments

Comments
 (0)