| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 | | 'use strict' |  | const { inspect } = require('util') |  |   |  | // adapted from node's internal/errors |  | // https://github.com/nodejs/node/blob/c8a04049/lib/internal/errors.js |  |   |  | // close copy of node's internal SystemError class. |  | class SystemError { |  |   constructor (code, prefix, context) { |  |     // XXX context.code is undefined in all constructors used in cp/polyfill |  |     // that may be a bug copied from node, maybe the constructor should use |  |     // `code` not `errno`?  nodejs/node#41104 |  |     let message = `${prefix}: ${context.syscall} returned ` + |  |                   `${context.code} (${context.message})` |  |   |  |     if (context.path !== undefined) { |  |       message += ` ${context.path}` |  |     } |  |     if (context.dest !== undefined) { |  |       message += ` => ${context.dest}` |  |     } |  |   |  |     this.code = code |  |     Object.defineProperties(this, { |  |       name: { |  |         value: 'SystemError', |  |         enumerable: false, |  |         writable: true, |  |         configurable: true, |  |       }, |  |       message: { |  |         value: message, |  |         enumerable: false, |  |         writable: true, |  |         configurable: true, |  |       }, |  |       info: { |  |         value: context, |  |         enumerable: true, |  |         configurable: true, |  |         writable: false, |  |       }, |  |       errno: { |  |         get () { |  |           return context.errno |  |         }, |  |         set (value) { |  |           context.errno = value |  |         }, |  |         enumerable: true, |  |         configurable: true, |  |       }, |  |       syscall: { |  |         get () { |  |           return context.syscall |  |         }, |  |         set (value) { |  |           context.syscall = value |  |         }, |  |         enumerable: true, |  |         configurable: true, |  |       }, |  |     }) |  |   |  |     if (context.path !== undefined) { |  |       Object.defineProperty(this, 'path', { |  |         get () { |  |           return context.path |  |         }, |  |         set (value) { |  |           context.path = value |  |         }, |  |         enumerable: true, |  |         configurable: true, |  |       }) |  |     } |  |   |  |     if (context.dest !== undefined) { |  |       Object.defineProperty(this, 'dest', { |  |         get () { |  |           return context.dest |  |         }, |  |         set (value) { |  |           context.dest = value |  |         }, |  |         enumerable: true, |  |         configurable: true, |  |       }) |  |     } |  |   } |  |   |  |   toString () { |  |     return `${this.name} [${this.code}]: ${this.message}` |  |   } |  |   |  |   [Symbol.for('nodejs.util.inspect.custom')] (_recurseTimes, ctx) { |  |     return inspect(this, { |  |       ...ctx, |  |       getters: true, |  |       customInspect: false, |  |     }) |  |   } |  | } |  |   |  | function E (code, message) { |  |   module.exports[code] = class NodeError extends SystemError { |  |     constructor (ctx) { |  |       super(code, message, ctx) |  |     } |  |   } |  | } |  |   |  | E('ERR_FS_CP_DIR_TO_NON_DIR', 'Cannot overwrite directory with non-directory') |  | E('ERR_FS_CP_EEXIST', 'Target already exists') |  | E('ERR_FS_CP_EINVAL', 'Invalid src or dest') |  | E('ERR_FS_CP_FIFO_PIPE', 'Cannot copy a FIFO pipe') |  | E('ERR_FS_CP_NON_DIR_TO_DIR', 'Cannot overwrite non-directory with directory') |  | E('ERR_FS_CP_SOCKET', 'Cannot copy a socket file') |  | E('ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY', 'Cannot overwrite symlink in subdirectory of self') |  | E('ERR_FS_CP_UNKNOWN', 'Cannot copy an unknown file type') |  | E('ERR_FS_EISDIR', 'Path is a directory') |  |   |  | module.exports.ERR_INVALID_ARG_TYPE = class ERR_INVALID_ARG_TYPE extends Error { |  |   constructor (name, expected, actual) { |  |     super() |  |     this.code = 'ERR_INVALID_ARG_TYPE' |  |     this.message = `The ${name} argument must be ${expected}. Received ${typeof actual}` |  |   } |  | } | 
 |