@schukai/monster 3.4.2 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. package/example/i18n/providers/embed.mjs +5 -0
  2. package/package.json +1 -1
  3. package/source/constants.mjs +4 -9
  4. package/source/constraints/abstract.mjs +4 -6
  5. package/source/constraints/abstractoperator.mjs +6 -12
  6. package/source/constraints/andoperator.mjs +3 -6
  7. package/source/constraints/invalid.mjs +3 -6
  8. package/source/constraints/isarray.mjs +6 -9
  9. package/source/constraints/isobject.mjs +4 -7
  10. package/source/constraints/namespace.mjs +1 -3
  11. package/source/constraints/oroperator.mjs +26 -25
  12. package/source/constraints/valid.mjs +3 -6
  13. package/source/data/buildmap.mjs +20 -36
  14. package/source/data/buildtree.mjs +29 -29
  15. package/source/data/datasource/namespace.mjs +1 -1
  16. package/source/data/datasource/server/restapi/writeerror.mjs +6 -6
  17. package/source/data/datasource/server/restapi.mjs +51 -65
  18. package/source/data/datasource/server/webconnect.mjs +26 -35
  19. package/source/data/datasource/server.mjs +17 -21
  20. package/source/data/datasource/storage/localstorage.mjs +8 -11
  21. package/source/data/datasource/storage/sessionstorage.mjs +8 -10
  22. package/source/data/datasource/storage.mjs +18 -22
  23. package/source/data/datasource.mjs +27 -43
  24. package/source/data/diff.mjs +20 -32
  25. package/source/data/extend.mjs +20 -14
  26. package/source/data/namespace.mjs +1 -3
  27. package/source/data/pathfinder.mjs +40 -67
  28. package/source/data/pipe.mjs +6 -10
  29. package/source/data/transformer.mjs +141 -157
  30. package/source/dom/assembler.mjs +6 -9
  31. package/source/dom/attributes.mjs +36 -48
  32. package/source/dom/constants.mjs +55 -71
  33. package/source/dom/customcontrol.mjs +16 -21
  34. package/source/dom/customelement.mjs +140 -164
  35. package/source/dom/events.mjs +17 -24
  36. package/source/dom/focusmanager.mjs +30 -48
  37. package/source/dom/locale.mjs +41 -10
  38. package/source/dom/namespace.mjs +1 -1
  39. package/source/dom/ready.mjs +7 -10
  40. package/source/dom/resource/data.mjs +38 -46
  41. package/source/dom/resource/link/namespace.mjs +1 -3
  42. package/source/dom/resource/link/stylesheet.mjs +7 -11
  43. package/source/dom/resource/link.mjs +36 -17
  44. package/source/dom/resource/namespace.mjs +1 -1
  45. package/source/dom/resource/script.mjs +23 -13
  46. package/source/dom/resource.mjs +47 -60
  47. package/source/dom/resourcemanager.mjs +36 -43
  48. package/source/dom/template.mjs +17 -24
  49. package/source/dom/theme.mjs +8 -12
  50. package/source/dom/updater.mjs +150 -196
  51. package/source/dom/util.mjs +11 -12
  52. package/source/dom/worker/factory.mjs +21 -25
  53. package/source/dom/worker/namespace.mjs +1 -1
  54. package/source/i18n/formatter.mjs +20 -24
  55. package/source/i18n/locale.mjs +40 -42
  56. package/source/i18n/namespace.mjs +1 -1
  57. package/source/i18n/provider.mjs +4 -7
  58. package/source/i18n/providers/embed.mjs +115 -0
  59. package/source/i18n/providers/fetch.mjs +33 -38
  60. package/source/i18n/translations.mjs +16 -20
  61. package/source/logging/handler/console.mjs +6 -10
  62. package/source/logging/handler.mjs +15 -18
  63. package/source/logging/logentry.mjs +8 -9
  64. package/source/logging/logger.mjs +73 -55
  65. package/source/logging/namespace.mjs +1 -1
  66. package/source/math/namespace.mjs +1 -1
  67. package/source/math/random.mjs +13 -14
  68. package/source/monster.mjs +132 -100
  69. package/source/net/namespace.mjs +1 -3
  70. package/source/net/webconnect/message.mjs +6 -8
  71. package/source/net/webconnect/namespace.mjs +1 -3
  72. package/source/net/webconnect.mjs +28 -39
  73. package/source/text/formatter.mjs +44 -55
  74. package/source/types/base.mjs +16 -26
  75. package/source/types/basewithoptions.mjs +8 -14
  76. package/source/types/binary.mjs +4 -5
  77. package/source/types/dataurl.mjs +19 -27
  78. package/source/types/global.mjs +14 -26
  79. package/source/types/id.mjs +4 -6
  80. package/source/types/is.mjs +11 -16
  81. package/source/types/mediatype.mjs +29 -44
  82. package/source/types/namespace.mjs +0 -1
  83. package/source/types/node.mjs +16 -22
  84. package/source/types/nodelist.mjs +10 -14
  85. package/source/types/noderecursiveiterator.mjs +11 -14
  86. package/source/types/observablequeue.mjs +13 -16
  87. package/source/types/observer.mjs +16 -23
  88. package/source/types/observerlist.mjs +18 -21
  89. package/source/types/proxyobserver.mjs +24 -37
  90. package/source/types/queue.mjs +8 -13
  91. package/source/types/randomid.mjs +10 -10
  92. package/source/types/regex.mjs +3 -5
  93. package/source/types/stack.mjs +4 -8
  94. package/source/types/tokenlist.mjs +24 -31
  95. package/source/types/typeof.mjs +5 -7
  96. package/source/types/uniquequeue.mjs +8 -13
  97. package/source/types/uuid.mjs +18 -25
  98. package/source/types/validate.mjs +26 -27
  99. package/source/types/version.mjs +17 -25
  100. package/source/util/clone.mjs +23 -32
  101. package/source/util/comparator.mjs +7 -15
  102. package/source/util/deadmansswitch.mjs +16 -23
  103. package/source/util/freeze.mjs +5 -7
  104. package/source/util/namespace.mjs +1 -1
  105. package/source/util/processing.mjs +33 -39
  106. package/source/util/trimspaces.mjs +17 -24
  107. package/test/cases/dom/locale.mjs +15 -0
  108. package/test/cases/i18n/providers/embed.mjs +72 -0
  109. package/test/cases/monster.mjs +1 -1
@@ -5,13 +5,13 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol,instanceSymbol} from "../../../../constants.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../../../constants.mjs";
9
9
 
10
- export {WriteError}
10
+ export { WriteError };
11
11
 
12
12
  /**
13
13
  * Error message for API requests with extension of request and validation.
14
- *
14
+ *
15
15
  * @license AGPLv3
16
16
  * @since 1.24.0
17
17
  * @copyright schukai GmbH
@@ -28,7 +28,7 @@ class WriteError extends Error {
28
28
  super(message);
29
29
  this[internalSymbol] = {
30
30
  response: response,
31
- validation: validation
31
+ validation: validation,
32
32
  };
33
33
  }
34
34
 
@@ -45,13 +45,13 @@ class WriteError extends Error {
45
45
  * @return {Response}
46
46
  */
47
47
  getResponse() {
48
- return this[internalSymbol]['response']
48
+ return this[internalSymbol]["response"];
49
49
  }
50
50
 
51
51
  /**
52
52
  * @return {Object}
53
53
  */
54
54
  getValidation() {
55
- return this[internalSymbol]['validation']
55
+ return this[internalSymbol]["validation"];
56
56
  }
57
57
  }
@@ -5,14 +5,14 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol, instanceSymbol} from "../../../constants.mjs";
9
- import {isObject} from "../../../types/is.mjs";
10
- import {Server} from "../server.mjs";
11
- import {Pathfinder} from "../../pathfinder.mjs";
12
- import {Pipe} from "../../pipe.mjs";
13
- import {WriteError} from "./restapi/writeerror.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../../constants.mjs";
9
+ import { isObject } from "../../../types/is.mjs";
10
+ import { Server } from "../server.mjs";
11
+ import { Pathfinder } from "../../pathfinder.mjs";
12
+ import { Pipe } from "../../pipe.mjs";
13
+ import { WriteError } from "./restapi/writeerror.mjs";
14
14
 
15
- export {RestAPI}
15
+ export { RestAPI };
16
16
 
17
17
  /**
18
18
  * The RestAPI is a class that enables a REST API server.
@@ -25,7 +25,6 @@ export {RestAPI}
25
25
  * @summary The RestAPI is a class that binds a REST API server.
26
26
  */
27
27
  class RestAPI extends Server {
28
-
29
28
  /**
30
29
  *
31
30
  * @param {Object} [options] options contains definitions for the datasource.
@@ -36,7 +35,6 @@ class RestAPI extends Server {
36
35
  if (isObject(options)) {
37
36
  this.setOptions(options);
38
37
  }
39
-
40
38
  }
41
39
 
42
40
  /**
@@ -76,34 +74,33 @@ class RestAPI extends Server {
76
74
  return Object.assign({}, super.defaults, {
77
75
  write: {
78
76
  init: {
79
- method: 'POST',
77
+ method: "POST",
80
78
  },
81
79
  acceptedStatus: [200, 201],
82
80
  url: undefined,
83
81
  mapping: {
84
82
  transformer: undefined,
85
- callbacks: []
83
+ callbacks: [],
86
84
  },
87
85
  sheathing: {
88
86
  object: undefined,
89
87
  path: undefined,
90
88
  },
91
89
  report: {
92
- path: undefined
93
- }
90
+ path: undefined,
91
+ },
94
92
  },
95
93
  read: {
96
94
  init: {
97
- method: 'GET'
95
+ method: "GET",
98
96
  },
99
97
  acceptedStatus: [200],
100
98
  url: undefined,
101
99
  mapping: {
102
100
  transformer: undefined,
103
- callbacks: []
101
+ callbacks: [],
104
102
  },
105
103
  },
106
-
107
104
  });
108
105
  }
109
106
 
@@ -114,17 +111,15 @@ class RestAPI extends Server {
114
111
  * @throws {Error} the data cannot be read
115
112
  */
116
113
  read() {
117
-
118
114
  const self = this;
119
115
 
120
- let init = self.getOption('read.init');
116
+ let init = self.getOption("read.init");
121
117
  if (!isObject(init)) init = {};
122
- if (!init['method']) init['method'] = 'GET';
118
+ if (!init["method"]) init["method"] = "GET";
123
119
 
124
- return fetchData.call(this, 'read', (obj) => {
120
+ return fetchData.call(this, "read", (obj) => {
125
121
  self.set(self.transformServerPayload.call(self, obj));
126
122
  });
127
-
128
123
  }
129
124
 
130
125
  /**
@@ -132,76 +127,67 @@ class RestAPI extends Server {
132
127
  * @throws {WriteError} the data cannot be written
133
128
  */
134
129
  write() {
135
-
136
130
  const self = this;
137
131
 
138
- let init = self.getOption('write.init');
132
+ let init = self.getOption("write.init");
139
133
  if (!isObject(init)) init = {};
140
- if (typeof init['headers'] !== 'object') {
141
- init['headers'] = {
142
- 'Content-Type': 'application/json'
143
- }
134
+ if (typeof init["headers"] !== "object") {
135
+ init["headers"] = {
136
+ "Content-Type": "application/json",
137
+ };
144
138
  }
145
- if (!init['method']) init['method'] = 'POST';
139
+ if (!init["method"]) init["method"] = "POST";
146
140
 
147
141
  let obj = self.prepareServerPayload(self.get());
148
- init['body'] = JSON.stringify(obj);
142
+ init["body"] = JSON.stringify(obj);
149
143
 
150
- return fetchData.call(this, init, 'write');
144
+ return fetchData.call(this, init, "write");
151
145
  }
152
146
 
153
-
154
147
  /**
155
148
  * @return {RestAPI}
156
149
  */
157
150
  getClone() {
158
151
  const self = this;
159
- return new RestAPI(self[internalSymbol].getRealSubject()['options'].read, self[internalSymbol].getRealSubject()['options'].write);
152
+ return new RestAPI(
153
+ self[internalSymbol].getRealSubject()["options"].read,
154
+ self[internalSymbol].getRealSubject()["options"].write,
155
+ );
160
156
  }
161
-
162
157
  }
163
158
 
164
-
165
159
  function fetchData(init, key, callback) {
166
-
167
160
  const self = this;
168
161
  let response;
169
162
 
163
+ return fetch(self.getOption(`${key}.url`), init)
164
+ .then((resp) => {
165
+ response = resp;
170
166
 
171
- return fetch(self.getOption(key + '.url'), init).then(resp => {
172
- response = resp;
173
-
174
- const acceptedStatus = self.getOption(key + '.acceptedStatus', [200]);
167
+ const acceptedStatus = self.getOption(`${key}.acceptedStatus`, [200]);
175
168
 
176
- if (acceptedStatus.indexOf(resp.status) === -1) {
177
- throw Error('the data cannot be ' + key + ' (response ' + resp.status + ')')
178
- }
179
-
180
- return resp.text()
181
- }).then(body => {
182
-
183
- let obj;
184
-
185
- try {
186
- obj = JSON.parse(body);
187
-
188
- } catch (e) {
189
-
190
- if (body.length > 100) {
191
- body = body.substring(0, 97) + '...';
169
+ if (acceptedStatus.indexOf(resp.status) === -1) {
170
+ throw Error(`the data cannot be ${key} (response ${resp.status})`);
192
171
  }
193
172
 
194
- throw new Error('the response does not contain a valid json (actual: ' + body + ').');
195
- }
173
+ return resp.text();
174
+ })
175
+ .then((body) => {
176
+ let obj;
196
177
 
197
- if (callback && isFunction(callback)) {
198
- callback(obj);
199
- }
200
- return response;
201
-
202
- });
178
+ try {
179
+ obj = JSON.parse(body);
180
+ } catch (e) {
181
+ if (body.length > 100) {
182
+ body = `${body.substring(0, 97)}...`;
183
+ }
203
184
 
185
+ throw new Error(`the response does not contain a valid json (actual: ${body}).`);
186
+ }
204
187
 
188
+ if (callback && isFunction(callback)) {
189
+ callback(obj);
190
+ }
191
+ return response;
192
+ });
205
193
  }
206
-
207
-
@@ -5,13 +5,13 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol, instanceSymbol} from "../../../constants.mjs";
9
- import {isString, isObject} from "../../../types/is.mjs";
10
- import {WebConnect as NetWebConnect} from "../../../net/webconnect.mjs";
11
- import {Message} from "../../../net/webconnect/message.mjs";
12
- import {Server} from "../server.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../../constants.mjs";
9
+ import { isString, isObject } from "../../../types/is.mjs";
10
+ import { WebConnect as NetWebConnect } from "../../../net/webconnect.mjs";
11
+ import { Message } from "../../../net/webconnect/message.mjs";
12
+ import { Server } from "../server.mjs";
13
13
 
14
- export {WebConnect}
14
+ export { WebConnect };
15
15
 
16
16
  /**
17
17
  * @private
@@ -21,8 +21,6 @@ export {WebConnect}
21
21
  */
22
22
  const webConnectSymbol = Symbol("connection");
23
23
 
24
-
25
-
26
24
  /**
27
25
  * The RestAPI is a class that enables a REST API server.
28
26
  *
@@ -34,32 +32,31 @@ const webConnectSymbol = Symbol("connection");
34
32
  * @summary The LocalStorage class encapsulates the access to data objects.
35
33
  */
36
34
  class WebConnect extends Server {
37
-
38
35
  /**
39
36
  *
40
37
  * @param {Object} [options] options contains definitions for the datasource.
41
38
  */
42
39
  constructor(options) {
43
40
  super();
44
-
41
+
45
42
  const self = this;
46
43
 
47
44
  if (isString(options)) {
48
- options = {url: options};
45
+ options = { url: options };
49
46
  }
50
47
 
51
48
  if (!isObject(options)) options = {};
52
49
  this.setOptions(options);
53
50
  this[webConnectSymbol] = new NetWebConnect({
54
- url: self.getOption('url'),
51
+ url: self.getOption("url"),
55
52
  connection: {
56
- timeout: self.getOption('connection.timeout'),
53
+ timeout: self.getOption("connection.timeout"),
57
54
  reconnect: {
58
- timeout: self.getOption('connection.reconnect.timeout'),
59
- attempts: self.getOption('connection.reconnect.attempts'),
60
- enabled: self.getOption('connection.reconnect.enabled')
61
- }
62
- }
55
+ timeout: self.getOption("connection.reconnect.timeout"),
56
+ attempts: self.getOption("connection.reconnect.attempts"),
57
+ enabled: self.getOption("connection.reconnect.enabled"),
58
+ },
59
+ },
63
60
  });
64
61
  }
65
62
 
@@ -112,7 +109,7 @@ class WebConnect extends Server {
112
109
  write: {
113
110
  mapping: {
114
111
  transformer: undefined,
115
- callbacks: {}
112
+ callbacks: {},
116
113
  },
117
114
  sheathing: {
118
115
  object: undefined,
@@ -122,7 +119,7 @@ class WebConnect extends Server {
122
119
  read: {
123
120
  mapping: {
124
121
  transformer: undefined,
125
- callbacks: {}
122
+ callbacks: {},
126
123
  },
127
124
  path: undefined,
128
125
  },
@@ -132,8 +129,8 @@ class WebConnect extends Server {
132
129
  timeout: 1000,
133
130
  attempts: 1,
134
131
  enabled: false,
135
- }
136
- }
132
+ },
133
+ },
137
134
  });
138
135
  }
139
136
 
@@ -153,30 +150,26 @@ class WebConnect extends Server {
153
150
  const self = this;
154
151
 
155
152
  return new Promise((resolve, reject) => {
156
-
157
153
  while (this[webConnectSymbol].dataReceived() === true) {
158
154
  let obj = this[webConnectSymbol].poll();
159
155
  if (!isObject(obj)) {
160
- reject(new Error('The received data is not an object.'));
156
+ reject(new Error("The received data is not an object."));
161
157
  return;
162
158
  }
163
159
 
164
160
  if (!(obj instanceof Message)) {
165
- reject(new Error('The received data is not a Message.'));
161
+ reject(new Error("The received data is not a Message."));
166
162
  return;
167
163
  }
168
164
 
169
165
  obj = obj.getData();
170
166
  obj = self.transformServerPayload.call(self, obj);
171
- self.set( obj);
167
+ self.set(obj);
172
168
  }
173
169
 
174
170
  resolve(self.get());
175
-
176
- })
177
-
178
- };
179
-
171
+ });
172
+ }
180
173
 
181
174
  /**
182
175
  * @return {Promise}
@@ -184,7 +177,7 @@ class WebConnect extends Server {
184
177
  write() {
185
178
  const self = this;
186
179
  let obj = self.prepareServerPayload(self.get());
187
- return self[webConnectSymbol].send(obj)
180
+ return self[webConnectSymbol].send(obj);
188
181
  }
189
182
 
190
183
  /**
@@ -192,8 +185,6 @@ class WebConnect extends Server {
192
185
  */
193
186
  getClone() {
194
187
  const self = this;
195
- return new WebConnect(self[internalSymbol].getRealSubject()['options']);
188
+ return new WebConnect(self[internalSymbol].getRealSubject()["options"]);
196
189
  }
197
-
198
190
  }
199
-
@@ -5,13 +5,13 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol,instanceSymbol} from "../../constants.mjs";
9
- import {isObject} from "../../types/is.mjs";
10
- import {Datasource} from "../datasource.mjs";
11
- import {Pathfinder} from "../pathfinder.mjs";
12
- import {Pipe} from "../pipe.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../constants.mjs";
9
+ import { isObject } from "../../types/is.mjs";
10
+ import { Datasource } from "../datasource.mjs";
11
+ import { Pathfinder } from "../pathfinder.mjs";
12
+ import { Pipe } from "../pipe.mjs";
13
13
 
14
- export {Server}
14
+ export { Server };
15
15
 
16
16
  /**
17
17
  * Base class for all server datasources
@@ -23,7 +23,6 @@ export {Server}
23
23
  * @summary The Server class encapsulates the access to a server datasource
24
24
  */
25
25
  class Server extends Datasource {
26
-
27
26
  /**
28
27
  * This method is called by the `instanceof` operator.
29
28
  * @returns {symbol}
@@ -32,7 +31,6 @@ class Server extends Datasource {
32
31
  return Symbol.for("@schukai/monster/data/datasource/server");
33
32
  }
34
33
 
35
-
36
34
  /**
37
35
  * This prepares the data that comes from the server.
38
36
  * Should not be called directly.
@@ -43,11 +41,11 @@ class Server extends Datasource {
43
41
  */
44
42
  transformServerPayload(payload) {
45
43
  const self = this;
46
- payload = doTransform.call(self, 'read', payload);
44
+ payload = doTransform.call(self, "read", payload);
47
45
 
48
- const dataPath = self.getOption('read.path');
46
+ const dataPath = self.getOption("read.path");
49
47
  if (dataPath) {
50
- payload = (new Pathfinder(payload)).getVia(dataPath);
48
+ payload = new Pathfinder(payload).getVia(dataPath);
51
49
  }
52
50
 
53
51
  return payload;
@@ -63,39 +61,37 @@ class Server extends Datasource {
63
61
  prepareServerPayload(payload) {
64
62
  const self = this;
65
63
 
66
- payload = doTransform.call(self, 'write', payload);
64
+ payload = doTransform.call(self, "write", payload);
67
65
 
68
- let sheathingObject = self.getOption('write.sheathing.object');
69
- let sheathingPath = self.getOption('write.sheathing.path');
66
+ let sheathingObject = self.getOption("write.sheathing.object");
67
+ let sheathingPath = self.getOption("write.sheathing.path");
70
68
 
71
69
  if (sheathingObject && sheathingPath) {
72
70
  const sub = payload;
73
71
  payload = sheathingObject;
74
- (new Pathfinder(payload)).setVia(sheathingPath, sub);
72
+ new Pathfinder(payload).setVia(sheathingPath, sub);
75
73
  }
76
74
 
77
75
  return payload;
78
76
  }
79
-
80
77
  }
81
78
 
82
-
83
79
  /**
84
- *
80
+ * @private
85
81
  * @param self
86
82
  * @param obj
87
83
  * @returns {*}
88
84
  */
89
85
  function doTransform(type, obj) {
90
86
  const self = this;
91
- let transformation = self.getOption(type + '.mapping.transformer');
87
+ let transformation = self.getOption(`${type}.mapping.transformer`);
92
88
  if (transformation !== undefined) {
93
89
  const pipe = new Pipe(transformation);
94
- const callbacks = self.getOption(type + '.mapping.callbacks')
90
+ const callbacks = self.getOption(`${type}.mapping.callbacks`);
95
91
 
96
92
  if (isObject(callbacks)) {
97
93
  for (const key in callbacks) {
98
- if (callbacks.hasOwnProperty(key) && typeof callbacks[key] === 'function') {
94
+ if (callbacks.hasOwnProperty(key) && typeof callbacks[key] === "function") {
99
95
  pipe.setCallback(key, callbacks[key]);
100
96
  }
101
97
  }
@@ -5,16 +5,16 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
9
- import {getGlobalObject} from "../../../types/global.mjs";
10
- import {Datasource} from "../../datasource.mjs";
11
- import {Storage, storageObjectSymbol} from "../storage.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../../constants.mjs";
9
+ import { getGlobalObject } from "../../../types/global.mjs";
10
+ import { Datasource } from "../../datasource.mjs";
11
+ import { Storage, storageObjectSymbol } from "../storage.mjs";
12
12
 
13
- export {LocalStorage}
13
+ export { LocalStorage };
14
14
 
15
15
  /**
16
16
  * The LocalStorage Datasource provides a data store in the browser localStorage.
17
- *
17
+ *
18
18
  * @license AGPLv3
19
19
  * @since 1.22.0
20
20
  * @copyright schukai GmbH
@@ -22,14 +22,13 @@ export {LocalStorage}
22
22
  * @summary The LocalStorage class encapsulates the access to data objects.
23
23
  */
24
24
  class LocalStorage extends Storage {
25
-
26
25
  /**
27
26
  * @throws {Error} this method must be implemented by derived classes.
28
27
  * @return {external:localStorage}
29
28
  * @private
30
29
  */
31
30
  [storageObjectSymbol]() {
32
- return getGlobalObject('localStorage');
31
+ return getGlobalObject("localStorage");
33
32
  }
34
33
 
35
34
  /**
@@ -47,8 +46,6 @@ class LocalStorage extends Storage {
47
46
  */
48
47
  getClone() {
49
48
  const self = this;
50
- return new LocalStorage(self[internalSymbol].getRealSubject()['options'].key);
49
+ return new LocalStorage(self[internalSymbol].getRealSubject()["options"].key);
51
50
  }
52
-
53
-
54
51
  }
@@ -5,12 +5,12 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalSymbol,instanceSymbol} from "../../../constants.mjs";
9
- import {getGlobalObject} from "../../../types/global.mjs";
10
- import {Datasource} from "../../datasource.mjs";
11
- import {Storage, storageObjectSymbol} from "../storage.mjs";
8
+ import { internalSymbol, instanceSymbol } from "../../../constants.mjs";
9
+ import { getGlobalObject } from "../../../types/global.mjs";
10
+ import { Datasource } from "../../datasource.mjs";
11
+ import { Storage, storageObjectSymbol } from "../storage.mjs";
12
12
 
13
- export {SessionStorage}
13
+ export { SessionStorage };
14
14
 
15
15
  /**
16
16
  * The SessionStorage class provides a data source that uses the SessionStorage API on the client.
@@ -22,14 +22,13 @@ export {SessionStorage}
22
22
  * @summary The LocalStorage class encapsulates the access to data objects.
23
23
  */
24
24
  class SessionStorage extends Storage {
25
-
26
25
  /**
27
26
  * @throws {Error} this method must be implemented by derived classes.
28
27
  * @return {external:sessionStorage}
29
28
  * @private
30
29
  */
31
30
  [storageObjectSymbol]() {
32
- return getGlobalObject('sessionStorage');
31
+ return getGlobalObject("sessionStorage");
33
32
  }
34
33
 
35
34
  /**
@@ -43,12 +42,11 @@ class SessionStorage extends Storage {
43
42
 
44
43
  /**
45
44
  * Create Clone
46
- *
45
+ *
47
46
  * @return {SessionStorage}
48
47
  */
49
48
  getClone() {
50
49
  const self = this;
51
- return new SessionStorage(self[internalSymbol].getRealSubject()['options'].key);
50
+ return new SessionStorage(self[internalSymbol].getRealSubject()["options"].key);
52
51
  }
53
-
54
52
  }