-
Notifications
You must be signed in to change notification settings - Fork 0
/
docket-module.js
286 lines (258 loc) · 8.38 KB
/
docket-module.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
/**
* @class docket.DocketModule
* @author Rich Lowe
* @copyright 2018 Rich Lowe
* @added v0.2.0
* @updated v0.3.0
* @updated v0.4.0
* @description Data model class for storing module-level docket entries.
*/
class DocketModule {
/**
* @signature new DocketModule([data])
* @added v0.2.0
* @updated v0.3.0
* @param data Object
* @returns DocketModule
* @description Returns a new [DocketModule] instance, initializing with any key/value pairs provided in `data` with keys
* that match setter method names.
*/
constructor(data = {}) {
this.added(data.added || null);
this.authors(data.authors || []);
this.classes(data.classes || []);
this.copyright(data.copyright || '');
this.description(data.description || '');
this.name(data.name || '');
this.signatures(data.signatures || []);
this.status(data.status || null);
this.updates(data.updates || []);
}
/**
* @signature added()
* @added v0.2.0
* @updated v0.3.0
* @returns DocketAdded
* @description Gets an object containing data about the version this module was added.
*
* @signature added(data)
* @added v0.2.0
* @updated v0.3.0
* @param data DocketAdded
* @throws TypeError
* @description Sets as object containing data about the version this module was added, throwing a [TypeError] if `data` is
* not a valid [DocketAdded].
*/
added(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._added;
/** Setter */
else if ( arg1 === null || ( typeof arg1 == 'object' && arg1.constructor.name == 'DocketAdded' ) )
this._added = arg1;
/** Handle errors */
else
throw new TypeError(`${this.constructor.name}.added(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature authors()
* @added v0.2.0
* @returns Array
* @description Gets the authors array.
*
* @signature authors(authorsArray)
* @added v0.2.0
* @param authorsArray Array
* @throws TypeError
* @description Sets the authors array, throwing a [TypeError] if `authorsArray` is not a valid [Array].
*/
authors(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._authors;
/** Setter */
else if ( typeof arg1 == 'object' && arg1.constructor.name == 'Array' )
this._authors = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.authors(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.authors(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature classes()
* @added v0.2.0
* @returns Array
* @description Gets the classes array.
*
* @signature classes(classesArray)
* @added v0.2.0
* @param classesArray Array
* @throws TypeError
* @description Sets the classes array, throwing a [TypeError] if `classesArray` is not a valid [Array].
*/
classes(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._classes;
/** Setter */
else if ( typeof arg1 == 'object' && arg1.constructor.name == 'Array' )
this._classes = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.classes(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.classes(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature copyright()
* @added v0.2.0
* @returns string
* @description Gets the copyright text.
*
* @signature copyright(text)
* @added v0.2.0
* @param text string
* @throws TypeError
* @description Sets the copyright text, throwing a [TypeError] if `text` is not a valid [string].
*/
copyright(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._copyright;
/** Setter */
else if ( typeof arg1 == 'string' )
this._copyright = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.copyright(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.copyright(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature description()
* @added v0.2.0
* @returns string
* @description Gets the description.
*
* @signature description(text)
* @added v0.2.0
* @param text string
* @throws TypeError
* @description Sets the description, throwing a [TypeError] if `text` is not a valid [string].
*/
description(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._description;
/** Setter */
else if ( typeof arg1 == 'string' )
this._description = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.description(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.description(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature name()
* @added v0.2.0
* @returns string
* @description Gets the name.
*
* @signature name(name)
* @added v0.2.0
* @param name string
* @throws TypeError
* @description Sets the name, throwing a [TypeError] if `name` is not a valid [string].
*/
name(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._name;
/** Setter */
else if ( typeof arg1 == 'string' )
this._name = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.name(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.name(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature signatures()
* @added v0.2.0
* @returns Array
* @description Gets the signatures array.
*
* @signature signatures(signaturesArray)
* @added v0.2.0
* @param signaturesArray Array
* @throws TypeError
* @description Sets the signatures array, throwing a [TypeError] if `signaturesArray` is not a valid [Array].
*/
signatures(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._signatures;
/** Setter */
else if ( typeof arg1 == 'object' && arg1.constructor.name == 'Array' )
this._signatures = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.signatures(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.signatures(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature status()
* @added v0.3.0
* @returns DocketStatus
* @description Gets an object containing data about the status of this module.
*
* @signature status(status)
* @added v0.3.0
* @param status DocketStatus
* @throws TypeError if `status` is not a valid [DocketStatus]
* @description Sets an object containing data about the status of this module.
*/
status(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._status;
/** Setter */
else if ( arg1 === null || ( typeof arg1 == 'object' && arg1.constructor.name == 'DocketStatus' ) )
this._status = arg1;
/** Handle errors */
else
throw new TypeError(`${this.constructor.name}.status(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
/**
* @signature updates()
* @added v0.2.0
* @updated v0.3.0
* @returns Array
* @description Gets an array of the module updates.
*
* @signature updates(updatesArray)
* @added v0.2.0
* @updated v0.3.0
* @param updatesArray Array
* @throws TypeError
* @description Sets an array of the module updates, throwing a [TypeError] if `updatesArray` is not a valid [Array].
*/
updates(arg1) {
/** Getter */
if ( arg1 === undefined )
return this._updates;
/** Setter */
else if ( typeof arg1 == 'object' && arg1.constructor.name == 'Array' )
this._updates = arg1;
/** Handle errors */
else if ( arg1 === null )
throw new TypeError(`${this.constructor.name}.updates(null): Invalid signature.`);
else
throw new TypeError(`${this.constructor.name}.updates(${typeof arg1}[${arg1.constructor.name}]): Invalid signature.`);
}
}
module.exports.DocketModule = DocketModule;