-
Notifications
You must be signed in to change notification settings - Fork 11
/
errors.js
142 lines (116 loc) · 4.47 KB
/
errors.js
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
130
131
132
133
134
135
136
137
138
139
140
141
142
'use strict'
class PearError extends Error {
static ERR_INVALID_INPUT = ERR_INVALID_INPUT
static ERR_INVALID_LINK = ERR_INVALID_LINK
static ERR_INVALID_APPLING = ERR_INVALID_APPLING
static ERR_INVALID_APP_NAME = ERR_INVALID_APP_NAME
static ERR_INVALID_APP_STORAGE = ERR_INVALID_APP_STORAGE
static ERR_INVALID_PROJECT_DIR = ERR_INVALID_PROJECT_DIR
static ERR_INVALID_GC_RESOURCE = ERR_INVALID_GC_RESOURCE
static ERR_INVALID_CONFIG = ERR_INVALID_CONFIG
static ERR_INVALID_TEMPLATE = ERR_INVALID_TEMPLATE
static ERR_PERMISSION_REQUIRED = ERR_PERMISSION_REQUIRED
static ERR_INTERNAL_ERROR = ERR_INTERNAL_ERROR
static ERR_UNSTAGED = ERR_UNSTAGED
static ERR_DIR_NONEMPTY = ERR_DIR_NONEMPTY
static ERR_OPERATION_FAILED = ERR_OPERATION_FAILED
static ERR_TRACER_FAILED = ERR_TRACER_FAILED
static ERR_HTTP_GONE = ERR_HTTP_GONE
static ERR_HTTP_BAD_REQUEST = ERR_HTTP_BAD_REQUEST
static ERR_HTTP_NOT_FOUND = ERR_HTTP_NOT_FOUND
static ERR_SECRET_NOT_FOUND = ERR_SECRET_NOT_FOUND
static ERR_NOT_FOUND_OR_NOT_CONNECTED = ERR_NOT_FOUND_OR_NOT_CONNECTED
static ERR_COULD_NOT_INFER_MODULE_PATH = ERR_COULD_NOT_INFER_MODULE_PATH
static ERR_INVALID_MANIFEST = ERR_INVALID_MANIFEST
static ERR_ASSERTION = ERR_ASSERTION
static ERR_UNKNOWN = ERR_UNKNOWN
static known = known
constructor (msg, code, fn = PearError, info = null) {
super(msg)
this.code = code
if (this.info !== null) this.info = info
if (Error.captureStackTrace) Error.captureStackTrace(this, fn)
}
}
function known (prefix = 'ERR_', ...prefixes) {
return [...Object.getOwnPropertyNames(PearError).filter((name) => name.startsWith(prefix)), ...prefixes.flatMap((prefix) => known(prefix))]
}
function ERR_INVALID_INPUT (msg) {
return new PearError(msg, 'ERR_INVALID_INPUT', ERR_INVALID_INPUT)
}
function ERR_INVALID_LINK (msg) {
return new PearError(msg, 'ERR_INVALID_LINK', ERR_INVALID_LINK)
}
function ERR_INVALID_APPLING (msg) {
return new PearError(msg, 'ERR_INVALID_APPLING', ERR_INVALID_APPLING)
}
function ERR_INVALID_APP_NAME (msg) {
return new PearError(msg, 'ERR_INVALID_APP_NAME', ERR_INVALID_APP_NAME)
}
function ERR_INVALID_APP_STORAGE (msg) {
return new PearError(msg, 'ERR_INVALID_APP_STORAGE', ERR_INVALID_APP_STORAGE)
}
function ERR_INVALID_PROJECT_DIR (msg) {
return new PearError(msg, 'ERR_INVALID_PROJECT_DIR', ERR_INVALID_PROJECT_DIR)
}
function ERR_INVALID_GC_RESOURCE (msg) {
return new PearError(msg, 'ERR_INVALID_GC_RESOURCE', ERR_INVALID_GC_RESOURCE)
}
function ERR_INVALID_CONFIG (msg) {
return new PearError(msg, 'ERR_INVALID_CONFIG', ERR_INVALID_CONFIG)
}
function ERR_INVALID_TEMPLATE (msg) {
return new PearError(msg, 'ERR_INVALID_TEMPLATE', ERR_INVALID_TEMPLATE)
}
function ERR_PERMISSION_REQUIRED (msg, info = {}) {
return new PearError(msg, 'ERR_PERMISSION_REQUIRED', ERR_PERMISSION_REQUIRED, info)
}
function ERR_HTTP_GONE () {
const err = new PearError('Gone', 'ERR_HTTP_GONE', ERR_HTTP_GONE)
err.status = 410
return err
}
function ERR_HTTP_BAD_REQUEST (msg = 'Bad Request') {
const err = new PearError(msg, 'ERR_HTTP_BAD_REQUEST', ERR_HTTP_BAD_REQUEST)
err.status = 400
return err
}
function ERR_HTTP_NOT_FOUND (msg) {
const err = new PearError(msg, 'ERR_HTTP_NOT_FOUND', ERR_HTTP_NOT_FOUND)
err.status = 404
return err
}
function ERR_SECRET_NOT_FOUND (msg) {
return new PearError(msg, 'ERR_SECRET_NOT_FOUND', ERR_SECRET_NOT_FOUND)
}
function ERR_NOT_FOUND_OR_NOT_CONNECTED (msg) {
return new PearError(msg, 'ERR_NOT_FOUND_OR_NOT_CONNECTED', ERR_NOT_FOUND_OR_NOT_CONNECTED)
}
function ERR_COULD_NOT_INFER_MODULE_PATH (msg) {
return new PearError(msg, 'ERR_COULD_NOT_INFER_MODULE_PATH', ERR_COULD_NOT_INFER_MODULE_PATH)
}
function ERR_INVALID_MANIFEST (msg) {
return new PearError(msg, 'ERR_CONNECTION', ERR_INVALID_MANIFEST)
}
function ERR_INTERNAL_ERROR (msg) {
return new PearError(msg, 'ERR_INTERNAL_ERROR', ERR_INTERNAL_ERROR)
}
function ERR_UNSTAGED (msg) {
return new PearError(msg, 'ERR_UNSTAGED', ERR_UNSTAGED)
}
function ERR_DIR_NONEMPTY (msg) {
return new PearError(msg, 'ERR_DIR_NONEMPTY', ERR_DIR_NONEMPTY)
}
function ERR_OPERATION_FAILED (msg) {
return new PearError(msg, 'ERR_OPERATION_FAILED', ERR_OPERATION_FAILED)
}
function ERR_TRACER_FAILED (msg) {
return new PearError(msg, 'ERR_TRACER_FAILED', ERR_TRACER_FAILED)
}
function ERR_ASSERTION (msg) {
return new PearError(msg, 'ERR_ASSERTION', ERR_ASSERTION)
}
function ERR_UNKNOWN (msg) {
return new PearError(msg, 'ERR_UNKNOWN', ERR_UNKNOWN)
}
module.exports = PearError