@schukai/monster 3.13.1 → 3.14.1
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -169,6 +169,13 @@ class RestAPI extends Server {
|
|
169
169
|
}
|
170
170
|
}
|
171
171
|
|
172
|
+
/**
|
173
|
+
* @private
|
174
|
+
* @param init
|
175
|
+
* @param key
|
176
|
+
* @param callback
|
177
|
+
* @returns {Promise<string>}
|
178
|
+
*/
|
172
179
|
function fetchData(init, key, callback) {
|
173
180
|
const self = this;
|
174
181
|
let response;
|
@@ -8,7 +8,7 @@
|
|
8
8
|
import {Base} from "../types/base.mjs";
|
9
9
|
import {getGlobal, getGlobalObject} from "../types/global.mjs";
|
10
10
|
import {ID} from "../types/id.mjs";
|
11
|
-
import {isArray, isObject, isString} from "../types/is.mjs";
|
11
|
+
import {isArray, isObject, isString, isPrimitive} from "../types/is.mjs";
|
12
12
|
import {getDocumentTranslations, Translations} from "../i18n/translations.mjs";
|
13
13
|
import {
|
14
14
|
validateFunction,
|
@@ -397,6 +397,34 @@ function transform(value) {
|
|
397
397
|
|
398
398
|
return new Pathfinder(value).exists(key);
|
399
399
|
|
400
|
+
case "concat":
|
401
|
+
let pf2 = new Pathfinder(value);
|
402
|
+
let concat = "";
|
403
|
+
while (args.length > 0) {
|
404
|
+
key = args.shift();
|
405
|
+
if (key === undefined) {
|
406
|
+
throw new Error("missing key parameter");
|
407
|
+
}
|
408
|
+
|
409
|
+
// add empty strings
|
410
|
+
if (isString(key)&&key.trim()==="") {
|
411
|
+
concat += key;
|
412
|
+
continue;
|
413
|
+
}
|
414
|
+
|
415
|
+
if (!pf2.exists(key)) {
|
416
|
+
concat += key;
|
417
|
+
continue;
|
418
|
+
}
|
419
|
+
let v = pf2.getVia(key);
|
420
|
+
if(!isPrimitive(v)) {
|
421
|
+
throw new Error("value is not primitive");
|
422
|
+
}
|
423
|
+
|
424
|
+
concat += v;
|
425
|
+
}
|
426
|
+
|
427
|
+
return concat;
|
400
428
|
case "path":
|
401
429
|
key = args.shift();
|
402
430
|
if (key === undefined) {
|
@@ -474,7 +502,7 @@ function transform(value) {
|
|
474
502
|
if (key === undefined) {
|
475
503
|
key = value;
|
476
504
|
}
|
477
|
-
|
505
|
+
|
478
506
|
defaultValue = args.shift() || undefined;
|
479
507
|
return translations.getText(key, defaultValue);
|
480
508
|
|
package/source/types/version.mjs
CHANGED
@@ -27,6 +27,10 @@ describe('Transformer', function () {
|
|
27
27
|
describe('Transformer.run()', function () {
|
28
28
|
|
29
29
|
[
|
30
|
+
['concat:a.b.c:test:a.b.d', {a: {b: {c: 4, d: 6}}}, "4test6"],
|
31
|
+
['concat:a.b.c:\\ \\ :a.b.d', {a: {b: {c: 4, d: 6}}}, "4 6"],
|
32
|
+
['concat:a.b.c:,:a.b.d', {a: {b: {c: 4, d: 6}}}, "4,6"],
|
33
|
+
['concat:a.b.c:,:\\ :a.b.d', {a: {b: {c: 4, d: 6}}}, "4, 6"],
|
30
34
|
['??:a', null, 'a'],
|
31
35
|
['??:a', undefined, 'a'],
|
32
36
|
['??:a', 'true', 'true'],
|
@@ -237,11 +241,11 @@ describe('Transformer', function () {
|
|
237
241
|
});
|
238
242
|
|
239
243
|
[
|
240
|
-
[
|
241
|
-
[
|
242
|
-
[
|
243
|
-
[
|
244
|
-
[
|
244
|
+
['i18n:test1', "", "xyz"],
|
245
|
+
['i18n:', "test1", "xyz"], // key by value
|
246
|
+
['i18n::', "test1", "xyz"], // key by value no default
|
247
|
+
['i18n::eee', "test2", "eee"], // key by value with default
|
248
|
+
['i18n::ddd', "test2", "ddd"], // key by value and default
|
245
249
|
|
246
250
|
].forEach(function (data) {
|
247
251
|
|
@@ -249,7 +253,7 @@ describe('Transformer', function () {
|
|
249
253
|
let b = data.shift()
|
250
254
|
let c = data.shift()
|
251
255
|
|
252
|
-
it('should transform('+a+').run('+b+') return ' + JSON.stringify(c), function () {
|
256
|
+
it('should transform(' + a + ').run(' + b + ') return ' + JSON.stringify(c), function () {
|
253
257
|
const t = new Transformer(a);
|
254
258
|
expect(t.run(b)).to.be.eql(c);
|
255
259
|
});
|
package/test/cases/monster.mjs
CHANGED