File size: 1,792 Bytes
95ca844
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
/**
 * @fileoverview Common error classes
 * @author Nicholas C. Zakas
 */

/**
 * Error thrown when a file or directory is not found.
 */
export class NotFoundError extends Error {
	/**
	 * Name of the error class.
	 * @type {string}
	 */
	name = "NotFoundError";

	/**
	 * Error code.
	 * @type {string}
	 */
	code = "ENOENT";

	/**
	 * Creates a new instance.
	 * @param {string} message The error message.
	 */
	constructor(message) {
		super(`ENOENT: No such file or directory, ${message}`);
	}
}

/**
 * Error thrown when an operation is not permitted.
 */
export class PermissionError extends Error {
	/**
	 * Name of the error class.
	 * @type {string}
	 */
	name = "PermissionError";

	/**
	 * Error code.
	 * @type {string}
	 */
	code = "EPERM";

	/**
	 * Creates a new instance.
	 * @param {string} message The error message.
	 */
	constructor(message) {
		super(`EPERM: Operation not permitted, ${message}`);
	}
}

/**
 * Error thrown when an operation is not allowed on a directory.
 */

export class DirectoryError extends Error {
	/**
	 * Name of the error class.
	 * @type {string}
	 */
	name = "DirectoryError";

	/**
	 * Error code.
	 * @type {string}
	 */
	code = "EISDIR";

	/**
	 * Creates a new instance.
	 * @param {string} message The error message.
	 */
	constructor(message) {
		super(`EISDIR: Illegal operation on a directory, ${message}`);
	}
}

/**
 * Error thrown when a directory is not empty.
 */
export class NotEmptyError extends Error {
	/**
	 * Name of the error class.
	 * @type {string}
	 */
	name = "NotEmptyError";

	/**
	 * Error code.
	 * @type {string}
	 */
	code = "ENOTEMPTY";

	/**
	 * Creates a new instance.
	 * @param {string} message The error message.
	 */
	constructor(message) {
		super(`ENOTEMPTY: Directory not empty, ${message}`);
	}
}