@schukai/monster 3.80.1 → 3.80.2

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
 
4
4
 
5
+ ## [3.80.2] - 2024-10-07
6
+
7
+ ### Bug Fixes
8
+
9
+ - wrong css property [#250](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/250)
10
+ ### Documentation
11
+
12
+ - some optimisations
13
+
14
+
15
+
5
16
  ## [3.80.1] - 2024-10-06
6
17
 
7
18
  ### Bug Fixes
package/package.json CHANGED
@@ -1 +1 @@
1
- {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.11","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.80.1"}
1
+ {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.11","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.80.2"}
@@ -201,8 +201,8 @@ class Collapse extends CustomElement {
201
201
  /**
202
202
  * Open the collapse
203
203
  * @returns {Collapse}
204
- * @fires event:monster-collapse-before-open
205
- * @fires event:monster-collapse-open
204
+ * @fires monster-collapse-before-open
205
+ * @fires monster-collapse-open
206
206
  */
207
207
  open() {
208
208
  let node;
@@ -245,8 +245,8 @@ class Collapse extends CustomElement {
245
245
  /**
246
246
  * Close the collapse
247
247
  * @returns {Collapse}
248
- * @fires event:monster-collapse-before-close
249
- * @fires event:monster-collapse-closed
248
+ * @fires monster-collapse-before-close
249
+ * @fires monster-collapse-closed
250
250
  */
251
251
  close() {
252
252
  if (!this[detailsElementSymbol].classList.contains("active")) {
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  .monster-margin-end-$(i) {
14
- margin-left: var(--monster-space-$(i));
14
+ margin-right: var(--monster-space-$(i));
15
15
  }
16
16
 
17
17
  .monster-margin-bottom-$(i) {
@@ -41,7 +41,6 @@ class DataFetchError extends Error {
41
41
  /**
42
42
  * This method is called by the `instanceof` operator.
43
43
  * @returns {symbol}
44
- * @since 2.1.0
45
44
  */
46
45
  static get [instanceSymbol]() {
47
46
  return Symbol.for(
@@ -32,8 +32,6 @@ const attachedInternalSymbol = Symbol("attachedInternal");
32
32
  * After defining a `CustomElement`, the `registerCustomElement` method must be called with the new class name. Only then
33
33
  * will the tag defined via the `getTag` method be made known to the DOM.
34
34
  *
35
- * <img src="./images/custom-control.png">
36
- *
37
35
  * This control uses `attachInternals()` to integrate the control into a form. If the target environment does not support
38
36
  * this method, the [polyfill](https://www.npmjs.com/package/element-internals-polyfill) can be used.
39
37
  *
@@ -48,18 +46,9 @@ const attachedInternalSymbol = Symbol("attachedInternal");
48
46
  *
49
47
  * Read the HTML specification for Custom Element Reactions: {@link https://html.spec.whatwg.org/dev/custom-elements.html#custom-element-reactions|Custom Element Reactions}.
50
48
  *
51
- * @startuml custom-control.png
52
- * skinparam monochrome true
53
- * skinparam shadowing false
54
- * HTMLElement <|-- CustomElement
55
- * CustomElement <|-- CustomControl
56
- * @enduml
57
49
  * @summary A base class for custom controls based on CustomElement.
58
- * @copyright schukai GmbH
59
50
  * @license AGPLv3
60
51
  * @since 1.14.0
61
- * @memberOf Monster.DOM
62
- * @extends Monster.DOM.CustomElement
63
52
  */
64
53
  class CustomControl extends CustomElement {
65
54
  /**
@@ -74,7 +63,6 @@ class CustomControl extends CustomElement {
74
63
  *
75
64
  * @inheritdoc
76
65
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
77
- * @since 1.7.0
78
66
  */
79
67
  constructor() {
80
68
  super();
@@ -117,14 +105,12 @@ class CustomControl extends CustomElement {
117
105
  *
118
106
  * @see [attachInternals()]{@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/attachInternals}
119
107
  * @see [Custom Elements Face Example]{@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example}
120
- * @since 1.14.0
121
108
  * @return {boolean}
122
109
  */
123
110
  static formAssociated = true;
124
111
 
125
112
  /**
126
113
  * @inheritdoc
127
- * @since 1.14.0
128
114
  **/
129
115
  get defaults() {
130
116
  return extend({}, super.defaults);
@@ -135,7 +121,6 @@ class CustomControl extends CustomElement {
135
121
  *
136
122
  * This is a method of [internal API](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals), which is a part of the web standard for custom elements.
137
123
  *
138
- * @since 1.14.0
139
124
  * @throws {Error} the value getter must be overwritten by the derived class
140
125
  */
141
126
  get value() {
@@ -148,7 +133,6 @@ class CustomControl extends CustomElement {
148
133
  * This is a method of [internal API](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals), which is a part of the web standard for custom elements.
149
134
  *
150
135
  * @param {*} value The value to set.
151
- * @since 1.14.0
152
136
  * @throws {Error} the value setter must be overwritten by the derived class
153
137
  */
154
138
  set value(value) {
@@ -159,7 +143,6 @@ class CustomControl extends CustomElement {
159
143
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
160
144
  *
161
145
  * @return {NodeList}
162
- * @since 1.14.0
163
146
  * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/labels}
164
147
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
165
148
  */
@@ -201,7 +184,6 @@ class CustomControl extends CustomElement {
201
184
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
202
185
  *
203
186
  * @return {string}
204
- * @since 1.14.0
205
187
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/validationMessage
206
188
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
207
189
  */
@@ -213,7 +195,6 @@ class CustomControl extends CustomElement {
213
195
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
214
196
  *
215
197
  * @return {boolean}
216
- * @since 1.14.0
217
198
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/willValidate
218
199
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
219
200
  */
@@ -225,7 +206,6 @@ class CustomControl extends CustomElement {
225
206
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
226
207
  *
227
208
  * @return {boolean}
228
- * @since 1.14.0
229
209
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/states
230
210
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
231
211
  */
@@ -237,7 +217,6 @@ class CustomControl extends CustomElement {
237
217
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
238
218
  *
239
219
  * @return {HTMLFontElement|null}
240
- * @since 1.14.0
241
220
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/form
242
221
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
243
222
  */
@@ -259,7 +238,6 @@ class CustomControl extends CustomElement {
259
238
  *
260
239
  * @param {File|string|FormData} value
261
240
  * @param {File|string|FormData} state
262
- * @since 1.14.0
263
241
  * @return {undefined}
264
242
  * @throws {DOMException} NotSupportedError
265
243
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
@@ -275,7 +253,6 @@ class CustomControl extends CustomElement {
275
253
  * @param {string|undefined} message
276
254
  * @param {HTMLElement} anchor
277
255
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/setValidity
278
- * @since 1.14.0
279
256
  * @return {undefined}
280
257
  * @throws {DOMException} NotSupportedError
281
258
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
@@ -288,7 +265,6 @@ class CustomControl extends CustomElement {
288
265
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
289
266
  *
290
267
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/checkValidity
291
- * @since 1.14.0
292
268
  * @return {boolean}
293
269
  * @throws {DOMException} NotSupportedError
294
270
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
@@ -301,7 +277,6 @@ class CustomControl extends CustomElement {
301
277
  * This is a method of [internal api](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals)
302
278
  *
303
279
  * @return {boolean}
304
- * @since 1.14.0
305
280
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals/reportValidity
306
281
  * @throws {Error} the ElementInternals is not supported and a polyfill is necessary
307
282
  * @throws {DOMException} NotSupportedError
@@ -170,10 +170,6 @@ const scriptHostElementSymbol = Symbol("scriptHostElement");
170
170
  *
171
171
  * You can create an instance of the object via the `document.createElement()` function.
172
172
  *
173
- * ## Interaction
174
- *
175
- * <img src="./images/customelement-sequencediagram.png">
176
- *
177
173
  * ## Styling
178
174
  *
179
175
  * To display custom elements optimally, the `:defined` pseudo-class can be used. To prevent custom elements from being displayed and flickering until the control is registered,
@@ -234,12 +230,9 @@ const scriptHostElementSymbol = Symbol("scriptHostElement");
234
230
  * More information about Custom Elements can be found in the [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements).
235
231
  * And in the [HTML Standard](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements) or in the [WHATWG Wiki](https://wiki.whatwg.org/wiki/Custom_Elements).
236
232
  *
237
- * @externalExample ../../example/dom/theme.mjs
238
233
  * @license AGPLv3
239
234
  * @since 1.7.0
240
235
  * @copyright schukai GmbH
241
- * @memberOf Monster.DOM
242
- * @extends external:HTMLElement
243
236
  * @summary A base class for HTML5 custom controls.
244
237
  */
245
238
  class CustomElement extends HTMLElement {
@@ -250,7 +243,6 @@ class CustomElement extends HTMLElement {
250
243
  * IMPORTANT: CustomControls instances are not created via the constructor, but either via a tag in the HTML or via <code>document.createElement()</code>.
251
244
  *
252
245
  * @throws {Error} the options attribute does not contain a valid json definition.
253
- * @since 1.7.0
254
246
  */
255
247
  constructor() {
256
248
  super();
@@ -30,11 +30,9 @@ const internalTranslationSymbol = Symbol("internalTranslation");
30
30
  /**
31
31
  * The Formatter extends the Text.Formatter with the possibility to replace the key by a translation.
32
32
  *
33
- * @externalExample ../../example/i18n/formatter.mjs
34
33
  * @license AGPLv3
35
34
  * @since 1.26.0
36
35
  * @copyright schukai GmbH
37
- * @memberOf Monster.I18n
38
36
  */
39
37
  class Formatter extends TextFormatter {
40
38
  /**
@@ -20,14 +20,12 @@ import { clone } from "../util/clone.mjs";
20
20
  export { Locale, parseLocale };
21
21
 
22
22
  /**
23
- * @memberOf Monster.I18n
24
23
  * @type {symbol}
25
24
  */
26
25
  const propertiesSymbol = Symbol("properties");
27
26
 
28
27
  /**
29
28
  * @type {symbol}
30
- * @memberOf Monster.I18n
31
29
  */
32
30
  const localeStringSymbol = Symbol("localeString");
33
31
 
@@ -26,7 +26,6 @@ import { Translations } from "./translations.mjs";
26
26
  export { Provider, translationsLinkSymbol };
27
27
 
28
28
  /**
29
- * @memberOf Monster.I18n
30
29
  * @type {symbol}
31
30
  * @license AGPLv3
32
31
  * @since 3.9.0
@@ -42,7 +41,6 @@ const translationsLinkSymbol = Symbol.for(
42
41
  * @license AGPLv3
43
42
  * @since 1.13.0
44
43
  * @copyright schukai GmbH
45
- * @memberOf Monster.I18n
46
44
  * @see {@link https://datatracker.ietf.org/doc/html/rfc3066}
47
45
  */
48
46
  class Provider extends BaseWithOptions {
@@ -35,7 +35,6 @@ export { Translations, getDocumentTranslations };
35
35
  * @license AGPLv3
36
36
  * @since 1.13.0
37
37
  * @copyright schukai GmbH
38
- * @memberOf Monster.I18n
39
38
  * @see https://datatracker.ietf.org/doc/html/rfc3066
40
39
  */
41
40
  class Translations extends Base {
@@ -25,7 +25,6 @@ export { ConsoleHandler };
25
25
  * @license AGPLv3
26
26
  * @since 1.5.0
27
27
  * @copyright schukai GmbH
28
- * @memberOf Monster.Logging.Handler
29
28
  */
30
29
  class ConsoleHandler extends Handler {
31
30
  /**
@@ -25,7 +25,6 @@ export { Handler };
25
25
  * @license AGPLv3
26
26
  * @since 1.5.0
27
27
  * @copyright schukai GmbH
28
- * @memberOf Monster.Logging
29
28
  */
30
29
  class Handler extends Base {
31
30
  constructor() {
@@ -12,8 +12,8 @@
12
12
  * SPDX-License-Identifier: AGPL-3.0
13
13
  */
14
14
 
15
- import { Handler } from "../logging/handler.mjs";
16
- import { LogEntry } from "../logging/logentry.mjs";
15
+ import { Handler } from "./handler.mjs";
16
+ import { LogEntry } from "./logentry.mjs";
17
17
 
18
18
  import { Base } from "../types/base.mjs";
19
19
  import {
@@ -27,49 +27,41 @@ export { Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF };
27
27
  /**
28
28
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
29
29
  * @type {number}
30
- * @memberOf Monster.Logging
31
30
  */
32
31
  const ALL = 255;
33
32
  /**
34
33
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
35
34
  * @type {number}
36
- * @memberOf Monster.Logging
37
35
  */
38
36
  const TRACE = 64;
39
37
  /**
40
38
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
41
39
  * @type {number}
42
- * @memberOf Monster.Logging
43
40
  */
44
41
  const DEBUG = 32;
45
42
  /**
46
43
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
47
44
  * @type {number}
48
- * @memberOf Monster.Logging
49
45
  */
50
46
  const INFO = 16;
51
47
  /**
52
48
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
53
49
  * @type {number}
54
- * @memberOf Monster.Logging
55
50
  */
56
51
  const WARN = 8;
57
52
  /**
58
53
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
59
54
  * @type {number}
60
- * @memberOf Monster.Logging
61
55
  */
62
56
  const ERROR = 4;
63
57
  /**
64
58
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
65
59
  * @type {number}
66
- * @memberOf Monster.Logging
67
60
  */
68
61
  const FATAL = 2;
69
62
  /**
70
63
  * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
71
64
  * @type {number}
72
- * @memberOf Monster.Logging
73
65
  */
74
66
  const OFF = 0;
75
67
 
@@ -79,7 +71,6 @@ const OFF = 0;
79
71
  * @license AGPLv3
80
72
  * @since 1.5.0
81
73
  * @copyright schukai GmbH
82
- * @memberOf Monster.Logging
83
74
  */
84
75
  class Logger extends Base {
85
76
  /**
@@ -25,7 +25,6 @@ const dataSymbol = Symbol("@@data");
25
25
  * @license AGPLv3
26
26
  * @since 3.4.0
27
27
  * @copyright schukai GmbH
28
- * @memberOf Monster.Net.WebSocket
29
28
  * @summary The Message class encapsulates a WebSocket message.
30
29
  */
31
30
  class Message extends Base {
@@ -32,8 +32,7 @@ export { BaseWithOptions };
32
32
  * @license AGPLv3
33
33
  * @since 1.13.0
34
34
  * @copyright schukai GmbH
35
- * @memberOf Monster.Types
36
- * @deprecated since 3.15.0 use {@link Monster.Types.Base} with {@link Monster.Types.equipWithInternal} instead.
35
+ * @deprecated since 3.15.0 use `BaseWithOptions` instead of `BaseWithOptions`
37
36
  */
38
37
  class BaseWithOptions extends Base {
39
38
  /**
@@ -31,11 +31,7 @@ const isNodeListSymbol = Symbol("isNodeList");
31
31
  /**
32
32
  * Represents a recursive iterator for traversing nodes in a DOM tree.
33
33
  *
34
- * @externalExample ../../example/types/noderecursiveiterator.mjs
35
- * @license AGPLv3
36
34
  * @since 1.26.0
37
- * @copyright schukai GmbH
38
- * @memberOf Monster.Types
39
35
  * @summary An iterator to run recursively through a tree of nodes
40
36
  * @extends Base
41
37
  */
@@ -91,7 +87,7 @@ class NodeRecursiveIterator extends Base {
91
87
 
92
88
  /**
93
89
  * @param {function} callback
94
- * @return {Monster.Types.NodeRecursiveIterator}
90
+ * @return {NodeRecursiveIterator}
95
91
  */
96
92
  forEach(callback) {
97
93
  for (const node of this) {
@@ -23,11 +23,8 @@ export { ObservableQueue };
23
23
  *
24
24
  * `Queue.add()` and `Queue.clear()` notify all observers.
25
25
  *
26
- * @externalExample ../../example/types/queue.mjs
27
- * @license AGPLv3
28
26
  * @since 3.3.0
29
27
  * @copyright schukai GmbH
30
- * @memberOf Monster.Types
31
28
  * @summary An observable Queue (Fifo)
32
29
  */
33
30
  class ObservableQueue extends Queue {
@@ -44,7 +41,6 @@ class ObservableQueue extends Queue {
44
41
  /**
45
42
  * This method is called by the `instanceof` operator.
46
43
  * @returns {symbol}
47
- * @since 2.1.0
48
44
  */
49
45
  static get [instanceSymbol]() {
50
46
  return Symbol.for("@schukai/monster/types/observablequeue");
@@ -53,11 +53,8 @@ export { Observer };
53
53
  *
54
54
  * The callback function must have as many parameters as arguments are given.
55
55
  *
56
- * @externalExample ../../example/types/observer.mjs
57
56
  * @license AGPLv3
58
57
  * @since 1.0.0
59
- * @copyright schukai GmbH
60
- * @memberOf Monster.Types
61
58
  */
62
59
  class Observer extends Base {
63
60
  /**
@@ -23,8 +23,6 @@ export { ObserverList };
23
23
  *
24
24
  * @license AGPLv3
25
25
  * @since 1.0.0
26
- * @copyright schukai GmbH
27
- * @memberOf Monster.Types
28
26
  */
29
27
  class ObserverList extends Base {
30
28
  /**
@@ -28,7 +28,6 @@ export { Queue };
28
28
  *
29
29
  * @license AGPLv3
30
30
  * @since 1.4.0
31
- * @copyright schukai GmbH
32
31
  * @summary A Queue (Fifo)
33
32
  */
34
33
  class Queue extends Base {
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
3
+ * Node module: @schukai/monster
4
+ *
5
+ * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
6
+ * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
7
+ *
8
+ * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
9
+ * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
10
+ * For more information about purchasing a commercial license, please contact schukai GmbH.
11
+ *
12
+ * SPDX-License-Identifier: AGPL-3.0
13
+ */
14
+
15
+ import { internalSymbol } from "../../constants.mjs";
16
+ import { getGlobalFunction } from "../../types/global.mjs";
17
+ import { validateFunction, validateInteger } from "../../types/validate.mjs";
18
+
19
+ export { Callback };
20
+
21
+ /**
22
+ * @private
23
+ */
24
+ class Callback {
25
+ /**
26
+ *
27
+ * @param {function} callback
28
+ * @param {int|undefined} time
29
+ * @throws {TypeError} value is not a function
30
+ * @throws {TypeError} value is not an integer
31
+ * @private
32
+ */
33
+ constructor(callback, time) {
34
+ this[internalSymbol] = {
35
+ callback: validateFunction(callback),
36
+ time: validateInteger(time ?? 0),
37
+ };
38
+ }
39
+
40
+ /**
41
+ * @private
42
+ * @param {*} data
43
+ * @return {Promise}
44
+ */
45
+ run(data) {
46
+ return new Promise((resolve, reject) => {
47
+ getGlobalFunction("setTimeout")(() => {
48
+ try {
49
+ resolve(this[internalSymbol].callback(data));
50
+ } catch (e) {
51
+ reject(e);
52
+ }
53
+ }, this[internalSymbol].time);
54
+ });
55
+ }
56
+ }
@@ -14,52 +14,14 @@
14
14
 
15
15
  import { internalSymbol } from "../constants.mjs";
16
16
  import { Base } from "../types/base.mjs";
17
- import { getGlobalFunction } from "../types/global.mjs";
18
17
  import { isFunction, isInteger } from "../types/is.mjs";
19
18
  import { Queue } from "../types/queue.mjs";
20
- import { validateFunction, validateInteger } from "../types/validate.mjs";
19
+ import { Callback } from "./processing/callback.mjs";
21
20
 
22
21
  export { Processing };
23
22
 
24
23
  /**
25
- * @private
26
- */
27
- class Callback {
28
- /**
29
- *
30
- * @param {function} callback
31
- * @param {int|undefined} time
32
- * @throws {TypeError} value is not a function
33
- * @throws {TypeError} value is not an integer
34
- * @private
35
- */
36
- constructor(callback, time) {
37
- this[internalSymbol] = {
38
- callback: validateFunction(callback),
39
- time: validateInteger(time ?? 0),
40
- };
41
- }
42
-
43
- /**
44
- * @private
45
- * @param {*} data
46
- * @return {Promise}
47
- */
48
- run(data) {
49
- return new Promise((resolve, reject) => {
50
- getGlobalFunction("setTimeout")(() => {
51
- try {
52
- resolve(this[internalSymbol].callback(data));
53
- } catch (e) {
54
- reject(e);
55
- }
56
- }, this[internalSymbol].time);
57
- });
58
- }
59
- }
60
-
61
- /**
62
- * This class allows to execute several functions in order.
24
+ * This class allows executing several functions in order.
63
25
  *
64
26
  * Functions and timeouts can be passed. If a timeout is passed, it applies to all further functions.
65
27
  * In the example