@rapidrest/core 1.1.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/lib/JWTUtils.js +11 -8
  2. package/dist/lib/JWTUtils.js.map +1 -1
  3. package/dist/lib/ObjectFactory.js +5 -5
  4. package/dist/lib/ObjectFactory.js.map +1 -1
  5. package/dist/lib/UserUtils.js +0 -32
  6. package/dist/lib/UserUtils.js.map +1 -1
  7. package/dist/lib/decorators/ObjectDecorators.js +1 -5
  8. package/dist/lib/decorators/ObjectDecorators.js.map +1 -1
  9. package/dist/lib/threads/ThreadPool.js +0 -1
  10. package/dist/lib/threads/ThreadPool.js.map +1 -1
  11. package/dist/types/ObjectFactory.d.ts +4 -3
  12. package/dist/types/UserUtils.d.ts +0 -12
  13. package/dist/types/decorators/ObjectDecorators.d.ts +1 -5
  14. package/dist/types/threads/ThreadPool.d.ts +0 -1
  15. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Config.md +4 -18
  16. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Destroy.md +1 -1
  17. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Init.md +3 -3
  18. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Inject.md +6 -18
  19. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Logger.md +2 -2
  20. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Nullable.md +2 -2
  21. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/functions/Validator.md +2 -16
  22. package/docs/reference/@rapidrest/namespaces/ObjectDecorators/type-aliases/ValidatorFunction.md +2 -2
  23. package/docs/reference/classes/AlertUtils.md +10 -10
  24. package/docs/reference/classes/ApiError.md +10 -22
  25. package/docs/reference/classes/ClassLoader.md +17 -17
  26. package/docs/reference/classes/Event.md +8 -8
  27. package/docs/reference/classes/EventUtils.md +4 -4
  28. package/docs/reference/classes/FileUtils.md +17 -17
  29. package/docs/reference/classes/JWTUtils.md +5 -5
  30. package/docs/reference/classes/MessagingUtils.md +12 -12
  31. package/docs/reference/classes/OASUtils.md +8 -8
  32. package/docs/reference/classes/ObjectFactory.md +25 -23
  33. package/docs/reference/classes/ObjectUtils.md +2 -2
  34. package/docs/reference/classes/StringUtils.md +8 -8
  35. package/docs/reference/classes/ThreadPool.md +25 -25
  36. package/docs/reference/classes/ThreadWorker.md +6 -6
  37. package/docs/reference/classes/UserUtils.md +10 -64
  38. package/docs/reference/classes/ValidationUtils.md +14 -14
  39. package/docs/reference/enumerations/AlertPriority.md +6 -6
  40. package/docs/reference/enumerations/JWTUtilsCompressionMethods.md +2 -2
  41. package/docs/reference/enumerations/WorkerMessageType.md +5 -5
  42. package/docs/reference/functions/sleep.md +3 -3
  43. package/docs/reference/interfaces/Alert.md +14 -14
  44. package/docs/reference/interfaces/AlertAttachment.md +6 -6
  45. package/docs/reference/interfaces/AlertClose.md +5 -5
  46. package/docs/reference/interfaces/AlertUtilsAttachmentOptions.md +6 -6
  47. package/docs/reference/interfaces/AlertUtilsOptions.md +5 -5
  48. package/docs/reference/interfaces/InstanceOptions.md +13 -7
  49. package/docs/reference/interfaces/JWTPayload.md +15 -15
  50. package/docs/reference/interfaces/JWTUser.md +6 -6
  51. package/docs/reference/interfaces/JWTUtilsConfig.md +6 -6
  52. package/docs/reference/interfaces/JWTUtilsPayloadKeyOptions.md +8 -8
  53. package/docs/reference/interfaces/JWTUtilsPayloadOptions.md +5 -5
  54. package/docs/reference/interfaces/JWTUtilsPayloadPasswordOptions.md +9 -9
  55. package/docs/reference/interfaces/NewEvent.md +2 -2
  56. package/docs/reference/interfaces/OriginSettings.md +3 -3
  57. package/docs/reference/interfaces/SlackConfig.md +4 -4
  58. package/docs/reference/interfaces/SmtpAuth.md +3 -3
  59. package/docs/reference/interfaces/SmtpConfig.md +6 -6
  60. package/docs/reference/interfaces/Template.md +24 -24
  61. package/docs/reference/interfaces/TemplateMapBase.md +2 -2
  62. package/docs/reference/interfaces/TwilioConfig.md +5 -5
  63. package/docs/reference/interfaces/WorkerMessage.md +4 -4
  64. package/docs/reference/interfaces/WorkerOptions.md +11 -11
  65. package/docs/reference/type-aliases/BooleanFunc.md +2 -2
  66. package/docs/reference/type-aliases/TemplateMap.md +1 -1
  67. package/docs/reference/type-aliases/WorkerCallback.md +2 -2
  68. package/docs/reference/variables/Logger.md +5 -1
  69. package/package.json +96 -96
@@ -6,10 +6,10 @@
6
6
 
7
7
  # Class: ObjectFactory
8
8
 
9
- Defined in: [src/ObjectFactory.ts:24](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L24)
9
+ Defined in: [src/ObjectFactory.ts:27](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L27)
10
10
 
11
- The `ObjectFactory` is a manager for creating objects based on registered
12
- class types. This allows for the tracking of multiple instances of objects
11
+ The `ObjectFactory` is a manager for creating objects based on registered
12
+ class types. This allows for the tracking of multiple instances of objects
13
13
  so that references can be referenced by unique name.
14
14
 
15
15
  ## Author
@@ -22,7 +22,7 @@ Jean-Philippe Steinmetz
22
22
 
23
23
  > **new ObjectFactory**(`config?`, `logger?`): `ObjectFactory`
24
24
 
25
- Defined in: [src/ObjectFactory.ts:37](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L37)
25
+ Defined in: [src/ObjectFactory.ts:40](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L40)
26
26
 
27
27
  #### Parameters
28
28
 
@@ -44,7 +44,7 @@ Defined in: [src/ObjectFactory.ts:37](https://github.com/rapidrest/core/blob/23a
44
44
 
45
45
  > `readonly` **classes**: `Map`\<`string`, `any`\>
46
46
 
47
- Defined in: [src/ObjectFactory.ts:26](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L26)
47
+ Defined in: [src/ObjectFactory.ts:29](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L29)
48
48
 
49
49
  A map for string fully qualified class names to their class types.
50
50
 
@@ -54,7 +54,7 @@ A map for string fully qualified class names to their class types.
54
54
 
55
55
  > `protected` **config**: `any`
56
56
 
57
- Defined in: [src/ObjectFactory.ts:29](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L29)
57
+ Defined in: [src/ObjectFactory.ts:32](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L32)
58
58
 
59
59
  The global application configuration object.
60
60
 
@@ -64,7 +64,7 @@ The global application configuration object.
64
64
 
65
65
  > `readonly` **instances**: `Map`\<`string`, `any`\>
66
66
 
67
- Defined in: [src/ObjectFactory.ts:32](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L32)
67
+ Defined in: [src/ObjectFactory.ts:35](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L35)
68
68
 
69
69
  A map for the unique name to the intance of a particular class type.
70
70
 
@@ -74,7 +74,7 @@ A map for the unique name to the intance of a particular class type.
74
74
 
75
75
  > `protected` **logger**: `any`
76
76
 
77
- Defined in: [src/ObjectFactory.ts:35](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L35)
77
+ Defined in: [src/ObjectFactory.ts:38](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L38)
78
78
 
79
79
  The application logging utility.
80
80
 
@@ -84,7 +84,7 @@ The application logging utility.
84
84
 
85
85
  > **clear**(): `void`
86
86
 
87
- Defined in: [src/ObjectFactory.ts:104](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L104)
87
+ Defined in: [src/ObjectFactory.ts:107](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L107)
88
88
 
89
89
  Deletes all instantiated objects.
90
90
 
@@ -98,7 +98,7 @@ Deletes all instantiated objects.
98
98
 
99
99
  > **clearAll**(): `void`
100
100
 
101
- Defined in: [src/ObjectFactory.ts:111](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L111)
101
+ Defined in: [src/ObjectFactory.ts:114](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L114)
102
102
 
103
103
  Deletes all instantiated objects and registered class types.
104
104
 
@@ -112,7 +112,7 @@ Deletes all instantiated objects and registered class types.
112
112
 
113
113
  > **destroy**(`objs?`): `Promise`\<`void`\>
114
114
 
115
- Defined in: [src/ObjectFactory.ts:47](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L47)
115
+ Defined in: [src/ObjectFactory.ts:50](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L50)
116
116
 
117
117
  Destroys the specified objects. If `undefined` is passed in, all objects managed by the factory are destroyed.
118
118
 
@@ -132,7 +132,7 @@ Destroys the specified objects. If `undefined` is passed in, all objects managed
132
132
 
133
133
  > **getInitMethods**(`obj`): `Function`[]
134
134
 
135
- Defined in: [src/ObjectFactory.ts:186](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L186)
135
+ Defined in: [src/ObjectFactory.ts:215](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L215)
136
136
 
137
137
  Searches an object for one or more functions that implement a `@Init` decorator.
138
138
 
@@ -156,10 +156,10 @@ The list of functions that implements the `@Init` decorator if found, otherwise
156
156
 
157
157
  > **getInstance**\<`T`\>(`nameOrType`): `T` \| `undefined`
158
158
 
159
- Defined in: [src/ObjectFactory.ts:220](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L220)
159
+ Defined in: [src/ObjectFactory.ts:249](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L249)
160
160
 
161
- Returns the object instance with the given unique name. Unique names take the form `<ClassName>:<InstanceName>`.
162
- It is possible to only specifiy the `<ClassName>`, doing so will automatically look for the `<ClassName>:default`
161
+ Returns the object instance with the given unique name. Unique names take the form `<ClassName>:<InstanceName>`.
162
+ It is possible to only specifiy the `<ClassName>`, doing so will automatically look for the `<ClassName>:default`
163
163
  instance or the first found instance of the given type.
164
164
 
165
165
  #### Type Parameters
@@ -186,9 +186,9 @@ The object instance associated with the given name if found, otherwise `undefine
186
186
 
187
187
  ### initialize()
188
188
 
189
- > **initialize**\<`T`\>(`obj`): `Promise`\<`T`\>
189
+ > **initialize**\<`T`\>(`obj`): `T` \| `Promise`\<`T`\>
190
190
 
191
- Defined in: [src/ObjectFactory.ts:120](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L120)
191
+ Defined in: [src/ObjectFactory.ts:123](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L123)
192
192
 
193
193
  Scans the given object for any properties with the `@Inject` decorator and assigns the correct values.
194
194
 
@@ -208,7 +208,7 @@ The object to initialize with injected defaults
208
208
 
209
209
  #### Returns
210
210
 
211
- `Promise`\<`T`\>
211
+ `T` \| `Promise`\<`T`\>
212
212
 
213
213
  ***
214
214
 
@@ -216,10 +216,10 @@ The object to initialize with injected defaults
216
216
 
217
217
  > **newInstance**\<`T`\>(`type`, `options?`): `T` \| `Promise`\<`T`\>
218
218
 
219
- Defined in: [src/ObjectFactory.ts:265](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L265)
219
+ Defined in: [src/ObjectFactory.ts:292](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L292)
220
220
 
221
- Creates a new instance of the class specified with the provided unique name or type and constructor arguments. If an existing
222
- object has already been created with the given name, that instance is returned, otherwise a new instance is created
221
+ Creates a new instance of the class specified with the provided unique name or type and constructor arguments. If an existing
222
+ object has already been created with the given name, that instance is returned, otherwise a new instance is created
223
223
  using the provided arguments.
224
224
 
225
225
  #### Type Parameters
@@ -234,13 +234,15 @@ using the provided arguments.
234
234
 
235
235
  `any`
236
236
 
237
- The fully qualified name or type of the class to instantiate. If a type is given it's class name will be inferred
237
+ The fully qualified name or type of the class to instantiate. If a type is given it's class name will be inferred
238
238
  via the constructor name.
239
239
 
240
240
  ##### options?
241
241
 
242
242
  [`InstanceOptions`](../interfaces/InstanceOptions.md)
243
243
 
244
+ The options to use when instantiating the new class object.
245
+
244
246
  #### Returns
245
247
 
246
248
  `T` \| `Promise`\<`T`\>
@@ -251,7 +253,7 @@ via the constructor name.
251
253
 
252
254
  > **register**(`clazz`, `fqn?`): `void`
253
255
 
254
- Defined in: [src/ObjectFactory.ts:336](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectFactory.ts#L336)
256
+ Defined in: [src/ObjectFactory.ts:363](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectFactory.ts#L363)
255
257
 
256
258
  Registers the given class type for the provided fully qualified name.
257
259
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: ObjectUtils
8
8
 
9
- Defined in: [src/ObjectUtils.ts:12](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectUtils.ts#L12)
9
+ Defined in: [src/ObjectUtils.ts:12](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectUtils.ts#L12)
10
10
 
11
11
  Utility class for working with objects.
12
12
 
@@ -30,7 +30,7 @@ Jean-Philippe Steinmetz
30
30
 
31
31
  > `static` **validate**(`obj`, `clazz?`, `recurse?`): `void`
32
32
 
33
- Defined in: [src/ObjectUtils.ts:21](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/ObjectUtils.ts#L21)
33
+ Defined in: [src/ObjectUtils.ts:21](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/ObjectUtils.ts#L21)
34
34
 
35
35
  Performs validation of the given object or array. Validation is performed by scanning the object class for properties
36
36
  decorated with `@Validator` and executing the provided validation function.
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Class: StringUtils
8
8
 
9
- Defined in: [src/StringUtils.ts:10](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L10)
9
+ Defined in: [src/StringUtils.ts:10](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L10)
10
10
 
11
11
  Utility functions for working with strings.
12
12
 
@@ -30,7 +30,7 @@ Jean-Philippe Steinmetz
30
30
 
31
31
  > `static` **findAndReplace**(`contents`, `variables`): `string`
32
32
 
33
- Defined in: [src/StringUtils.ts:46](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L46)
33
+ Defined in: [src/StringUtils.ts:46](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L46)
34
34
 
35
35
  Performs a search and replace on the provided contents with the map of variable replacements. The contents
36
36
  must use Mustache formatted tokens such as `{{toreplace}}`.
@@ -59,7 +59,7 @@ A map of key=>value pairs to search for and replace.
59
59
 
60
60
  > `static` **getParameters**(`str`): `string`[]
61
61
 
62
- Defined in: [src/StringUtils.ts:18](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L18)
62
+ Defined in: [src/StringUtils.ts:18](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L18)
63
63
 
64
64
  Returns a list of all parameters contained within the string. A parameter is a bracket delimited substring
65
65
  (e.g. /my/{key}/with/{id}).
@@ -84,7 +84,7 @@ A list of parameters contained in the provided string.
84
84
 
85
85
  > `static` **replaceAll**(`str`, `match`, `prefix`): `string`
86
86
 
87
- Defined in: [src/StringUtils.ts:82](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L82)
87
+ Defined in: [src/StringUtils.ts:82](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L82)
88
88
 
89
89
  Replaces all instances of the match regex pattern with the contents of the inner regular expression pattern for
90
90
  the given string.
@@ -104,9 +104,9 @@ The string to perform replacement on.
104
104
 
105
105
  ##### match
106
106
 
107
- The regular expression pattern to match containing an outer and inner pattern.
107
+ `string` \| `RegExp`
108
108
 
109
- `string` | `RegExp`
109
+ The regular expression pattern to match containing an outer and inner pattern.
110
110
 
111
111
  ##### prefix
112
112
 
@@ -126,7 +126,7 @@ The fully replaced contents of the string.
126
126
 
127
127
  > `static` **toCamelCase**(`str`): `string`
128
128
 
129
- Defined in: [src/StringUtils.ts:100](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L100)
129
+ Defined in: [src/StringUtils.ts:100](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L100)
130
130
 
131
131
  Converts the first character in the given string to be lowercase (e.g. myVariable).
132
132
 
@@ -150,7 +150,7 @@ The string converted to camelCase.
150
150
 
151
151
  > `static` **toPascalCase**(`str`): `string`
152
152
 
153
- Defined in: [src/StringUtils.ts:110](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/StringUtils.ts#L110)
153
+ Defined in: [src/StringUtils.ts:110](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/StringUtils.ts#L110)
154
154
 
155
155
  Converts the first character in the given string to be uppercase (e.g. MyVariable).
156
156
 
@@ -6,30 +6,30 @@
6
6
 
7
7
  # Class: ThreadPool
8
8
 
9
- Defined in: [src/threads/ThreadPool.ts:62](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L62)
9
+ Defined in: [src/threads/ThreadPool.ts:65](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L65)
10
10
 
11
- The `ThreadPool` class provides an interface for managing a pool of execution threads that can be used for parallel
12
- code execution. `ThreadPool` is a wrapper to the `worker_threads` API to add support for multiple `Worker` instances.
11
+ The `ThreadPool` class provides an interface for managing a pool of execution threads that can be used for parallel
12
+ code execution. `ThreadPool` is a wrapper to the `worker_threads` API to add support for multiple `Worker` instances.
13
13
  By default, the pool will create *n* workers corresponding to the number of CPUs (physical + virtual) on the system.
14
14
 
15
15
  There are two ways to start worker threads with the pool.
16
16
 
17
- The first way is to set the `entry` option when calling the `start()` function. This will create a instance of the
18
- `worker_threads` APIs `Worker` class with the specified file as the entry point. Note that this file must be of
19
- type JavaScript (`.js` extension) as the underlying system does not support loading TypeScript. If the `args` option
17
+ The first way is to set the `entry` option when calling the `start()` function. This will create a instance of the
18
+ `worker_threads` APIs `Worker` class with the specified file as the entry point. Note that this file must be of
19
+ type JavaScript (`.js` extension) as the underlying system does not support loading TypeScript. If the `args` option
20
20
  is set, the value will be passed in as the `workerData` to the entry file.
21
21
 
22
- The second way to start a worker thread is by setting the `worker` argument when calling the `start()` function. The
23
- specified `worker` file must contain a `default` export. The `default` export must be a class definition which
24
- extends the `ThreadWorker` abstract class interface. The file can be either JavaScript or TypeScript. When using
25
- this method the `start()` function will return only when all worker instances in each thread of the pool has
26
- successfully returned from its `start()` function. When the `args` option is set, the value(s) will be passed in to
22
+ The second way to start a worker thread is by setting the `worker` argument when calling the `start()` function. The
23
+ specified `worker` file must contain a `default` export. The `default` export must be a class definition which
24
+ extends the `ThreadWorker` abstract class interface. The file can be either JavaScript or TypeScript. When using
25
+ this method the `start()` function will return only when all worker instances in each thread of the pool has
26
+ successfully returned from its `start()` function. When the `args` option is set, the value(s) will be passed in to
27
27
  the constructor on instantiation by the thread executor.
28
28
 
29
- When the `restartOnExit` option is specified, the pool will automatically recreate and start a worker thread on
29
+ When the `restartOnExit` option is specified, the pool will automatically recreate and start a worker thread on
30
30
  the `exit event`.
31
31
 
32
- This class exposes worker messages via the `on()` callback handler function. Registering a callback handler via
32
+ This class exposes worker messages via the `on()` callback handler function. Registering a callback handler via
33
33
  `on()` will propogate all messages from all underlying threads in the pool.
34
34
 
35
35
  ## Author
@@ -40,15 +40,15 @@ Jean-Philippe Steinmetz
40
40
 
41
41
  ### Constructor
42
42
 
43
- > **new ThreadPool**(`max`, `logger?`): `ThreadPool`
43
+ > **new ThreadPool**(`max?`, `logger?`): `ThreadPool`
44
44
 
45
- Defined in: [src/threads/ThreadPool.ts:98](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L98)
45
+ Defined in: [src/threads/ThreadPool.ts:101](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L101)
46
46
 
47
47
  Creates a new `ThreadPool` instance with the specified defaults.
48
48
 
49
49
  #### Parameters
50
50
 
51
- ##### max
51
+ ##### max?
52
52
 
53
53
  `number` = `0`
54
54
 
@@ -70,7 +70,7 @@ The Winston logger instance to forward all worker thread logs to.
70
70
 
71
71
  > `readonly` **workers**: `Worker`[]
72
72
 
73
- Defined in: [src/threads/ThreadPool.ts:74](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L74)
73
+ Defined in: [src/threads/ThreadPool.ts:77](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L77)
74
74
 
75
75
  The list of active worker threads.
76
76
 
@@ -82,7 +82,7 @@ The list of active worker threads.
82
82
 
83
83
  > **get** **max**(): `number`
84
84
 
85
- Defined in: [src/threads/ThreadPool.ts:81](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L81)
85
+ Defined in: [src/threads/ThreadPool.ts:84](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L84)
86
86
 
87
87
  The maximum number of threads that can be created by the pool.
88
88
 
@@ -98,7 +98,7 @@ The maximum number of threads that can be created by the pool.
98
98
 
99
99
  > **get** **size**(): `number`
100
100
 
101
- Defined in: [src/threads/ThreadPool.ts:88](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L88)
101
+ Defined in: [src/threads/ThreadPool.ts:91](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L91)
102
102
 
103
103
  The number of active threads in the pool.
104
104
 
@@ -112,7 +112,7 @@ The number of active threads in the pool.
112
112
 
113
113
  > **on**(`type`, `func`): `void`
114
114
 
115
- Defined in: [src/threads/ThreadPool.ts:251](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L251)
115
+ Defined in: [src/threads/ThreadPool.ts:254](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L254)
116
116
 
117
117
  Registers a new callback function to be notified when the given event type is fired.
118
118
 
@@ -140,7 +140,7 @@ The callback function to register.
140
140
 
141
141
  > **send**(`msg`): `void`
142
142
 
143
- Defined in: [src/threads/ThreadPool.ts:264](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L264)
143
+ Defined in: [src/threads/ThreadPool.ts:267](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L267)
144
144
 
145
145
  Sends the provided message to the next available worker thread. Messages are sent in a round-robin order.
146
146
 
@@ -162,7 +162,7 @@ The message to send the next available worker thread.
162
162
 
163
163
  > **sendAll**(`msg`): `void`
164
164
 
165
- Defined in: [src/threads/ThreadPool.ts:279](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L279)
165
+ Defined in: [src/threads/ThreadPool.ts:282](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L282)
166
166
 
167
167
  Sends the provided message to all worker threads in the pool.
168
168
 
@@ -184,7 +184,7 @@ The message to send to all workers.
184
184
 
185
185
  > **sendTo**(`id`, `msg`): `void`
186
186
 
187
- Defined in: [src/threads/ThreadPool.ts:290](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L290)
187
+ Defined in: [src/threads/ThreadPool.ts:293](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L293)
188
188
 
189
189
  Sends the provided message to the worker thread with the specified id.
190
190
 
@@ -212,7 +212,7 @@ The message to send the next available worker thread.
212
212
 
213
213
  > **start**(`options?`, `num?`): `Promise`\<`void`\>
214
214
 
215
- Defined in: [src/threads/ThreadPool.ts:177](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L177)
215
+ Defined in: [src/threads/ThreadPool.ts:180](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L180)
216
216
 
217
217
  Initializes the thread pool with the initial worker threads and begins execution.
218
218
 
@@ -240,7 +240,7 @@ The number of initial threads to create, cannot be greater than max. Default is
240
240
 
241
241
  > **stop**(): `Promise`\<`void`\>
242
242
 
243
- Defined in: [src/threads/ThreadPool.ts:224](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadPool.ts#L224)
243
+ Defined in: [src/threads/ThreadPool.ts:227](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadPool.ts#L227)
244
244
 
245
245
  Stops all running thread executions.
246
246
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Abstract Class: ThreadWorker
8
8
 
9
- Defined in: [src/threads/ThreadWorker.ts:29](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L29)
9
+ Defined in: [src/threads/ThreadWorker.ts:29](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L29)
10
10
 
11
11
  Provides a simple abstract interface for creating thread workers when using the `ThreadPool` system.
12
12
 
@@ -20,7 +20,7 @@ Jean-Philippe Steinmetz
20
20
 
21
21
  > **new ThreadWorker**(`logger`): `ThreadWorker`
22
22
 
23
- Defined in: [src/threads/ThreadWorker.ts:32](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L32)
23
+ Defined in: [src/threads/ThreadWorker.ts:32](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L32)
24
24
 
25
25
  #### Parameters
26
26
 
@@ -38,7 +38,7 @@ Defined in: [src/threads/ThreadWorker.ts:32](https://github.com/rapidrest/core/b
38
38
 
39
39
  > `protected` **logger**: `any`
40
40
 
41
- Defined in: [src/threads/ThreadWorker.ts:30](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L30)
41
+ Defined in: [src/threads/ThreadWorker.ts:30](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L30)
42
42
 
43
43
  ## Methods
44
44
 
@@ -46,7 +46,7 @@ Defined in: [src/threads/ThreadWorker.ts:30](https://github.com/rapidrest/core/b
46
46
 
47
47
  > `abstract` **onMessage**(`msg`): `void` \| `Promise`\<`void`\>
48
48
 
49
- Defined in: [src/threads/ThreadWorker.ts:41](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L41)
49
+ Defined in: [src/threads/ThreadWorker.ts:41](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L41)
50
50
 
51
51
  Callback function when a message is received from the thread pool manager.
52
52
 
@@ -68,7 +68,7 @@ The message that was received.
68
68
 
69
69
  > `abstract` **start**(): `void` \| `Promise`\<`void`\>
70
70
 
71
- Defined in: [src/threads/ThreadWorker.ts:46](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L46)
71
+ Defined in: [src/threads/ThreadWorker.ts:46](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L46)
72
72
 
73
73
  Starts execution of the thread worker.
74
74
 
@@ -82,7 +82,7 @@ Starts execution of the thread worker.
82
82
 
83
83
  > `abstract` **stop**(): `void` \| `Promise`\<`void`\>
84
84
 
85
- Defined in: [src/threads/ThreadWorker.ts:51](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/threads/ThreadWorker.ts#L51)
85
+ Defined in: [src/threads/ThreadWorker.ts:51](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/threads/ThreadWorker.ts#L51)
86
86
 
87
87
  Stops execution of all work and shuts down the thread worker.
88
88
 
@@ -6,14 +6,14 @@
6
6
 
7
7
  # Class: UserUtils
8
8
 
9
- Defined in: [src/UserUtils.ts:16](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L16)
9
+ Defined in: [src/UserUtils.ts:16](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L16)
10
10
 
11
- Utilities for working with authenticated user objects. An user object is expected to have the following
11
+ Utilities for working with authenticated user objects. An user object is expected to have the following
12
12
  properties.
13
13
 
14
- * `uid` - Universally unique identifier for the user
15
- * `email` - Unique e-mail address for the user
16
- * `roles` - A list of unique names indicating the permissions of the user.
14
+ * `uid` - Universally unique identifier for the user
15
+ * `email` - Unique e-mail address for the user
16
+ * `roles` - A list of unique names indicating the permissions of the user.
17
17
  * `verified` - Indicates if the user's e-mail address has been verified.
18
18
 
19
19
  ## Author
@@ -36,7 +36,7 @@ Jean-Philippe Steinmetz <rapidrests@gmail.com>
36
36
 
37
37
  > `static` **getExternalId**(`user`, `type`): `string` \| `undefined`
38
38
 
39
- Defined in: [src/UserUtils.ts:96](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L96)
39
+ Defined in: [src/UserUtils.ts:60](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L60)
40
40
 
41
41
  Returns the unique identifier of the specified type associated with the given user.
42
42
 
@@ -66,7 +66,7 @@ The unique id of the external provider for the given type if found, otherwise `u
66
66
 
67
67
  > `static` **hasOrganization**(`user`, `organizationUid`): `boolean`
68
68
 
69
- Defined in: [src/UserUtils.ts:22](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L22)
69
+ Defined in: [src/UserUtils.ts:22](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L22)
70
70
 
71
71
  Returns `true` if the given user object is a member of the organization with the specified uid, otherwise returns `false`.
72
72
 
@@ -94,7 +94,7 @@ The universally unique identifier of the persona to search for.
94
94
 
95
95
  > `static` **hasOrganizations**(`user`, `organizationUids?`): `boolean`
96
96
 
97
- Defined in: [src/UserUtils.ts:39](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L39)
97
+ Defined in: [src/UserUtils.ts:39](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L39)
98
98
 
99
99
  Returns `true` if the given user object contains is a member of an organization matching one of the uids in the specified list, otherwise returns `false`.
100
100
 
@@ -118,65 +118,11 @@ The list of universally unique identifiers to search for.
118
118
 
119
119
  ***
120
120
 
121
- ### hasPersona()
122
-
123
- > `static` **hasPersona**(`user`, `personaUid?`): `boolean`
124
-
125
- Defined in: [src/UserUtils.ts:58](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L58)
126
-
127
- Returns `true` if the given user object contains a `Persona` object with the specified uid, otherwise returns `false`.
128
-
129
- #### Parameters
130
-
131
- ##### user
132
-
133
- `any`
134
-
135
- The user object to inspect.
136
-
137
- ##### personaUid?
138
-
139
- `string`
140
-
141
- The universally unique identifier of the persona to search for.
142
-
143
- #### Returns
144
-
145
- `boolean`
146
-
147
- ***
148
-
149
- ### hasPersonas()
150
-
151
- > `static` **hasPersonas**(`user`, `personaUids?`): `boolean`
152
-
153
- Defined in: [src/UserUtils.ts:75](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L75)
154
-
155
- Returns `true` if the given user object contains a `Persona` object matching one of the uids in the specified list, otherwise returns `false`.
156
-
157
- #### Parameters
158
-
159
- ##### user
160
-
161
- `any`
162
-
163
- The user object to inspect.
164
-
165
- ##### personaUids?
166
-
167
- `string`[]
168
-
169
- #### Returns
170
-
171
- `boolean`
172
-
173
- ***
174
-
175
121
  ### hasRole()
176
122
 
177
123
  > `static` **hasRole**(`user`, `role?`, `orgUid?`): `boolean`
178
124
 
179
- Defined in: [src/UserUtils.ts:118](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L118)
125
+ Defined in: [src/UserUtils.ts:82](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L82)
180
126
 
181
127
  Returns `true` if the given user object has a role with the specified name, otherwise returns `false`.
182
128
 
@@ -210,7 +156,7 @@ The unique identifier of an organization whose role will be verified.
210
156
 
211
157
  > `static` **hasRoles**(`user`, `roles?`, `orgUid?`): `boolean`
212
158
 
213
- Defined in: [src/UserUtils.ts:143](https://github.com/rapidrest/core/blob/23a4f312bccd7ea3a0598e320bd5d984466027e5/src/UserUtils.ts#L143)
159
+ Defined in: [src/UserUtils.ts:107](https://github.com/rapidrest/core/blob/0eb0ed1163d4555240daccc189ac59a2ba35179a/src/UserUtils.ts#L107)
214
160
 
215
161
  Returns `true` if the given user object has at least one role from the specified list of names, otherwise returns `false`.
216
162