@schukai/monster 3.10.0 → 3.11.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.
package/package.json
CHANGED
|
@@ -49,6 +49,7 @@ class RestAPI extends Server {
|
|
|
49
49
|
* @property {Object} write.init={} An options object containing any custom settings that you want to apply to the request. The parameters are identical to those of the {@link https://developer.mozilla.org/en-US/docs/Web/API/Request/Request|Request constructor}
|
|
50
50
|
* @property {string} write.init.method=POST
|
|
51
51
|
* @property {Object} write.init.headers Object containing any custom headers that you want to apply to the request.
|
|
52
|
+
* @property {string} write.responseCallback Callback function to be executed after the request has been completed.
|
|
52
53
|
* @property {string} write.acceptedStatus=[200,201]
|
|
53
54
|
* @property {string} write.url URL
|
|
54
55
|
* @property {Object} write.mapping the mapping is applied before writing.
|
|
@@ -74,6 +75,7 @@ class RestAPI extends Server {
|
|
|
74
75
|
init: {
|
|
75
76
|
method: "POST",
|
|
76
77
|
},
|
|
78
|
+
responseCallback: undefined,
|
|
77
79
|
acceptedStatus: [200, 201],
|
|
78
80
|
url: undefined,
|
|
79
81
|
mapping: {
|
|
@@ -92,6 +94,7 @@ class RestAPI extends Server {
|
|
|
92
94
|
init: {
|
|
93
95
|
method: "GET",
|
|
94
96
|
},
|
|
97
|
+
responseCallback: undefined,
|
|
95
98
|
acceptedStatus: [200],
|
|
96
99
|
url: undefined,
|
|
97
100
|
mapping: {
|
|
@@ -115,9 +118,12 @@ class RestAPI extends Server {
|
|
|
115
118
|
if (!isObject(init)) init = {};
|
|
116
119
|
if (!init["method"]) init["method"] = "GET";
|
|
117
120
|
|
|
118
|
-
|
|
121
|
+
let callback = self.getOption("read.responseCallback");
|
|
122
|
+
if(!callback) callback = (obj) => {
|
|
119
123
|
self.set(self.transformServerPayload.call(self, obj));
|
|
120
|
-
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
return fetchData.call(this, "read", callback);
|
|
121
127
|
}
|
|
122
128
|
|
|
123
129
|
/**
|
|
@@ -139,7 +145,8 @@ class RestAPI extends Server {
|
|
|
139
145
|
let obj = self.prepareServerPayload(self.get());
|
|
140
146
|
init["body"] = JSON.stringify(obj);
|
|
141
147
|
|
|
142
|
-
|
|
148
|
+
let callback = self.getOption("write.responseCallback");
|
|
149
|
+
return fetchData.call(this, init, "write", callback);
|
|
143
150
|
}
|
|
144
151
|
|
|
145
152
|
/**
|
|
@@ -190,10 +190,12 @@ class Translations extends Base {
|
|
|
190
190
|
/**
|
|
191
191
|
* Returns the translations for the current document.
|
|
192
192
|
*
|
|
193
|
-
* @param element
|
|
194
|
-
* @returns {
|
|
195
|
-
* @throws {Error} Element is not an HTMLElement
|
|
196
|
-
* @throws {Error}
|
|
193
|
+
* @param {HTMLElement|undefined} [element] - Element to search for translations. Default: element with objectlink @schukai/monster/i18n/translations@@link.
|
|
194
|
+
* @returns {Translations}
|
|
195
|
+
* @throws {Error} Element is not an HTMLElement.
|
|
196
|
+
* @throws {Error} Cannot find element with translations. Add a translations object to the document.
|
|
197
|
+
* @throws {Error} This element has no translations.
|
|
198
|
+
* @throws {Error} Missing translations.
|
|
197
199
|
*/
|
|
198
200
|
function getDocumentTranslations(element) {
|
|
199
201
|
|
|
@@ -201,14 +203,17 @@ function getDocumentTranslations(element) {
|
|
|
201
203
|
|
|
202
204
|
if (!(element instanceof HTMLElement)) {
|
|
203
205
|
element = d.querySelector('['+ATTRIBUTE_OBJECTLINK+'~="' + translationsLinkSymbol.toString() + '"]');
|
|
206
|
+
if (element === null) {
|
|
207
|
+
throw new Error("Cannot find element with translations. Add a translations object to the document.");
|
|
208
|
+
}
|
|
204
209
|
}
|
|
205
210
|
|
|
206
211
|
if (!(element instanceof HTMLElement)) {
|
|
207
|
-
throw new Error("Element is not an HTMLElement");
|
|
212
|
+
throw new Error("Element is not an HTMLElement.");
|
|
208
213
|
}
|
|
209
214
|
|
|
210
215
|
if (!hasObjectLink(element, translationsLinkSymbol)) {
|
|
211
|
-
throw new Error("
|
|
216
|
+
throw new Error("This element has no translations.");
|
|
212
217
|
}
|
|
213
218
|
|
|
214
219
|
let obj = getLinkedObjects(element, translationsLinkSymbol);
|
|
@@ -219,7 +224,7 @@ function getDocumentTranslations(element) {
|
|
|
219
224
|
}
|
|
220
225
|
}
|
|
221
226
|
|
|
222
|
-
throw new Error("Missing translations");
|
|
227
|
+
throw new Error("Missing translations.");
|
|
223
228
|
|
|
224
229
|
}
|
|
225
230
|
|
package/source/types/version.mjs
CHANGED
package/test/cases/monster.mjs
CHANGED