@webiny/i18n 5.35.0-beta.0 → 5.35.0-beta.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/I18n.js +32 -95
- package/I18n.js.map +1 -1
- package/extractor/extract.js +2 -13
- package/extractor/extract.js.map +1 -1
- package/extractor/index.js +0 -17
- package/extractor/index.js.map +1 -1
- package/index.js +0 -5
- package/index.js.map +1 -1
- package/modifiers/countModifier.js +4 -11
- package/modifiers/countModifier.js.map +1 -1
- package/modifiers/dateModifier.js +0 -4
- package/modifiers/dateModifier.js.map +1 -1
- package/modifiers/dateTimeModifier.js +0 -4
- package/modifiers/dateTimeModifier.js.map +1 -1
- package/modifiers/genderModifier.js +0 -4
- package/modifiers/genderModifier.js.map +1 -1
- package/modifiers/ifModifier.js +0 -4
- package/modifiers/ifModifier.js.map +1 -1
- package/modifiers/index.js +0 -12
- package/modifiers/index.js.map +1 -1
- package/modifiers/numberModifier.js +0 -4
- package/modifiers/numberModifier.js.map +1 -1
- package/modifiers/pluralModifier.js +2 -10
- package/modifiers/pluralModifier.js.map +1 -1
- package/modifiers/priceModifier.js +0 -4
- package/modifiers/priceModifier.js.map +1 -1
- package/modifiers/timeModifier.js +0 -4
- package/modifiers/timeModifier.js.map +1 -1
- package/package.json +4 -4
- package/processors/default.js +0 -17
- package/processors/default.js.map +1 -1
package/I18n.js
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = void 0;
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _accounting = _interopRequireDefault(require("accounting"));
|
|
15
|
-
|
|
16
11
|
var fecha = _interopRequireWildcard(require("fecha"));
|
|
17
|
-
|
|
18
12
|
var _shortHash = _interopRequireDefault(require("short-hash"));
|
|
19
|
-
|
|
20
13
|
var _assign = _interopRequireDefault(require("lodash/assign"));
|
|
21
|
-
|
|
22
14
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
23
|
-
|
|
24
15
|
/**
|
|
25
16
|
* Package short-hash has no types.
|
|
26
17
|
*/
|
|
@@ -36,50 +27,45 @@ class I18N {
|
|
|
36
27
|
(0, _defineProperty2.default)(this, "translations", void 0);
|
|
37
28
|
(0, _defineProperty2.default)(this, "modifiers", void 0);
|
|
38
29
|
(0, _defineProperty2.default)(this, "processors", void 0);
|
|
39
|
-
|
|
40
30
|
/**
|
|
41
31
|
* If we fail to fetch formats for currently selected locale, these default formats will be used.
|
|
42
32
|
* @type {{date: string, time: string, datetime: string, number: string}}
|
|
43
33
|
*/
|
|
44
34
|
this.defaultFormats = this.getDefaultFormats();
|
|
35
|
+
|
|
45
36
|
/**
|
|
46
37
|
* All currently-loaded translations, for easier (synchronous) access.
|
|
47
38
|
* @type {{}}
|
|
48
39
|
*/
|
|
49
|
-
|
|
50
40
|
this.translations = {};
|
|
41
|
+
|
|
51
42
|
/**
|
|
52
43
|
* All registered modifiers.
|
|
53
44
|
* @type {{}}
|
|
54
45
|
*/
|
|
55
|
-
|
|
56
46
|
this.modifiers = {};
|
|
47
|
+
|
|
57
48
|
/**
|
|
58
49
|
* All registered processors.
|
|
59
50
|
* Default built-in processors are registered immediately below.
|
|
60
51
|
* @type {{}}
|
|
61
52
|
*/
|
|
62
|
-
|
|
63
53
|
this.processors = {};
|
|
64
54
|
}
|
|
65
|
-
|
|
66
55
|
translate(base, namespace) {
|
|
67
56
|
// Returns full translation for given base text in given namespace (optional).
|
|
68
57
|
// If translation isn't found, base text will be returned.
|
|
69
58
|
// We create a key out of given namespace and base text.
|
|
59
|
+
|
|
70
60
|
if (!namespace) {
|
|
71
61
|
throw Error("I18N text namespace not defined.");
|
|
72
62
|
}
|
|
73
|
-
|
|
74
63
|
base = (0, _get.default)(base, "raw.0", base);
|
|
75
64
|
let translation = this.getTranslation(namespace + "." + (0, _shortHash.default)(base));
|
|
76
|
-
|
|
77
65
|
if (!translation) {
|
|
78
66
|
translation = base;
|
|
79
67
|
}
|
|
80
|
-
|
|
81
68
|
const hasVariables = base.includes("{") && base.includes("}");
|
|
82
|
-
|
|
83
69
|
if (hasVariables) {
|
|
84
70
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
85
71
|
const $this = this;
|
|
@@ -91,19 +77,15 @@ class I18N {
|
|
|
91
77
|
values,
|
|
92
78
|
i18n: $this
|
|
93
79
|
};
|
|
94
|
-
|
|
95
80
|
for (const key in $this.processors) {
|
|
96
81
|
const processor = $this.processors[key];
|
|
97
|
-
|
|
98
82
|
if (processor.canExecute(data)) {
|
|
99
83
|
return processor.execute(data);
|
|
100
84
|
}
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
return null;
|
|
104
87
|
};
|
|
105
88
|
}
|
|
106
|
-
|
|
107
89
|
const data = {
|
|
108
90
|
translation,
|
|
109
91
|
base,
|
|
@@ -111,275 +93,237 @@ class I18N {
|
|
|
111
93
|
values: {},
|
|
112
94
|
i18n: this
|
|
113
95
|
};
|
|
114
|
-
|
|
115
96
|
for (const key in this.processors) {
|
|
116
97
|
if (this.processors[key].canExecute(data)) {
|
|
117
98
|
return this.processors[key].execute(data);
|
|
118
99
|
}
|
|
119
100
|
}
|
|
120
|
-
|
|
121
101
|
return null;
|
|
122
102
|
}
|
|
123
|
-
|
|
124
103
|
namespace(namespace) {
|
|
125
104
|
return base => {
|
|
126
105
|
return this.translate(base, namespace);
|
|
127
106
|
};
|
|
128
107
|
}
|
|
129
|
-
|
|
130
108
|
ns(namespace) {
|
|
131
109
|
return this.namespace(namespace);
|
|
132
110
|
}
|
|
111
|
+
|
|
133
112
|
/**
|
|
134
113
|
* Formats and outputs date.
|
|
135
114
|
* It will try to load format from currently selected locale's settings. If not defined, default formats will be used.
|
|
136
115
|
*/
|
|
137
|
-
|
|
138
|
-
|
|
139
116
|
date(value, outputFormat, inputFormat) {
|
|
140
117
|
if (!outputFormat) {
|
|
141
118
|
outputFormat = this.getDateFormat();
|
|
142
119
|
}
|
|
143
|
-
|
|
144
120
|
if (!inputFormat) {
|
|
145
121
|
inputFormat = "YYYY-MM-DDTHH:mm:ss.SSSZ";
|
|
146
122
|
}
|
|
147
|
-
|
|
148
123
|
let parsedValue;
|
|
149
|
-
|
|
150
124
|
if (typeof value === "string") {
|
|
151
125
|
parsedValue = fecha.parse(value, inputFormat);
|
|
152
126
|
} else {
|
|
153
127
|
parsedValue = value;
|
|
154
128
|
}
|
|
155
|
-
|
|
156
129
|
return fecha.format(parsedValue, outputFormat);
|
|
157
130
|
}
|
|
131
|
+
|
|
158
132
|
/**
|
|
159
133
|
* Formats and outputs time.
|
|
160
134
|
* It will try to load format from currently selected locale's settings. If not defined, default formats will be used.
|
|
161
135
|
*/
|
|
162
|
-
|
|
163
|
-
|
|
164
136
|
time(value, outputFormat, inputFormat) {
|
|
165
137
|
if (!outputFormat) {
|
|
166
138
|
outputFormat = this.getTimeFormat();
|
|
167
139
|
}
|
|
168
|
-
|
|
169
140
|
if (!inputFormat) {
|
|
170
141
|
inputFormat = "YYYY-MM-DDTHH:mm:ss.SSSZ";
|
|
171
142
|
}
|
|
172
|
-
|
|
173
143
|
let parsedValue;
|
|
174
|
-
|
|
175
144
|
if (typeof value === "string") {
|
|
176
145
|
parsedValue = fecha.parse(value, inputFormat);
|
|
177
146
|
} else {
|
|
178
147
|
parsedValue = value;
|
|
179
148
|
}
|
|
180
|
-
|
|
181
149
|
return fecha.format(parsedValue, outputFormat);
|
|
182
150
|
}
|
|
151
|
+
|
|
183
152
|
/**
|
|
184
153
|
* Formats and outputs date/time.
|
|
185
154
|
* It will try to load format from currently selected locale's settings. If not defined, default formats will be used.
|
|
186
155
|
*/
|
|
187
|
-
|
|
188
|
-
|
|
189
156
|
dateTime(value, outputFormat, inputFormat) {
|
|
190
157
|
if (!outputFormat) {
|
|
191
158
|
outputFormat = this.getDateTimeFormat();
|
|
192
159
|
}
|
|
193
|
-
|
|
194
160
|
if (!inputFormat) {
|
|
195
161
|
inputFormat = "YYYY-MM-DDTHH:mm:ss.SSSZ";
|
|
196
162
|
}
|
|
197
|
-
|
|
198
163
|
let parsedValue;
|
|
199
|
-
|
|
200
164
|
if (typeof value === "string") {
|
|
201
165
|
parsedValue = fecha.parse(value, inputFormat);
|
|
202
166
|
} else {
|
|
203
167
|
parsedValue = value;
|
|
204
168
|
}
|
|
205
|
-
|
|
206
169
|
return fecha.format(parsedValue, outputFormat);
|
|
207
170
|
}
|
|
171
|
+
|
|
208
172
|
/**
|
|
209
173
|
* Outputs formatted number as amount of price.
|
|
210
174
|
*/
|
|
211
|
-
|
|
212
|
-
|
|
213
175
|
price(value, outputFormat) {
|
|
214
176
|
if (!outputFormat) {
|
|
215
177
|
outputFormat = this.getPriceFormat();
|
|
216
178
|
} else {
|
|
217
179
|
outputFormat = (0, _assign.default)({}, this.defaultFormats.price, outputFormat);
|
|
218
|
-
}
|
|
219
|
-
|
|
180
|
+
}
|
|
220
181
|
|
|
182
|
+
// Convert placeholders to accounting's placeholders.
|
|
221
183
|
let format = outputFormat.format;
|
|
222
184
|
format = format.replace("{symbol}", "%s");
|
|
223
185
|
format = format.replace("{amount}", "%v");
|
|
224
186
|
return _accounting.default.formatMoney(value, outputFormat.symbol, outputFormat.precision, outputFormat.thousand, outputFormat.decimal, format);
|
|
225
187
|
}
|
|
188
|
+
|
|
226
189
|
/**
|
|
227
190
|
* Outputs formatted number.
|
|
228
191
|
*/
|
|
229
|
-
|
|
230
|
-
|
|
231
192
|
number(value, outputFormat) {
|
|
232
193
|
if (!outputFormat) {
|
|
233
194
|
outputFormat = this.getNumberFormat();
|
|
234
195
|
} else {
|
|
235
196
|
outputFormat = (0, _assign.default)({}, this.defaultFormats.number, outputFormat);
|
|
236
197
|
}
|
|
237
|
-
|
|
238
198
|
return _accounting.default.formatNumber(
|
|
239
199
|
/**
|
|
240
200
|
* Cast as number because method transforms it internally.
|
|
241
201
|
*/
|
|
242
202
|
value, outputFormat.precision, outputFormat.thousand, outputFormat.decimal);
|
|
243
203
|
}
|
|
204
|
+
|
|
244
205
|
/**
|
|
245
206
|
* Returns translation for given text key.
|
|
246
207
|
*/
|
|
247
|
-
|
|
248
|
-
|
|
249
208
|
getTranslation(key) {
|
|
250
209
|
if (!key) {
|
|
251
210
|
return null;
|
|
252
211
|
}
|
|
253
|
-
|
|
254
212
|
return this.translations[key];
|
|
255
213
|
}
|
|
214
|
+
|
|
256
215
|
/**
|
|
257
216
|
* Returns all translations for current locale.
|
|
258
217
|
*/
|
|
259
|
-
|
|
260
|
-
|
|
261
218
|
getTranslations() {
|
|
262
219
|
return this.translations;
|
|
263
220
|
}
|
|
221
|
+
|
|
264
222
|
/**
|
|
265
223
|
* Returns true if given key has a translation for currently set locale.
|
|
266
224
|
*/
|
|
267
|
-
|
|
268
|
-
|
|
269
225
|
hasTranslation(key) {
|
|
270
226
|
return key in this.translations;
|
|
271
227
|
}
|
|
228
|
+
|
|
272
229
|
/**
|
|
273
230
|
* Sets translation for given text key.
|
|
274
231
|
*/
|
|
275
|
-
|
|
276
|
-
|
|
277
232
|
setTranslation(key, translation) {
|
|
278
233
|
this.translations[key] = translation;
|
|
279
234
|
return this;
|
|
280
235
|
}
|
|
236
|
+
|
|
281
237
|
/**
|
|
282
238
|
* Sets translations that will be used.
|
|
283
239
|
*/
|
|
284
|
-
|
|
285
|
-
|
|
286
240
|
setTranslations(translations) {
|
|
287
241
|
this.translations = translations;
|
|
288
242
|
return this;
|
|
289
243
|
}
|
|
244
|
+
|
|
290
245
|
/**
|
|
291
246
|
* Clears all translations.
|
|
292
247
|
*/
|
|
293
|
-
|
|
294
|
-
|
|
295
248
|
clearTranslations() {
|
|
296
249
|
this.setTranslations({});
|
|
297
250
|
return this;
|
|
298
251
|
}
|
|
252
|
+
|
|
299
253
|
/**
|
|
300
254
|
* Merges given translations object with already existing.
|
|
301
255
|
*/
|
|
302
256
|
|
|
303
|
-
|
|
304
257
|
mergeTranslations(translations) {
|
|
305
258
|
return (0, _assign.default)(this.translations, translations);
|
|
306
259
|
}
|
|
260
|
+
|
|
307
261
|
/**
|
|
308
262
|
* Returns currently selected locale (locale's key).
|
|
309
263
|
*/
|
|
310
|
-
|
|
311
|
-
|
|
312
264
|
getLocale() {
|
|
313
265
|
return this.locale;
|
|
314
266
|
}
|
|
267
|
+
|
|
315
268
|
/**
|
|
316
269
|
* Sets current locale.
|
|
317
270
|
*/
|
|
318
|
-
|
|
319
|
-
|
|
320
271
|
setLocale(locale) {
|
|
321
272
|
this.locale = locale;
|
|
322
273
|
return this;
|
|
323
274
|
}
|
|
275
|
+
|
|
324
276
|
/**
|
|
325
277
|
* Registers single modifier.
|
|
326
278
|
*/
|
|
327
|
-
|
|
328
|
-
|
|
329
279
|
registerModifier(modifier) {
|
|
330
280
|
this.modifiers[modifier.name] = modifier;
|
|
331
281
|
return this;
|
|
332
282
|
}
|
|
283
|
+
|
|
333
284
|
/**
|
|
334
285
|
* Registers all modifiers in given array.
|
|
335
286
|
*/
|
|
336
|
-
|
|
337
|
-
|
|
338
287
|
registerModifiers(modifiers) {
|
|
339
288
|
modifiers.forEach(modifier => this.registerModifier(modifier));
|
|
340
289
|
return this;
|
|
341
290
|
}
|
|
291
|
+
|
|
342
292
|
/**
|
|
343
293
|
* Unregisters given modifier.
|
|
344
294
|
*/
|
|
345
|
-
|
|
346
|
-
|
|
347
295
|
unregisterModifier(name) {
|
|
348
296
|
delete this.modifiers[name];
|
|
349
297
|
return this;
|
|
350
298
|
}
|
|
299
|
+
|
|
351
300
|
/**
|
|
352
301
|
* Registers single processor.
|
|
353
302
|
*/
|
|
354
|
-
|
|
355
|
-
|
|
356
303
|
registerProcessor(processor) {
|
|
357
304
|
this.processors[processor.name] = processor;
|
|
358
305
|
return this;
|
|
359
306
|
}
|
|
307
|
+
|
|
360
308
|
/**
|
|
361
309
|
* Registers all processors in given array.
|
|
362
310
|
*/
|
|
363
|
-
|
|
364
|
-
|
|
365
311
|
registerProcessors(processors) {
|
|
366
312
|
processors.forEach(processor => this.registerProcessor(processor));
|
|
367
313
|
return this;
|
|
368
314
|
}
|
|
315
|
+
|
|
369
316
|
/**
|
|
370
317
|
* Unregisters given processor.
|
|
371
318
|
*/
|
|
372
|
-
|
|
373
|
-
|
|
374
319
|
unregisterProcessor(name) {
|
|
375
320
|
delete this.processors[name];
|
|
376
321
|
return this;
|
|
377
322
|
}
|
|
323
|
+
|
|
378
324
|
/**
|
|
379
325
|
* Returns default formats
|
|
380
326
|
*/
|
|
381
|
-
|
|
382
|
-
|
|
383
327
|
getDefaultFormats() {
|
|
384
328
|
return {
|
|
385
329
|
date: "DD/MM/YYYY",
|
|
@@ -399,47 +343,40 @@ class I18N {
|
|
|
399
343
|
}
|
|
400
344
|
};
|
|
401
345
|
}
|
|
346
|
+
|
|
402
347
|
/**
|
|
403
348
|
* Returns current format to be used when outputting dates.
|
|
404
349
|
*/
|
|
405
|
-
|
|
406
|
-
|
|
407
350
|
getDateFormat() {
|
|
408
351
|
return (0, _get.default)(this.locale, "formats.date", this.defaultFormats.date);
|
|
409
352
|
}
|
|
353
|
+
|
|
410
354
|
/**
|
|
411
355
|
* Returns current format to be used when outputting time.
|
|
412
356
|
*/
|
|
413
|
-
|
|
414
|
-
|
|
415
357
|
getTimeFormat() {
|
|
416
358
|
return (0, _get.default)(this.locale, "formats.time", this.defaultFormats.time);
|
|
417
359
|
}
|
|
360
|
+
|
|
418
361
|
/**
|
|
419
362
|
* Returns current format to be used when outputting date/time.
|
|
420
363
|
*/
|
|
421
|
-
|
|
422
|
-
|
|
423
364
|
getDateTimeFormat() {
|
|
424
365
|
return (0, _get.default)(this.locale, "formats.datetime", this.defaultFormats.datetime);
|
|
425
366
|
}
|
|
367
|
+
|
|
426
368
|
/**
|
|
427
369
|
* Returns current format to be used when outputting prices.
|
|
428
370
|
*/
|
|
429
|
-
|
|
430
|
-
|
|
431
371
|
getPriceFormat() {
|
|
432
372
|
return (0, _assign.default)({}, this.defaultFormats.price, (0, _get.default)(this.locale, "formats.price", {}));
|
|
433
373
|
}
|
|
374
|
+
|
|
434
375
|
/**
|
|
435
376
|
* Returns current format to be used when outputting numbers.
|
|
436
377
|
*/
|
|
437
|
-
|
|
438
|
-
|
|
439
378
|
getNumberFormat() {
|
|
440
379
|
return (0, _assign.default)({}, this.defaultFormats.number, (0, _get.default)(this.locale, "formats.number", {}));
|
|
441
380
|
}
|
|
442
|
-
|
|
443
381
|
}
|
|
444
|
-
|
|
445
382
|
exports.default = I18N;
|
package/I18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["I18N","constructor","defaultFormats","getDefaultFormats","translations","modifiers","processors","translate","base","namespace","Error","lodashGet","translation","getTranslation","hash","hasVariables","includes","$this","i18n","values","data","key","processor","canExecute","execute","ns","date","value","outputFormat","inputFormat","getDateFormat","parsedValue","fecha","parse","format","time","getTimeFormat","dateTime","getDateTimeFormat","price","getPriceFormat","lodashAssign","replace","accounting","formatMoney","symbol","precision","thousand","decimal","number","getNumberFormat","formatNumber","getTranslations","hasTranslation","setTranslation","setTranslations","clearTranslations","mergeTranslations","getLocale","locale","setLocale","registerModifier","modifier","name","registerModifiers","forEach","unregisterModifier","registerProcessor","registerProcessors","unregisterProcessor","datetime"],"sources":["I18n.ts"],"sourcesContent":["import accounting from \"accounting\";\nimport * as fecha from \"fecha\";\n/**\n * Package short-hash has no types.\n */\n// @ts-ignore\nimport hash from \"short-hash\";\nimport lodashAssign from \"lodash/assign\";\nimport lodashGet from \"lodash/get\";\n\nimport {\n Formats,\n I18NData,\n I18NDataValues,\n Modifier,\n NumberFormat,\n PriceFormat,\n Processor,\n ProcessorResult,\n Translations,\n Translator\n} from \"./types\";\n\nexport type Translated =\n | ((values: I18NDataValues) => ProcessorResult | null)\n | ProcessorResult\n | null;\n/**\n * Main class used for all I18n needs.\n */\nexport default class I18N {\n public locale: string | null = null;\n public defaultFormats: Formats;\n public translations: Translations;\n public modifiers: {\n [name: string]: Modifier;\n };\n public processors: {\n [name: string]: Processor;\n };\n\n public constructor() {\n /**\n * If we fail to fetch formats for currently selected locale, these default formats will be used.\n * @type {{date: string, time: string, datetime: string, number: string}}\n */\n this.defaultFormats = this.getDefaultFormats();\n\n /**\n * All currently-loaded translations, for easier (synchronous) access.\n * @type {{}}\n */\n this.translations = {};\n\n /**\n * All registered modifiers.\n * @type {{}}\n */\n this.modifiers = {};\n\n /**\n * All registered processors.\n * Default built-in processors are registered immediately below.\n * @type {{}}\n */\n this.processors = {};\n }\n\n public translate(base: string, namespace?: string): Translated {\n // Returns full translation for given base text in given namespace (optional).\n // If translation isn't found, base text will be returned.\n // We create a key out of given namespace and base text.\n\n if (!namespace) {\n throw Error(\"I18N text namespace not defined.\");\n }\n\n base = lodashGet(base, \"raw.0\", base);\n\n let translation: string | null = this.getTranslation(namespace + \".\" + hash(base));\n\n if (!translation) {\n translation = base;\n }\n\n const hasVariables = base.includes(\"{\") && base.includes(\"}\");\n if (hasVariables) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $this = this;\n return function i18n(values: I18NDataValues) {\n const data: I18NData = {\n translation: translation as string,\n base,\n namespace,\n values,\n i18n: $this\n };\n for (const key in $this.processors) {\n const processor = $this.processors[key];\n if (processor.canExecute(data)) {\n return processor.execute(data);\n }\n }\n return null;\n };\n }\n\n const data: I18NData = { translation, base, namespace, values: {}, i18n: this };\n for (const key in this.processors) {\n if (this.processors[key].canExecute(data)) {\n return this.processors[key].execute(data);\n }\n }\n return null;\n }\n\n public namespace(namespace: string): Translator {\n return base => {\n return this.translate(base as string, namespace);\n };\n }\n\n public ns(namespace: string): Translator {\n return this.namespace(namespace);\n }\n\n /**\n * Formats and outputs date.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n public date(\n value: Date | string | number,\n outputFormat?: string,\n inputFormat?: string\n ): string {\n if (!outputFormat) {\n outputFormat = this.getDateFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Formats and outputs time.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n public time(\n value: Date | string | number,\n outputFormat?: string,\n inputFormat?: string\n ): string {\n if (!outputFormat) {\n outputFormat = this.getTimeFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Formats and outputs date/time.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n dateTime(value: Date | string | number, outputFormat?: string, inputFormat?: string): string {\n if (!outputFormat) {\n outputFormat = this.getDateTimeFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Outputs formatted number as amount of price.\n */\n public price(value: string | number, outputFormat?: any): string {\n if (!outputFormat) {\n outputFormat = this.getPriceFormat();\n } else {\n outputFormat = lodashAssign({}, this.defaultFormats.price, outputFormat);\n }\n\n // Convert placeholders to accounting's placeholders.\n let format = outputFormat.format;\n format = format.replace(\"{symbol}\", \"%s\");\n format = format.replace(\"{amount}\", \"%v\");\n\n return accounting.formatMoney(\n value,\n outputFormat.symbol,\n outputFormat.precision,\n outputFormat.thousand,\n outputFormat.decimal,\n format\n );\n }\n\n /**\n * Outputs formatted number.\n */\n public number(value: string | number, outputFormat?: NumberFormat): string {\n if (!outputFormat) {\n outputFormat = this.getNumberFormat();\n } else {\n outputFormat = lodashAssign({}, this.defaultFormats.number, outputFormat);\n }\n return accounting.formatNumber(\n /**\n * Cast as number because method transforms it internally.\n */\n value as number,\n outputFormat.precision,\n outputFormat.thousand,\n outputFormat.decimal\n );\n }\n\n /**\n * Returns translation for given text key.\n */\n public getTranslation(key?: string): string | null {\n if (!key) {\n return null;\n }\n return this.translations[key];\n }\n\n /**\n * Returns all translations for current locale.\n */\n public getTranslations(): Translations {\n return this.translations;\n }\n\n /**\n * Returns true if given key has a translation for currently set locale.\n */\n public hasTranslation(key: string): boolean {\n return key in this.translations;\n }\n\n /**\n * Sets translation for given text key.\n */\n public setTranslation(key: string, translation: string): I18N {\n this.translations[key] = translation;\n return this;\n }\n\n /**\n * Sets translations that will be used.\n */\n public setTranslations(translations: Translations): I18N {\n this.translations = translations;\n return this;\n }\n\n /**\n * Clears all translations.\n */\n public clearTranslations(): I18N {\n this.setTranslations({});\n return this;\n }\n\n /**\n * Merges given translations object with already existing.\n */\n\n public mergeTranslations(translations: Translations): Translations {\n return lodashAssign(this.translations, translations);\n }\n\n /**\n * Returns currently selected locale (locale's key).\n */\n public getLocale(): null | string {\n return this.locale;\n }\n\n /**\n * Sets current locale.\n */\n public setLocale(locale: string): I18N {\n this.locale = locale;\n return this;\n }\n\n /**\n * Registers single modifier.\n */\n public registerModifier(modifier: Modifier): I18N {\n this.modifiers[modifier.name] = modifier;\n return this;\n }\n\n /**\n * Registers all modifiers in given array.\n */\n public registerModifiers(modifiers: Array<Modifier>): I18N {\n modifiers.forEach(modifier => this.registerModifier(modifier));\n return this;\n }\n\n /**\n * Unregisters given modifier.\n */\n public unregisterModifier(name: string): I18N {\n delete this.modifiers[name];\n return this;\n }\n\n /**\n * Registers single processor.\n */\n public registerProcessor(processor: Processor): I18N {\n this.processors[processor.name] = processor;\n return this;\n }\n\n /**\n * Registers all processors in given array.\n */\n public registerProcessors(processors: Array<Processor>): I18N {\n processors.forEach(processor => this.registerProcessor(processor));\n return this;\n }\n\n /**\n * Unregisters given processor.\n */\n public unregisterProcessor(name: string): I18N {\n delete this.processors[name];\n return this;\n }\n\n /**\n * Returns default formats\n */\n public getDefaultFormats(): Formats {\n return {\n date: \"DD/MM/YYYY\",\n time: \"HH:mm\",\n datetime: \"DD/MM/YYYY HH:mm\",\n price: {\n symbol: \"\",\n format: \"{symbol}{amount}\",\n decimal: \".\",\n thousand: \",\",\n precision: 2\n },\n number: {\n decimal: \".\",\n thousand: \",\",\n precision: 2\n }\n };\n }\n\n /**\n * Returns current format to be used when outputting dates.\n */\n public getDateFormat(): string {\n return lodashGet(this.locale, \"formats.date\", this.defaultFormats.date);\n }\n\n /**\n * Returns current format to be used when outputting time.\n */\n public getTimeFormat(): string {\n return lodashGet(this.locale, \"formats.time\", this.defaultFormats.time);\n }\n\n /**\n * Returns current format to be used when outputting date/time.\n */\n public getDateTimeFormat(): string {\n return lodashGet(this.locale, \"formats.datetime\", this.defaultFormats.datetime);\n }\n\n /**\n * Returns current format to be used when outputting prices.\n */\n public getPriceFormat(): PriceFormat {\n return lodashAssign(\n {},\n this.defaultFormats.price,\n lodashGet(this.locale, \"formats.price\", {})\n );\n }\n\n /**\n * Returns current format to be used when outputting numbers.\n */\n public getNumberFormat(): NumberFormat {\n return lodashAssign(\n {},\n this.defaultFormats.number,\n lodashGet(this.locale, \"formats.number\", {})\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["I18N","constructor","defaultFormats","getDefaultFormats","translations","modifiers","processors","translate","base","namespace","Error","lodashGet","translation","getTranslation","hash","hasVariables","includes","$this","i18n","values","data","key","processor","canExecute","execute","ns","date","value","outputFormat","inputFormat","getDateFormat","parsedValue","fecha","parse","format","time","getTimeFormat","dateTime","getDateTimeFormat","price","getPriceFormat","lodashAssign","replace","accounting","formatMoney","symbol","precision","thousand","decimal","number","getNumberFormat","formatNumber","getTranslations","hasTranslation","setTranslation","setTranslations","clearTranslations","mergeTranslations","getLocale","locale","setLocale","registerModifier","modifier","name","registerModifiers","forEach","unregisterModifier","registerProcessor","registerProcessors","unregisterProcessor","datetime"],"sources":["I18n.ts"],"sourcesContent":["import accounting from \"accounting\";\nimport * as fecha from \"fecha\";\n/**\n * Package short-hash has no types.\n */\n// @ts-ignore\nimport hash from \"short-hash\";\nimport lodashAssign from \"lodash/assign\";\nimport lodashGet from \"lodash/get\";\n\nimport {\n Formats,\n I18NData,\n I18NDataValues,\n Modifier,\n NumberFormat,\n PriceFormat,\n Processor,\n ProcessorResult,\n Translations,\n Translator\n} from \"./types\";\n\nexport type Translated =\n | ((values: I18NDataValues) => ProcessorResult | null)\n | ProcessorResult\n | null;\n/**\n * Main class used for all I18n needs.\n */\nexport default class I18N {\n public locale: string | null = null;\n public defaultFormats: Formats;\n public translations: Translations;\n public modifiers: {\n [name: string]: Modifier;\n };\n public processors: {\n [name: string]: Processor;\n };\n\n public constructor() {\n /**\n * If we fail to fetch formats for currently selected locale, these default formats will be used.\n * @type {{date: string, time: string, datetime: string, number: string}}\n */\n this.defaultFormats = this.getDefaultFormats();\n\n /**\n * All currently-loaded translations, for easier (synchronous) access.\n * @type {{}}\n */\n this.translations = {};\n\n /**\n * All registered modifiers.\n * @type {{}}\n */\n this.modifiers = {};\n\n /**\n * All registered processors.\n * Default built-in processors are registered immediately below.\n * @type {{}}\n */\n this.processors = {};\n }\n\n public translate(base: string, namespace?: string): Translated {\n // Returns full translation for given base text in given namespace (optional).\n // If translation isn't found, base text will be returned.\n // We create a key out of given namespace and base text.\n\n if (!namespace) {\n throw Error(\"I18N text namespace not defined.\");\n }\n\n base = lodashGet(base, \"raw.0\", base);\n\n let translation: string | null = this.getTranslation(namespace + \".\" + hash(base));\n\n if (!translation) {\n translation = base;\n }\n\n const hasVariables = base.includes(\"{\") && base.includes(\"}\");\n if (hasVariables) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const $this = this;\n return function i18n(values: I18NDataValues) {\n const data: I18NData = {\n translation: translation as string,\n base,\n namespace,\n values,\n i18n: $this\n };\n for (const key in $this.processors) {\n const processor = $this.processors[key];\n if (processor.canExecute(data)) {\n return processor.execute(data);\n }\n }\n return null;\n };\n }\n\n const data: I18NData = { translation, base, namespace, values: {}, i18n: this };\n for (const key in this.processors) {\n if (this.processors[key].canExecute(data)) {\n return this.processors[key].execute(data);\n }\n }\n return null;\n }\n\n public namespace(namespace: string): Translator {\n return base => {\n return this.translate(base as string, namespace);\n };\n }\n\n public ns(namespace: string): Translator {\n return this.namespace(namespace);\n }\n\n /**\n * Formats and outputs date.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n public date(\n value: Date | string | number,\n outputFormat?: string,\n inputFormat?: string\n ): string {\n if (!outputFormat) {\n outputFormat = this.getDateFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Formats and outputs time.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n public time(\n value: Date | string | number,\n outputFormat?: string,\n inputFormat?: string\n ): string {\n if (!outputFormat) {\n outputFormat = this.getTimeFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Formats and outputs date/time.\n * It will try to load format from currently selected locale's settings. If not defined, default formats will be used.\n */\n dateTime(value: Date | string | number, outputFormat?: string, inputFormat?: string): string {\n if (!outputFormat) {\n outputFormat = this.getDateTimeFormat();\n }\n if (!inputFormat) {\n inputFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\n }\n\n let parsedValue: number | Date;\n\n if (typeof value === \"string\") {\n parsedValue = fecha.parse(value, inputFormat) as Date;\n } else {\n parsedValue = value;\n }\n\n return fecha.format(parsedValue, outputFormat);\n }\n\n /**\n * Outputs formatted number as amount of price.\n */\n public price(value: string | number, outputFormat?: any): string {\n if (!outputFormat) {\n outputFormat = this.getPriceFormat();\n } else {\n outputFormat = lodashAssign({}, this.defaultFormats.price, outputFormat);\n }\n\n // Convert placeholders to accounting's placeholders.\n let format = outputFormat.format;\n format = format.replace(\"{symbol}\", \"%s\");\n format = format.replace(\"{amount}\", \"%v\");\n\n return accounting.formatMoney(\n value,\n outputFormat.symbol,\n outputFormat.precision,\n outputFormat.thousand,\n outputFormat.decimal,\n format\n );\n }\n\n /**\n * Outputs formatted number.\n */\n public number(value: string | number, outputFormat?: NumberFormat): string {\n if (!outputFormat) {\n outputFormat = this.getNumberFormat();\n } else {\n outputFormat = lodashAssign({}, this.defaultFormats.number, outputFormat);\n }\n return accounting.formatNumber(\n /**\n * Cast as number because method transforms it internally.\n */\n value as number,\n outputFormat.precision,\n outputFormat.thousand,\n outputFormat.decimal\n );\n }\n\n /**\n * Returns translation for given text key.\n */\n public getTranslation(key?: string): string | null {\n if (!key) {\n return null;\n }\n return this.translations[key];\n }\n\n /**\n * Returns all translations for current locale.\n */\n public getTranslations(): Translations {\n return this.translations;\n }\n\n /**\n * Returns true if given key has a translation for currently set locale.\n */\n public hasTranslation(key: string): boolean {\n return key in this.translations;\n }\n\n /**\n * Sets translation for given text key.\n */\n public setTranslation(key: string, translation: string): I18N {\n this.translations[key] = translation;\n return this;\n }\n\n /**\n * Sets translations that will be used.\n */\n public setTranslations(translations: Translations): I18N {\n this.translations = translations;\n return this;\n }\n\n /**\n * Clears all translations.\n */\n public clearTranslations(): I18N {\n this.setTranslations({});\n return this;\n }\n\n /**\n * Merges given translations object with already existing.\n */\n\n public mergeTranslations(translations: Translations): Translations {\n return lodashAssign(this.translations, translations);\n }\n\n /**\n * Returns currently selected locale (locale's key).\n */\n public getLocale(): null | string {\n return this.locale;\n }\n\n /**\n * Sets current locale.\n */\n public setLocale(locale: string): I18N {\n this.locale = locale;\n return this;\n }\n\n /**\n * Registers single modifier.\n */\n public registerModifier(modifier: Modifier): I18N {\n this.modifiers[modifier.name] = modifier;\n return this;\n }\n\n /**\n * Registers all modifiers in given array.\n */\n public registerModifiers(modifiers: Array<Modifier>): I18N {\n modifiers.forEach(modifier => this.registerModifier(modifier));\n return this;\n }\n\n /**\n * Unregisters given modifier.\n */\n public unregisterModifier(name: string): I18N {\n delete this.modifiers[name];\n return this;\n }\n\n /**\n * Registers single processor.\n */\n public registerProcessor(processor: Processor): I18N {\n this.processors[processor.name] = processor;\n return this;\n }\n\n /**\n * Registers all processors in given array.\n */\n public registerProcessors(processors: Array<Processor>): I18N {\n processors.forEach(processor => this.registerProcessor(processor));\n return this;\n }\n\n /**\n * Unregisters given processor.\n */\n public unregisterProcessor(name: string): I18N {\n delete this.processors[name];\n return this;\n }\n\n /**\n * Returns default formats\n */\n public getDefaultFormats(): Formats {\n return {\n date: \"DD/MM/YYYY\",\n time: \"HH:mm\",\n datetime: \"DD/MM/YYYY HH:mm\",\n price: {\n symbol: \"\",\n format: \"{symbol}{amount}\",\n decimal: \".\",\n thousand: \",\",\n precision: 2\n },\n number: {\n decimal: \".\",\n thousand: \",\",\n precision: 2\n }\n };\n }\n\n /**\n * Returns current format to be used when outputting dates.\n */\n public getDateFormat(): string {\n return lodashGet(this.locale, \"formats.date\", this.defaultFormats.date);\n }\n\n /**\n * Returns current format to be used when outputting time.\n */\n public getTimeFormat(): string {\n return lodashGet(this.locale, \"formats.time\", this.defaultFormats.time);\n }\n\n /**\n * Returns current format to be used when outputting date/time.\n */\n public getDateTimeFormat(): string {\n return lodashGet(this.locale, \"formats.datetime\", this.defaultFormats.datetime);\n }\n\n /**\n * Returns current format to be used when outputting prices.\n */\n public getPriceFormat(): PriceFormat {\n return lodashAssign(\n {},\n this.defaultFormats.price,\n lodashGet(this.locale, \"formats.price\", {})\n );\n }\n\n /**\n * Returns current format to be used when outputting numbers.\n */\n public getNumberFormat(): NumberFormat {\n return lodashAssign(\n {},\n this.defaultFormats.number,\n lodashGet(this.locale, \"formats.number\", {})\n );\n }\n}\n"],"mappings":";;;;;;;;;AAAA;AACA;AAKA;AACA;AACA;AANA;AACA;AACA;AACA;;AAsBA;AACA;AACA;AACe,MAAMA,IAAI,CAAC;EAWfC,WAAW,GAAG;IAAA,8CAVU,IAAI;IAAA;IAAA;IAAA;IAAA;IAW/B;AACR;AACA;AACA;IACQ,IAAI,CAACC,cAAc,GAAG,IAAI,CAACC,iBAAiB,EAAE;;IAE9C;AACR;AACA;AACA;IACQ,IAAI,CAACC,YAAY,GAAG,CAAC,CAAC;;IAEtB;AACR;AACA;AACA;IACQ,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC;;IAEnB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACC,UAAU,GAAG,CAAC,CAAC;EACxB;EAEOC,SAAS,CAACC,IAAY,EAAEC,SAAkB,EAAc;IAC3D;IACA;IACA;;IAEA,IAAI,CAACA,SAAS,EAAE;MACZ,MAAMC,KAAK,CAAC,kCAAkC,CAAC;IACnD;IAEAF,IAAI,GAAG,IAAAG,YAAS,EAACH,IAAI,EAAE,OAAO,EAAEA,IAAI,CAAC;IAErC,IAAII,WAA0B,GAAG,IAAI,CAACC,cAAc,CAACJ,SAAS,GAAG,GAAG,GAAG,IAAAK,kBAAI,EAACN,IAAI,CAAC,CAAC;IAElF,IAAI,CAACI,WAAW,EAAE;MACdA,WAAW,GAAGJ,IAAI;IACtB;IAEA,MAAMO,YAAY,GAAGP,IAAI,CAACQ,QAAQ,CAAC,GAAG,CAAC,IAAIR,IAAI,CAACQ,QAAQ,CAAC,GAAG,CAAC;IAC7D,IAAID,YAAY,EAAE;MACd;MACA,MAAME,KAAK,GAAG,IAAI;MAClB,OAAO,SAASC,IAAI,CAACC,MAAsB,EAAE;QACzC,MAAMC,IAAc,GAAG;UACnBR,WAAW,EAAEA,WAAqB;UAClCJ,IAAI;UACJC,SAAS;UACTU,MAAM;UACND,IAAI,EAAED;QACV,CAAC;QACD,KAAK,MAAMI,GAAG,IAAIJ,KAAK,CAACX,UAAU,EAAE;UAChC,MAAMgB,SAAS,GAAGL,KAAK,CAACX,UAAU,CAACe,GAAG,CAAC;UACvC,IAAIC,SAAS,CAACC,UAAU,CAACH,IAAI,CAAC,EAAE;YAC5B,OAAOE,SAAS,CAACE,OAAO,CAACJ,IAAI,CAAC;UAClC;QACJ;QACA,OAAO,IAAI;MACf,CAAC;IACL;IAEA,MAAMA,IAAc,GAAG;MAAER,WAAW;MAAEJ,IAAI;MAAEC,SAAS;MAAEU,MAAM,EAAE,CAAC,CAAC;MAAED,IAAI,EAAE;IAAK,CAAC;IAC/E,KAAK,MAAMG,GAAG,IAAI,IAAI,CAACf,UAAU,EAAE;MAC/B,IAAI,IAAI,CAACA,UAAU,CAACe,GAAG,CAAC,CAACE,UAAU,CAACH,IAAI,CAAC,EAAE;QACvC,OAAO,IAAI,CAACd,UAAU,CAACe,GAAG,CAAC,CAACG,OAAO,CAACJ,IAAI,CAAC;MAC7C;IACJ;IACA,OAAO,IAAI;EACf;EAEOX,SAAS,CAACA,SAAiB,EAAc;IAC5C,OAAOD,IAAI,IAAI;MACX,OAAO,IAAI,CAACD,SAAS,CAACC,IAAI,EAAYC,SAAS,CAAC;IACpD,CAAC;EACL;EAEOgB,EAAE,CAAChB,SAAiB,EAAc;IACrC,OAAO,IAAI,CAACA,SAAS,CAACA,SAAS,CAAC;EACpC;;EAEA;AACJ;AACA;AACA;EACWiB,IAAI,CACPC,KAA6B,EAC7BC,YAAqB,EACrBC,WAAoB,EACd;IACN,IAAI,CAACD,YAAY,EAAE;MACfA,YAAY,GAAG,IAAI,CAACE,aAAa,EAAE;IACvC;IACA,IAAI,CAACD,WAAW,EAAE;MACdA,WAAW,GAAG,0BAA0B;IAC5C;IAEA,IAAIE,WAA0B;IAE9B,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;MAC3BI,WAAW,GAAGC,KAAK,CAACC,KAAK,CAACN,KAAK,EAAEE,WAAW,CAAS;IACzD,CAAC,MAAM;MACHE,WAAW,GAAGJ,KAAK;IACvB;IAEA,OAAOK,KAAK,CAACE,MAAM,CAACH,WAAW,EAAEH,YAAY,CAAC;EAClD;;EAEA;AACJ;AACA;AACA;EACWO,IAAI,CACPR,KAA6B,EAC7BC,YAAqB,EACrBC,WAAoB,EACd;IACN,IAAI,CAACD,YAAY,EAAE;MACfA,YAAY,GAAG,IAAI,CAACQ,aAAa,EAAE;IACvC;IACA,IAAI,CAACP,WAAW,EAAE;MACdA,WAAW,GAAG,0BAA0B;IAC5C;IAEA,IAAIE,WAA0B;IAE9B,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;MAC3BI,WAAW,GAAGC,KAAK,CAACC,KAAK,CAACN,KAAK,EAAEE,WAAW,CAAS;IACzD,CAAC,MAAM;MACHE,WAAW,GAAGJ,KAAK;IACvB;IAEA,OAAOK,KAAK,CAACE,MAAM,CAACH,WAAW,EAAEH,YAAY,CAAC;EAClD;;EAEA;AACJ;AACA;AACA;EACIS,QAAQ,CAACV,KAA6B,EAAEC,YAAqB,EAAEC,WAAoB,EAAU;IACzF,IAAI,CAACD,YAAY,EAAE;MACfA,YAAY,GAAG,IAAI,CAACU,iBAAiB,EAAE;IAC3C;IACA,IAAI,CAACT,WAAW,EAAE;MACdA,WAAW,GAAG,0BAA0B;IAC5C;IAEA,IAAIE,WAA0B;IAE9B,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;MAC3BI,WAAW,GAAGC,KAAK,CAACC,KAAK,CAACN,KAAK,EAAEE,WAAW,CAAS;IACzD,CAAC,MAAM;MACHE,WAAW,GAAGJ,KAAK;IACvB;IAEA,OAAOK,KAAK,CAACE,MAAM,CAACH,WAAW,EAAEH,YAAY,CAAC;EAClD;;EAEA;AACJ;AACA;EACWW,KAAK,CAACZ,KAAsB,EAAEC,YAAkB,EAAU;IAC7D,IAAI,CAACA,YAAY,EAAE;MACfA,YAAY,GAAG,IAAI,CAACY,cAAc,EAAE;IACxC,CAAC,MAAM;MACHZ,YAAY,GAAG,IAAAa,eAAY,EAAC,CAAC,CAAC,EAAE,IAAI,CAACvC,cAAc,CAACqC,KAAK,EAAEX,YAAY,CAAC;IAC5E;;IAEA;IACA,IAAIM,MAAM,GAAGN,YAAY,CAACM,MAAM;IAChCA,MAAM,GAAGA,MAAM,CAACQ,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;IACzCR,MAAM,GAAGA,MAAM,CAACQ,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;IAEzC,OAAOC,mBAAU,CAACC,WAAW,CACzBjB,KAAK,EACLC,YAAY,CAACiB,MAAM,EACnBjB,YAAY,CAACkB,SAAS,EACtBlB,YAAY,CAACmB,QAAQ,EACrBnB,YAAY,CAACoB,OAAO,EACpBd,MAAM,CACT;EACL;;EAEA;AACJ;AACA;EACWe,MAAM,CAACtB,KAAsB,EAAEC,YAA2B,EAAU;IACvE,IAAI,CAACA,YAAY,EAAE;MACfA,YAAY,GAAG,IAAI,CAACsB,eAAe,EAAE;IACzC,CAAC,MAAM;MACHtB,YAAY,GAAG,IAAAa,eAAY,EAAC,CAAC,CAAC,EAAE,IAAI,CAACvC,cAAc,CAAC+C,MAAM,EAAErB,YAAY,CAAC;IAC7E;IACA,OAAOe,mBAAU,CAACQ,YAAY;IAC1B;AACZ;AACA;IACYxB,KAAK,EACLC,YAAY,CAACkB,SAAS,EACtBlB,YAAY,CAACmB,QAAQ,EACrBnB,YAAY,CAACoB,OAAO,CACvB;EACL;;EAEA;AACJ;AACA;EACWnC,cAAc,CAACQ,GAAY,EAAiB;IAC/C,IAAI,CAACA,GAAG,EAAE;MACN,OAAO,IAAI;IACf;IACA,OAAO,IAAI,CAACjB,YAAY,CAACiB,GAAG,CAAC;EACjC;;EAEA;AACJ;AACA;EACW+B,eAAe,GAAiB;IACnC,OAAO,IAAI,CAAChD,YAAY;EAC5B;;EAEA;AACJ;AACA;EACWiD,cAAc,CAAChC,GAAW,EAAW;IACxC,OAAOA,GAAG,IAAI,IAAI,CAACjB,YAAY;EACnC;;EAEA;AACJ;AACA;EACWkD,cAAc,CAACjC,GAAW,EAAET,WAAmB,EAAQ;IAC1D,IAAI,CAACR,YAAY,CAACiB,GAAG,CAAC,GAAGT,WAAW;IACpC,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACW2C,eAAe,CAACnD,YAA0B,EAAQ;IACrD,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACWoD,iBAAiB,GAAS;IAC7B,IAAI,CAACD,eAAe,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;;EAEWE,iBAAiB,CAACrD,YAA0B,EAAgB;IAC/D,OAAO,IAAAqC,eAAY,EAAC,IAAI,CAACrC,YAAY,EAAEA,YAAY,CAAC;EACxD;;EAEA;AACJ;AACA;EACWsD,SAAS,GAAkB;IAC9B,OAAO,IAAI,CAACC,MAAM;EACtB;;EAEA;AACJ;AACA;EACWC,SAAS,CAACD,MAAc,EAAQ;IACnC,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACWE,gBAAgB,CAACC,QAAkB,EAAQ;IAC9C,IAAI,CAACzD,SAAS,CAACyD,QAAQ,CAACC,IAAI,CAAC,GAAGD,QAAQ;IACxC,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACWE,iBAAiB,CAAC3D,SAA0B,EAAQ;IACvDA,SAAS,CAAC4D,OAAO,CAACH,QAAQ,IAAI,IAAI,CAACD,gBAAgB,CAACC,QAAQ,CAAC,CAAC;IAC9D,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACWI,kBAAkB,CAACH,IAAY,EAAQ;IAC1C,OAAO,IAAI,CAAC1D,SAAS,CAAC0D,IAAI,CAAC;IAC3B,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACWI,iBAAiB,CAAC7C,SAAoB,EAAQ;IACjD,IAAI,CAAChB,UAAU,CAACgB,SAAS,CAACyC,IAAI,CAAC,GAAGzC,SAAS;IAC3C,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACW8C,kBAAkB,CAAC9D,UAA4B,EAAQ;IAC1DA,UAAU,CAAC2D,OAAO,CAAC3C,SAAS,IAAI,IAAI,CAAC6C,iBAAiB,CAAC7C,SAAS,CAAC,CAAC;IAClE,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACW+C,mBAAmB,CAACN,IAAY,EAAQ;IAC3C,OAAO,IAAI,CAACzD,UAAU,CAACyD,IAAI,CAAC;IAC5B,OAAO,IAAI;EACf;;EAEA;AACJ;AACA;EACW5D,iBAAiB,GAAY;IAChC,OAAO;MACHuB,IAAI,EAAE,YAAY;MAClBS,IAAI,EAAE,OAAO;MACbmC,QAAQ,EAAE,kBAAkB;MAC5B/B,KAAK,EAAE;QACHM,MAAM,EAAE,EAAE;QACVX,MAAM,EAAE,kBAAkB;QAC1Bc,OAAO,EAAE,GAAG;QACZD,QAAQ,EAAE,GAAG;QACbD,SAAS,EAAE;MACf,CAAC;MACDG,MAAM,EAAE;QACJD,OAAO,EAAE,GAAG;QACZD,QAAQ,EAAE,GAAG;QACbD,SAAS,EAAE;MACf;IACJ,CAAC;EACL;;EAEA;AACJ;AACA;EACWhB,aAAa,GAAW;IAC3B,OAAO,IAAAnB,YAAS,EAAC,IAAI,CAACgD,MAAM,EAAE,cAAc,EAAE,IAAI,CAACzD,cAAc,CAACwB,IAAI,CAAC;EAC3E;;EAEA;AACJ;AACA;EACWU,aAAa,GAAW;IAC3B,OAAO,IAAAzB,YAAS,EAAC,IAAI,CAACgD,MAAM,EAAE,cAAc,EAAE,IAAI,CAACzD,cAAc,CAACiC,IAAI,CAAC;EAC3E;;EAEA;AACJ;AACA;EACWG,iBAAiB,GAAW;IAC/B,OAAO,IAAA3B,YAAS,EAAC,IAAI,CAACgD,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAACzD,cAAc,CAACoE,QAAQ,CAAC;EACnF;;EAEA;AACJ;AACA;EACW9B,cAAc,GAAgB;IACjC,OAAO,IAAAC,eAAY,EACf,CAAC,CAAC,EACF,IAAI,CAACvC,cAAc,CAACqC,KAAK,EACzB,IAAA5B,YAAS,EAAC,IAAI,CAACgD,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAC9C;EACL;;EAEA;AACJ;AACA;EACWT,eAAe,GAAiB;IACnC,OAAO,IAAAT,eAAY,EACf,CAAC,CAAC,EACF,IAAI,CAACvC,cAAc,CAAC+C,MAAM,EAC1B,IAAAtC,YAAS,EAAC,IAAI,CAACgD,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAC/C;EACL;AACJ;AAAC"}
|
package/extractor/extract.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _shortHash = _interopRequireDefault(require("short-hash"));
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* Package short-hash has no types.
|
|
14
11
|
*/
|
|
@@ -24,39 +21,31 @@ const getNamespaces = source => {
|
|
|
24
21
|
const regex = /([a-zA-Z0-9]+)[ ]+=[ ]+i18n.namespace\(['"`]([a-zA-Z0-9.]+)['"`]\)/g;
|
|
25
22
|
let m;
|
|
26
23
|
const results = {};
|
|
27
|
-
|
|
28
24
|
while ((m = regex.exec(source)) !== null) {
|
|
29
25
|
if (m.index === regex.lastIndex) {
|
|
30
26
|
regex.lastIndex++;
|
|
31
27
|
}
|
|
32
|
-
|
|
33
28
|
results[m[1]] = m[2];
|
|
34
29
|
}
|
|
35
|
-
|
|
36
30
|
return results;
|
|
37
31
|
};
|
|
38
|
-
|
|
39
32
|
var _default = source => {
|
|
40
33
|
const results = {};
|
|
41
34
|
const allDeclaredNamespaces = getNamespaces(source);
|
|
42
|
-
|
|
43
35
|
for (const variable in allDeclaredNamespaces) {
|
|
44
36
|
const regex = new RegExp(variable + "`(.*?)`", "g");
|
|
45
37
|
let m;
|
|
46
|
-
|
|
47
38
|
while ((m = regex.exec(source)) !== null) {
|
|
48
39
|
if (m.index === regex.lastIndex) {
|
|
49
40
|
regex.lastIndex++;
|
|
50
|
-
}
|
|
51
|
-
|
|
41
|
+
}
|
|
52
42
|
|
|
43
|
+
// This is the key - namespace + hash of matched label.
|
|
53
44
|
const matchedText = m[1];
|
|
54
45
|
const key = allDeclaredNamespaces[variable] + "." + (0, _shortHash.default)(matchedText);
|
|
55
46
|
results[key] = matchedText;
|
|
56
47
|
}
|
|
57
48
|
}
|
|
58
|
-
|
|
59
49
|
return results;
|
|
60
50
|
};
|
|
61
|
-
|
|
62
51
|
exports.default = _default;
|
package/extractor/extract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getNamespaces","source","regex","m","results","exec","index","lastIndex","allDeclaredNamespaces","variable","RegExp","matchedText","key","hash"],"sources":["extract.ts"],"sourcesContent":["/**\n * Package short-hash has no types.\n */\n// @ts-ignore\nimport hash from \"short-hash\";\n\n/**\n * Searches for all declared namespaces.\n * Result contains an object with identifiers as keys, and namespaces they represent as values, for example:\n * {ns1: 'Webiny.Ns1', ns2: 'Webiny.Ns2', i18n: 'NewNamespace', t: 'Some.Other.Namespace'}\n * @param source\n */\nconst getNamespaces = (source: string) => {\n const regex = /([a-zA-Z0-9]+)[ ]+=[ ]+i18n.namespace\\(['\"`]([a-zA-Z0-9.]+)['\"`]\\)/g;\n let m;\n\n const results: Record<string, string> = {};\n\n while ((m = regex.exec(source)) !== null) {\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n results[m[1]] = m[2];\n }\n\n return results;\n};\n\nexport default (source: string) => {\n const results: Record<string, string> = {};\n const allDeclaredNamespaces = getNamespaces(source);\n\n for (const variable in allDeclaredNamespaces) {\n const regex = new RegExp(variable + \"`(.*?)`\", \"g\");\n\n let m;\n while ((m = regex.exec(source)) !== null) {\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n // This is the key - namespace + hash of matched label.\n const matchedText = m[1];\n const key = allDeclaredNamespaces[variable] + \".\" + hash(matchedText);\n results[key] = matchedText;\n }\n }\n\n return results;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getNamespaces","source","regex","m","results","exec","index","lastIndex","allDeclaredNamespaces","variable","RegExp","matchedText","key","hash"],"sources":["extract.ts"],"sourcesContent":["/**\n * Package short-hash has no types.\n */\n// @ts-ignore\nimport hash from \"short-hash\";\n\n/**\n * Searches for all declared namespaces.\n * Result contains an object with identifiers as keys, and namespaces they represent as values, for example:\n * {ns1: 'Webiny.Ns1', ns2: 'Webiny.Ns2', i18n: 'NewNamespace', t: 'Some.Other.Namespace'}\n * @param source\n */\nconst getNamespaces = (source: string) => {\n const regex = /([a-zA-Z0-9]+)[ ]+=[ ]+i18n.namespace\\(['\"`]([a-zA-Z0-9.]+)['\"`]\\)/g;\n let m;\n\n const results: Record<string, string> = {};\n\n while ((m = regex.exec(source)) !== null) {\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n results[m[1]] = m[2];\n }\n\n return results;\n};\n\nexport default (source: string) => {\n const results: Record<string, string> = {};\n const allDeclaredNamespaces = getNamespaces(source);\n\n for (const variable in allDeclaredNamespaces) {\n const regex = new RegExp(variable + \"`(.*?)`\", \"g\");\n\n let m;\n while ((m = regex.exec(source)) !== null) {\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n\n // This is the key - namespace + hash of matched label.\n const matchedText = m[1];\n const key = allDeclaredNamespaces[variable] + \".\" + hash(matchedText);\n results[key] = matchedText;\n }\n }\n\n return results;\n};\n"],"mappings":";;;;;;;AAIA;AAJA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,aAAa,GAAIC,MAAc,IAAK;EACtC,MAAMC,KAAK,GAAG,qEAAqE;EACnF,IAAIC,CAAC;EAEL,MAAMC,OAA+B,GAAG,CAAC,CAAC;EAE1C,OAAO,CAACD,CAAC,GAAGD,KAAK,CAACG,IAAI,CAACJ,MAAM,CAAC,MAAM,IAAI,EAAE;IACtC,IAAIE,CAAC,CAACG,KAAK,KAAKJ,KAAK,CAACK,SAAS,EAAE;MAC7BL,KAAK,CAACK,SAAS,EAAE;IACrB;IAEAH,OAAO,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;EACxB;EAEA,OAAOC,OAAO;AAClB,CAAC;AAAC,eAEcH,MAAc,IAAK;EAC/B,MAAMG,OAA+B,GAAG,CAAC,CAAC;EAC1C,MAAMI,qBAAqB,GAAGR,aAAa,CAACC,MAAM,CAAC;EAEnD,KAAK,MAAMQ,QAAQ,IAAID,qBAAqB,EAAE;IAC1C,MAAMN,KAAK,GAAG,IAAIQ,MAAM,CAACD,QAAQ,GAAG,SAAS,EAAE,GAAG,CAAC;IAEnD,IAAIN,CAAC;IACL,OAAO,CAACA,CAAC,GAAGD,KAAK,CAACG,IAAI,CAACJ,MAAM,CAAC,MAAM,IAAI,EAAE;MACtC,IAAIE,CAAC,CAACG,KAAK,KAAKJ,KAAK,CAACK,SAAS,EAAE;QAC7BL,KAAK,CAACK,SAAS,EAAE;MACrB;;MAEA;MACA,MAAMI,WAAW,GAAGR,CAAC,CAAC,CAAC,CAAC;MACxB,MAAMS,GAAG,GAAGJ,qBAAqB,CAACC,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAAI,kBAAI,EAACF,WAAW,CAAC;MACrEP,OAAO,CAACQ,GAAG,CAAC,GAAGD,WAAW;IAC9B;EACJ;EAEA,OAAOP,OAAO;AAClB,CAAC;AAAA"}
|
package/extractor/index.js
CHANGED
|
@@ -1,64 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _extract = _interopRequireDefault(require("./extract"));
|
|
13
|
-
|
|
14
10
|
var _glob = _interopRequireDefault(require("glob"));
|
|
15
|
-
|
|
16
11
|
var _fs = _interopRequireDefault(require("fs"));
|
|
17
|
-
|
|
18
12
|
class Extractor {
|
|
19
13
|
constructor() {
|
|
20
14
|
(0, _defineProperty2.default)(this, "glob", void 0);
|
|
21
15
|
(0, _defineProperty2.default)(this, "content", "");
|
|
22
16
|
(0, _defineProperty2.default)(this, "listOnly", false);
|
|
23
17
|
}
|
|
24
|
-
|
|
25
18
|
setGlob(value) {
|
|
26
19
|
this.glob = value;
|
|
27
20
|
return this;
|
|
28
21
|
}
|
|
29
|
-
|
|
30
22
|
setContent(content) {
|
|
31
23
|
this.content = content;
|
|
32
24
|
return this;
|
|
33
25
|
}
|
|
34
|
-
|
|
35
26
|
execute() {
|
|
36
27
|
const results = {};
|
|
37
|
-
|
|
38
28
|
if (!this.glob) {
|
|
39
29
|
return results;
|
|
40
30
|
}
|
|
41
|
-
|
|
42
31
|
const paths = _glob.default.sync(this.glob);
|
|
43
|
-
|
|
44
32
|
paths.forEach(path => {
|
|
45
33
|
const contents = _fs.default.readFileSync(path, "utf8");
|
|
46
|
-
|
|
47
34
|
const parsed = (0, _extract.default)(contents);
|
|
48
|
-
|
|
49
35
|
for (const key in parsed) {
|
|
50
36
|
results[key] = parsed[key];
|
|
51
37
|
}
|
|
52
38
|
});
|
|
53
39
|
return results;
|
|
54
40
|
}
|
|
55
|
-
|
|
56
41
|
setListOnly(flag = true) {
|
|
57
42
|
this.listOnly = flag;
|
|
58
43
|
return this;
|
|
59
44
|
}
|
|
60
|
-
|
|
61
45
|
}
|
|
62
|
-
|
|
63
46
|
var _default = Extractor;
|
|
64
47
|
exports.default = _default;
|
package/extractor/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Extractor","setGlob","value","glob","setContent","content","execute","results","paths","sync","forEach","path","contents","fs","readFileSync","parsed","extract","key","setListOnly","flag","listOnly"],"sources":["index.ts"],"sourcesContent":["import extract from \"./extract\";\nimport glob from \"glob\";\nimport fs from \"fs\";\n\nexport interface ExtractorResults {\n [key: string]: string;\n}\nclass Extractor {\n private glob: string | undefined;\n public content = \"\";\n public listOnly = false;\n\n public setGlob(value: string): Extractor {\n this.glob = value;\n return this;\n }\n\n public setContent(content: string): Extractor {\n this.content = content;\n return this;\n }\n\n public execute(): ExtractorResults {\n const results: ExtractorResults = {};\n\n if (!this.glob) {\n return results;\n }\n const paths = glob.sync(this.glob);\n paths.forEach(path => {\n const contents = fs.readFileSync(path, \"utf8\");\n const parsed = extract(contents);\n for (const key in parsed) {\n results[key] = parsed[key];\n }\n });\n\n return results;\n }\n\n public setListOnly(flag = true): Extractor {\n this.listOnly = flag;\n return this;\n }\n}\n\nexport default Extractor;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Extractor","setGlob","value","glob","setContent","content","execute","results","paths","sync","forEach","path","contents","fs","readFileSync","parsed","extract","key","setListOnly","flag","listOnly"],"sources":["index.ts"],"sourcesContent":["import extract from \"./extract\";\nimport glob from \"glob\";\nimport fs from \"fs\";\n\nexport interface ExtractorResults {\n [key: string]: string;\n}\nclass Extractor {\n private glob: string | undefined;\n public content = \"\";\n public listOnly = false;\n\n public setGlob(value: string): Extractor {\n this.glob = value;\n return this;\n }\n\n public setContent(content: string): Extractor {\n this.content = content;\n return this;\n }\n\n public execute(): ExtractorResults {\n const results: ExtractorResults = {};\n\n if (!this.glob) {\n return results;\n }\n const paths = glob.sync(this.glob);\n paths.forEach(path => {\n const contents = fs.readFileSync(path, \"utf8\");\n const parsed = extract(contents);\n for (const key in parsed) {\n results[key] = parsed[key];\n }\n });\n\n return results;\n }\n\n public setListOnly(flag = true): Extractor {\n this.listOnly = flag;\n return this;\n }\n}\n\nexport default Extractor;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AAKA,MAAMA,SAAS,CAAC;EAAA;IAAA;IAAA,+CAEK,EAAE;IAAA,gDACD,KAAK;EAAA;EAEhBC,OAAO,CAACC,KAAa,EAAa;IACrC,IAAI,CAACC,IAAI,GAAGD,KAAK;IACjB,OAAO,IAAI;EACf;EAEOE,UAAU,CAACC,OAAe,EAAa;IAC1C,IAAI,CAACA,OAAO,GAAGA,OAAO;IACtB,OAAO,IAAI;EACf;EAEOC,OAAO,GAAqB;IAC/B,MAAMC,OAAyB,GAAG,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAI,CAACJ,IAAI,EAAE;MACZ,OAAOI,OAAO;IAClB;IACA,MAAMC,KAAK,GAAGL,aAAI,CAACM,IAAI,CAAC,IAAI,CAACN,IAAI,CAAC;IAClCK,KAAK,CAACE,OAAO,CAACC,IAAI,IAAI;MAClB,MAAMC,QAAQ,GAAGC,WAAE,CAACC,YAAY,CAACH,IAAI,EAAE,MAAM,CAAC;MAC9C,MAAMI,MAAM,GAAG,IAAAC,gBAAO,EAACJ,QAAQ,CAAC;MAChC,KAAK,MAAMK,GAAG,IAAIF,MAAM,EAAE;QACtBR,OAAO,CAACU,GAAG,CAAC,GAAGF,MAAM,CAACE,GAAG,CAAC;MAC9B;IACJ,CAAC,CAAC;IAEF,OAAOV,OAAO;EAClB;EAEOW,WAAW,CAACC,IAAI,GAAG,IAAI,EAAa;IACvC,IAAI,CAACC,QAAQ,GAAGD,IAAI;IACpB,OAAO,IAAI;EACf;AACJ;AAAC,eAEcnB,SAAS;AAAA"}
|
package/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -18,13 +17,9 @@ Object.defineProperty(exports, "defaultProcessor", {
|
|
|
18
17
|
return _default2.default;
|
|
19
18
|
}
|
|
20
19
|
});
|
|
21
|
-
|
|
22
20
|
var _I18n = _interopRequireDefault(require("./I18n"));
|
|
23
|
-
|
|
24
21
|
var _default2 = _interopRequireDefault(require("./processors/default"));
|
|
25
|
-
|
|
26
22
|
var _modifiers = _interopRequireDefault(require("./modifiers"));
|
|
27
|
-
|
|
28
23
|
const i18n = new _I18n.default();
|
|
29
24
|
const defaultModifiers = (0, _modifiers.default)({
|
|
30
25
|
i18n
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","I18n","defaultModifiers","modifiersFactory"],"sources":["index.ts"],"sourcesContent":["import I18n from \"./I18n\";\nimport defaultProcessor from \"./processors/default\";\nimport modifiersFactory from \"./modifiers\";\n\nconst i18n = new I18n();\n\nconst defaultModifiers = modifiersFactory({ i18n });\n\nexport default i18n;\n\nexport { I18n, defaultModifiers, defaultProcessor };\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","I18n","defaultModifiers","modifiersFactory"],"sources":["index.ts"],"sourcesContent":["import I18n from \"./I18n\";\nimport defaultProcessor from \"./processors/default\";\nimport modifiersFactory from \"./modifiers\";\n\nconst i18n = new I18n();\n\nconst defaultModifiers = modifiersFactory({ i18n });\n\nexport default i18n;\n\nexport { I18n, defaultModifiers, defaultProcessor };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA,MAAMA,IAAI,GAAG,IAAIC,aAAI,EAAE;AAEvB,MAAMC,gBAAgB,GAAG,IAAAC,kBAAgB,EAAC;EAAEH;AAAK,CAAC,CAAC;AAAC;AAAA,eAErCA,IAAI;AAAA"}
|
|
@@ -4,40 +4,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = () => {
|
|
9
8
|
return {
|
|
10
9
|
name: "count",
|
|
11
|
-
|
|
12
10
|
execute(value, parameters) {
|
|
13
11
|
// Numbers can be single number or ranges.
|
|
14
12
|
for (let i = 0; i < parameters.length; i = i + 2) {
|
|
15
13
|
const current = parameters[i];
|
|
16
|
-
|
|
17
14
|
if (current === "default") {
|
|
18
15
|
return value + " " + parameters[i + 1];
|
|
19
16
|
}
|
|
17
|
+
const numbers = current.split("-");
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
// If we are dealing with a numbers range, then let's check if we are in it.
|
|
23
20
|
if (numbers.length === 2) {
|
|
24
21
|
if (value >= numbers[0] && value <= numbers[1]) {
|
|
25
22
|
return value + " " + parameters[i + 1];
|
|
26
23
|
}
|
|
27
|
-
|
|
28
24
|
continue;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (String(value) === numbers[0]) {
|
|
32
27
|
return value + " " + parameters[i + 1];
|
|
33
28
|
}
|
|
34
|
-
}
|
|
35
|
-
|
|
29
|
+
}
|
|
36
30
|
|
|
31
|
+
// If we didn't match any condition, let's just remove the received value.
|
|
37
32
|
return value;
|
|
38
33
|
}
|
|
39
|
-
|
|
40
34
|
};
|
|
41
35
|
};
|
|
42
|
-
|
|
43
36
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["name","execute","value","parameters","i","length","current","numbers","split","String"],"sources":["countModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"count\",\n execute(value: string, parameters: Array<string>) {\n // Numbers can be single number or ranges.\n for (let i = 0; i < parameters.length; i = i + 2) {\n const current = parameters[i];\n if (current === \"default\") {\n return value + \" \" + parameters[i + 1];\n }\n\n const numbers = current.split(\"-\");\n\n // If we are dealing with a numbers range, then let's check if we are in it.\n if (numbers.length === 2) {\n if (value >= numbers[0] && value <= numbers[1]) {\n return value + \" \" + parameters[i + 1];\n }\n continue;\n }\n\n if (String(value) === numbers[0]) {\n return value + \" \" + parameters[i + 1];\n }\n }\n\n // If we didn't match any condition, let's just remove the received value.\n return value;\n }\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["name","execute","value","parameters","i","length","current","numbers","split","String"],"sources":["countModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"count\",\n execute(value: string, parameters: Array<string>) {\n // Numbers can be single number or ranges.\n for (let i = 0; i < parameters.length; i = i + 2) {\n const current = parameters[i];\n if (current === \"default\") {\n return value + \" \" + parameters[i + 1];\n }\n\n const numbers = current.split(\"-\");\n\n // If we are dealing with a numbers range, then let's check if we are in it.\n if (numbers.length === 2) {\n if (value >= numbers[0] && value <= numbers[1]) {\n return value + \" \" + parameters[i + 1];\n }\n continue;\n }\n\n if (String(value) === numbers[0]) {\n return value + \" \" + parameters[i + 1];\n }\n }\n\n // If we didn't match any condition, let's just remove the received value.\n return value;\n }\n };\n};\n"],"mappings":";;;;;;eAEe,MAAgB;EAC3B,OAAO;IACHA,IAAI,EAAE,OAAO;IACbC,OAAO,CAACC,KAAa,EAAEC,UAAyB,EAAE;MAC9C;MACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,UAAU,CAACE,MAAM,EAAED,CAAC,GAAGA,CAAC,GAAG,CAAC,EAAE;QAC9C,MAAME,OAAO,GAAGH,UAAU,CAACC,CAAC,CAAC;QAC7B,IAAIE,OAAO,KAAK,SAAS,EAAE;UACvB,OAAOJ,KAAK,GAAG,GAAG,GAAGC,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;QAC1C;QAEA,MAAMG,OAAO,GAAGD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;;QAElC;QACA,IAAID,OAAO,CAACF,MAAM,KAAK,CAAC,EAAE;UACtB,IAAIH,KAAK,IAAIK,OAAO,CAAC,CAAC,CAAC,IAAIL,KAAK,IAAIK,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5C,OAAOL,KAAK,GAAG,GAAG,GAAGC,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;UAC1C;UACA;QACJ;QAEA,IAAIK,MAAM,CAACP,KAAK,CAAC,KAAKK,OAAO,CAAC,CAAC,CAAC,EAAE;UAC9B,OAAOL,KAAK,GAAG,GAAG,GAAGC,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;QAC1C;MACJ;;MAEA;MACA,OAAOF,KAAK;IAChB;EACJ,CAAC;AACL,CAAC;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = ({
|
|
9
8
|
i18n
|
|
10
9
|
}) => ({
|
|
11
10
|
name: "date",
|
|
12
|
-
|
|
13
11
|
execute(value) {
|
|
14
12
|
return i18n.date(value);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
});
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","name","execute","value","date"],"sources":["dateModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"date\",\n execute(value) {\n return i18n.date(value);\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","name","execute","value","date"],"sources":["dateModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"date\",\n execute(value) {\n return i18n.date(value);\n }\n});\n"],"mappings":";;;;;;eAEe,CAAC;EAAEA;AAAsB,CAAC,MAAgB;EACrDC,IAAI,EAAE,MAAM;EACZC,OAAO,CAACC,KAAK,EAAE;IACX,OAAOH,IAAI,CAACI,IAAI,CAACD,KAAK,CAAC;EAC3B;AACJ,CAAC,CAAC;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = ({
|
|
9
8
|
i18n
|
|
10
9
|
}) => ({
|
|
11
10
|
name: "dateTime",
|
|
12
|
-
|
|
13
11
|
execute(value) {
|
|
14
12
|
return i18n.dateTime(value);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
});
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","name","execute","value","dateTime"],"sources":["dateTimeModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"dateTime\",\n execute(value: string) {\n return i18n.dateTime(value);\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","name","execute","value","dateTime"],"sources":["dateTimeModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"dateTime\",\n execute(value: string) {\n return i18n.dateTime(value);\n }\n});\n"],"mappings":";;;;;;eAEe,CAAC;EAAEA;AAAsB,CAAC,MAAgB;EACrDC,IAAI,EAAE,UAAU;EAChBC,OAAO,CAACC,KAAa,EAAE;IACnB,OAAOH,IAAI,CAACI,QAAQ,CAACD,KAAK,CAAC;EAC/B;AACJ,CAAC,CAAC;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = () => {
|
|
9
8
|
return {
|
|
10
9
|
name: "gender",
|
|
11
|
-
|
|
12
10
|
execute(value, parameters) {
|
|
13
11
|
return value === "male" ? parameters[0] : parameters[1];
|
|
14
12
|
}
|
|
15
|
-
|
|
16
13
|
};
|
|
17
14
|
};
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["name","execute","value","parameters"],"sources":["genderModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"gender\",\n execute(value: string, parameters: Array<string>) {\n return value === \"male\" ? parameters[0] : parameters[1];\n }\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["name","execute","value","parameters"],"sources":["genderModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"gender\",\n execute(value: string, parameters: Array<string>) {\n return value === \"male\" ? parameters[0] : parameters[1];\n }\n };\n};\n"],"mappings":";;;;;;eAEe,MAAgB;EAC3B,OAAO;IACHA,IAAI,EAAE,QAAQ;IACdC,OAAO,CAACC,KAAa,EAAEC,UAAyB,EAAE;MAC9C,OAAOD,KAAK,KAAK,MAAM,GAAGC,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC;IAC3D;EACJ,CAAC;AACL,CAAC;AAAA"}
|
package/modifiers/ifModifier.js
CHANGED
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = () => {
|
|
9
8
|
return {
|
|
10
9
|
name: "if",
|
|
11
|
-
|
|
12
10
|
execute(value, parameters) {
|
|
13
11
|
return value === parameters[0] ? parameters[1] : parameters[2] || "";
|
|
14
12
|
}
|
|
15
|
-
|
|
16
13
|
};
|
|
17
14
|
};
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["name","execute","value","parameters"],"sources":["ifModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"if\",\n execute(value: string, parameters: Array<string>) {\n return value === parameters[0] ? parameters[1] : parameters[2] || \"\";\n }\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["name","execute","value","parameters"],"sources":["ifModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"if\",\n execute(value: string, parameters: Array<string>) {\n return value === parameters[0] ? parameters[1] : parameters[2] || \"\";\n }\n };\n};\n"],"mappings":";;;;;;eAEe,MAAgB;EAC3B,OAAO;IACHA,IAAI,EAAE,IAAI;IACVC,OAAO,CAACC,KAAa,EAAEC,UAAyB,EAAE;MAC9C,OAAOD,KAAK,KAAKC,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,GAAGA,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;IACxE;EACJ,CAAC;AACL,CAAC;AAAA"}
|
package/modifiers/index.js
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _countModifier = _interopRequireDefault(require("./countModifier"));
|
|
11
|
-
|
|
12
9
|
var _genderModifier = _interopRequireDefault(require("./genderModifier"));
|
|
13
|
-
|
|
14
10
|
var _ifModifier = _interopRequireDefault(require("./ifModifier"));
|
|
15
|
-
|
|
16
11
|
var _pluralModifier = _interopRequireDefault(require("./pluralModifier"));
|
|
17
|
-
|
|
18
12
|
var _dateModifier = _interopRequireDefault(require("./dateModifier"));
|
|
19
|
-
|
|
20
13
|
var _dateTimeModifier = _interopRequireDefault(require("./dateTimeModifier"));
|
|
21
|
-
|
|
22
14
|
var _timeModifier = _interopRequireDefault(require("./timeModifier"));
|
|
23
|
-
|
|
24
15
|
var _numberModifier = _interopRequireDefault(require("./numberModifier"));
|
|
25
|
-
|
|
26
16
|
var _priceModifier = _interopRequireDefault(require("./priceModifier"));
|
|
27
|
-
|
|
28
17
|
// Built-in modifiers
|
|
29
18
|
var _default = options => [(0, _countModifier.default)(), (0, _genderModifier.default)(), (0, _ifModifier.default)(), (0, _pluralModifier.default)(), (0, _dateModifier.default)(options), (0, _dateTimeModifier.default)(options), (0, _timeModifier.default)(options), (0, _numberModifier.default)(options), (0, _priceModifier.default)(options)];
|
|
30
|
-
|
|
31
19
|
exports.default = _default;
|
package/modifiers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["options","countModifiers","genderModifier","ifModifier","pluralModifier","dateModifier","dateTimeModifier","timeModifier","numberModifier","priceModifier"],"sources":["index.ts"],"sourcesContent":["// Built-in modifiers\nimport countModifiers from \"./countModifier\";\nimport genderModifier from \"./genderModifier\";\nimport ifModifier from \"./ifModifier\";\nimport pluralModifier from \"./pluralModifier\";\nimport dateModifier from \"./dateModifier\";\nimport dateTimeModifier from \"./dateTimeModifier\";\nimport timeModifier from \"./timeModifier\";\nimport numberModifier from \"./numberModifier\";\nimport priceModifier from \"./priceModifier\";\nimport { Modifier, ModifierOptions } from \"~/types\";\n\nexport default (options: ModifierOptions): Modifier[] => [\n countModifiers(),\n genderModifier(),\n ifModifier(),\n pluralModifier(),\n dateModifier(options),\n dateTimeModifier(options),\n timeModifier(options),\n numberModifier(options),\n priceModifier(options)\n];\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["options","countModifiers","genderModifier","ifModifier","pluralModifier","dateModifier","dateTimeModifier","timeModifier","numberModifier","priceModifier"],"sources":["index.ts"],"sourcesContent":["// Built-in modifiers\nimport countModifiers from \"./countModifier\";\nimport genderModifier from \"./genderModifier\";\nimport ifModifier from \"./ifModifier\";\nimport pluralModifier from \"./pluralModifier\";\nimport dateModifier from \"./dateModifier\";\nimport dateTimeModifier from \"./dateTimeModifier\";\nimport timeModifier from \"./timeModifier\";\nimport numberModifier from \"./numberModifier\";\nimport priceModifier from \"./priceModifier\";\nimport { Modifier, ModifierOptions } from \"~/types\";\n\nexport default (options: ModifierOptions): Modifier[] => [\n countModifiers(),\n genderModifier(),\n ifModifier(),\n pluralModifier(),\n dateModifier(options),\n dateTimeModifier(options),\n timeModifier(options),\n numberModifier(options),\n priceModifier(options)\n];\n"],"mappings":";;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA;AAAA,eAYgBA,OAAwB,IAAiB,CACrD,IAAAC,sBAAc,GAAE,EAChB,IAAAC,uBAAc,GAAE,EAChB,IAAAC,mBAAU,GAAE,EACZ,IAAAC,uBAAc,GAAE,EAChB,IAAAC,qBAAY,EAACL,OAAO,CAAC,EACrB,IAAAM,yBAAgB,EAACN,OAAO,CAAC,EACzB,IAAAO,qBAAY,EAACP,OAAO,CAAC,EACrB,IAAAQ,uBAAc,EAACR,OAAO,CAAC,EACvB,IAAAS,sBAAa,EAACT,OAAO,CAAC,CACzB;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = ({
|
|
9
8
|
i18n
|
|
10
9
|
}) => ({
|
|
11
10
|
name: "number",
|
|
12
|
-
|
|
13
11
|
execute(value) {
|
|
14
12
|
return i18n.number(value);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
});
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","name","execute","value","number"],"sources":["numberModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"number\",\n execute(value: string) {\n return i18n.number(value);\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","name","execute","value","number"],"sources":["numberModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"number\",\n execute(value: string) {\n return i18n.number(value);\n }\n});\n"],"mappings":";;;;;;eAEe,CAAC;EAAEA;AAAsB,CAAC,MAAgB;EACrDC,IAAI,EAAE,QAAQ;EACdC,OAAO,CAACC,KAAa,EAAE;IACnB,OAAOH,IAAI,CAACI,MAAM,CAACD,KAAK,CAAC;EAC7B;AACJ,CAAC,CAAC;AAAA"}
|
|
@@ -4,39 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = () => {
|
|
9
8
|
return {
|
|
10
9
|
name: "plural",
|
|
11
|
-
|
|
12
10
|
execute(value, parameters) {
|
|
13
11
|
// Numbers can be single number or ranges.
|
|
14
12
|
for (let i = 0; i < parameters.length; i = i + 2) {
|
|
15
13
|
const current = parameters[i];
|
|
16
|
-
|
|
17
14
|
if (current === "default") {
|
|
18
15
|
return parameters[i + 1];
|
|
19
16
|
}
|
|
17
|
+
const numbers = current.split("-");
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
// If we are dealing with a numbers range, then let's check if we are in it.
|
|
23
20
|
if (numbers.length === 2) {
|
|
24
21
|
if (value >= numbers[0] && value <= numbers[1]) {
|
|
25
22
|
return parameters[i + 1];
|
|
26
23
|
}
|
|
27
|
-
|
|
28
24
|
continue;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (String(value) === numbers[0]) {
|
|
32
27
|
return parameters[i + 1];
|
|
33
28
|
}
|
|
34
29
|
}
|
|
35
|
-
|
|
36
30
|
return "";
|
|
37
31
|
}
|
|
38
|
-
|
|
39
32
|
};
|
|
40
33
|
};
|
|
41
|
-
|
|
42
34
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["name","execute","value","parameters","i","length","current","numbers","split","String"],"sources":["pluralModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"plural\",\n execute(value: string, parameters: Array<string>) {\n // Numbers can be single number or ranges.\n for (let i = 0; i < parameters.length; i = i + 2) {\n const current = parameters[i];\n if (current === \"default\") {\n return parameters[i + 1];\n }\n\n const numbers = current.split(\"-\");\n\n // If we are dealing with a numbers range, then let's check if we are in it.\n if (numbers.length === 2) {\n if (value >= numbers[0] && value <= numbers[1]) {\n return parameters[i + 1];\n }\n continue;\n }\n\n if (String(value) === numbers[0]) {\n return parameters[i + 1];\n }\n }\n\n return \"\";\n }\n };\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["name","execute","value","parameters","i","length","current","numbers","split","String"],"sources":["pluralModifier.ts"],"sourcesContent":["import { Modifier } from \"~/types\";\n\nexport default (): Modifier => {\n return {\n name: \"plural\",\n execute(value: string, parameters: Array<string>) {\n // Numbers can be single number or ranges.\n for (let i = 0; i < parameters.length; i = i + 2) {\n const current = parameters[i];\n if (current === \"default\") {\n return parameters[i + 1];\n }\n\n const numbers = current.split(\"-\");\n\n // If we are dealing with a numbers range, then let's check if we are in it.\n if (numbers.length === 2) {\n if (value >= numbers[0] && value <= numbers[1]) {\n return parameters[i + 1];\n }\n continue;\n }\n\n if (String(value) === numbers[0]) {\n return parameters[i + 1];\n }\n }\n\n return \"\";\n }\n };\n};\n"],"mappings":";;;;;;eAEe,MAAgB;EAC3B,OAAO;IACHA,IAAI,EAAE,QAAQ;IACdC,OAAO,CAACC,KAAa,EAAEC,UAAyB,EAAE;MAC9C;MACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,UAAU,CAACE,MAAM,EAAED,CAAC,GAAGA,CAAC,GAAG,CAAC,EAAE;QAC9C,MAAME,OAAO,GAAGH,UAAU,CAACC,CAAC,CAAC;QAC7B,IAAIE,OAAO,KAAK,SAAS,EAAE;UACvB,OAAOH,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;QAC5B;QAEA,MAAMG,OAAO,GAAGD,OAAO,CAACE,KAAK,CAAC,GAAG,CAAC;;QAElC;QACA,IAAID,OAAO,CAACF,MAAM,KAAK,CAAC,EAAE;UACtB,IAAIH,KAAK,IAAIK,OAAO,CAAC,CAAC,CAAC,IAAIL,KAAK,IAAIK,OAAO,CAAC,CAAC,CAAC,EAAE;YAC5C,OAAOJ,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;UAC5B;UACA;QACJ;QAEA,IAAIK,MAAM,CAACP,KAAK,CAAC,KAAKK,OAAO,CAAC,CAAC,CAAC,EAAE;UAC9B,OAAOJ,UAAU,CAACC,CAAC,GAAG,CAAC,CAAC;QAC5B;MACJ;MAEA,OAAO,EAAE;IACb;EACJ,CAAC;AACL,CAAC;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = ({
|
|
9
8
|
i18n
|
|
10
9
|
}) => ({
|
|
11
10
|
name: "price",
|
|
12
|
-
|
|
13
11
|
execute(value) {
|
|
14
12
|
return i18n.price(value);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
});
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","name","execute","value","price"],"sources":["priceModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"price\",\n execute(value: string) {\n return i18n.price(value);\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","name","execute","value","price"],"sources":["priceModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"price\",\n execute(value: string) {\n return i18n.price(value);\n }\n});\n"],"mappings":";;;;;;eAEe,CAAC;EAAEA;AAAsB,CAAC,MAAgB;EACrDC,IAAI,EAAE,OAAO;EACbC,OAAO,CAACC,KAAa,EAAE;IACnB,OAAOH,IAAI,CAACI,KAAK,CAACD,KAAK,CAAC;EAC5B;AACJ,CAAC,CAAC;AAAA"}
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _default = ({
|
|
9
8
|
i18n
|
|
10
9
|
}) => ({
|
|
11
10
|
name: "time",
|
|
12
|
-
|
|
13
11
|
execute(value) {
|
|
14
12
|
return i18n.time(value);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
14
|
});
|
|
18
|
-
|
|
19
15
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18n","name","execute","value","time"],"sources":["timeModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"time\",\n execute(value: string) {\n return i18n.time(value);\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["i18n","name","execute","value","time"],"sources":["timeModifier.ts"],"sourcesContent":["import { Modifier, ModifierOptions } from \"~/types\";\n\nexport default ({ i18n }: ModifierOptions): Modifier => ({\n name: \"time\",\n execute(value: string) {\n return i18n.time(value);\n }\n});\n"],"mappings":";;;;;;eAEe,CAAC;EAAEA;AAAsB,CAAC,MAAgB;EACrDC,IAAI,EAAE,MAAM;EACZC,OAAO,CAACC,KAAa,EAAE;IACnB,OAAOH,IAAI,CAACI,IAAI,CAACD,KAAK,CAAC;EAC3B;AACJ,CAAC,CAAC;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/i18n",
|
|
3
|
-
"version": "5.35.0-beta.
|
|
3
|
+
"version": "5.35.0-beta.2",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"@babel/register": "^7.16.0",
|
|
32
32
|
"@types/accounting": "^0.4.2",
|
|
33
33
|
"@types/lodash": "^4.14.190",
|
|
34
|
-
"@webiny/cli": "^5.35.0-beta.
|
|
35
|
-
"@webiny/project-utils": "^5.35.0-beta.
|
|
34
|
+
"@webiny/cli": "^5.35.0-beta.2",
|
|
35
|
+
"@webiny/project-utils": "^5.35.0-beta.2",
|
|
36
36
|
"babel-plugin-lodash": "^3.3.4",
|
|
37
37
|
"glob": "^7.1.2",
|
|
38
38
|
"rimraf": "^3.0.2",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"build": "yarn webiny run build",
|
|
48
48
|
"watch": "yarn webiny run watch"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "948cd1e05978e0ed25137ace7dd6c15ed0bf2cca"
|
|
51
51
|
}
|
package/processors/default.js
CHANGED
|
@@ -1,69 +1,52 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _trim = _interopRequireDefault(require("lodash/trim"));
|
|
11
|
-
|
|
12
9
|
const processTextPart = (part, values, modifiers) => {
|
|
13
10
|
if (part.startsWith("{") === false) {
|
|
14
11
|
return part;
|
|
15
12
|
}
|
|
16
|
-
|
|
17
13
|
const parts = (0, _trim.default)(part, "{}").split("|");
|
|
18
14
|
const [variable, modifier] = parts;
|
|
19
|
-
|
|
20
15
|
if (!values[variable]) {
|
|
21
16
|
return `{${variable}}`;
|
|
22
17
|
}
|
|
23
|
-
|
|
24
18
|
const output = {
|
|
25
19
|
value: values[variable]
|
|
26
20
|
};
|
|
27
|
-
|
|
28
21
|
if (modifier) {
|
|
29
22
|
const parameters = modifier.split(":");
|
|
30
23
|
const name = parameters.shift();
|
|
31
|
-
|
|
32
24
|
if (!name) {
|
|
33
25
|
return output.value;
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
if (modifiers[name]) {
|
|
37
28
|
const modifier = modifiers[name];
|
|
38
29
|
output.value = modifier.execute(output.value, parameters);
|
|
39
30
|
}
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
return output.value;
|
|
43
33
|
};
|
|
44
|
-
|
|
45
34
|
const processor = {
|
|
46
35
|
name: "default",
|
|
47
|
-
|
|
48
36
|
canExecute(data) {
|
|
49
37
|
for (const key in data.values) {
|
|
50
38
|
const value = data.values[key];
|
|
51
|
-
|
|
52
39
|
if (typeof value === "string" || typeof value === "number" || value === null || value instanceof Date) {
|
|
53
40
|
continue;
|
|
54
41
|
}
|
|
55
|
-
|
|
56
42
|
return false;
|
|
57
43
|
}
|
|
58
|
-
|
|
59
44
|
return true;
|
|
60
45
|
},
|
|
61
|
-
|
|
62
46
|
execute(data) {
|
|
63
47
|
const parts = data.translation.split(/({.*?})/);
|
|
64
48
|
return parts.reduce((carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers), "");
|
|
65
49
|
}
|
|
66
|
-
|
|
67
50
|
};
|
|
68
51
|
var _default = processor;
|
|
69
52
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["processTextPart","part","values","modifiers","startsWith","parts","lodashTrim","split","variable","modifier","output","value","parameters","name","shift","execute","processor","canExecute","data","key","Date","translation","reduce","carry","i18n"],"sources":["default.ts"],"sourcesContent":["import lodashTrim from \"lodash/trim\";\nimport { Modifier, Processor } from \"~/types\";\n\nconst processTextPart = (\n part: string,\n values: Record<string, any>,\n modifiers: Record<string, Modifier>\n): string => {\n if (part.startsWith(\"{\") === false) {\n return part;\n }\n\n const parts = lodashTrim(part, \"{}\").split(\"|\");\n\n const [variable, modifier] = parts;\n\n if (!values[variable]) {\n return `{${variable}}`;\n }\n\n const output = {\n value: values[variable]\n };\n\n if (modifier) {\n const parameters: string[] = modifier.split(\":\");\n const name = parameters.shift();\n if (!name) {\n return output.value;\n }\n if (modifiers[name]) {\n const modifier = modifiers[name];\n output.value = modifier.execute(output.value, parameters);\n }\n }\n\n return output.value;\n};\n\nconst processor: Processor = {\n name: \"default\",\n canExecute(data) {\n for (const key in data.values) {\n const value = data.values[key];\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value === null ||\n value instanceof Date\n ) {\n continue;\n }\n return false;\n }\n\n return true;\n },\n execute(data) {\n const parts = data.translation.split(/({.*?})/);\n return parts.reduce(\n (carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers),\n \"\"\n );\n }\n};\n\nexport default processor;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["processTextPart","part","values","modifiers","startsWith","parts","lodashTrim","split","variable","modifier","output","value","parameters","name","shift","execute","processor","canExecute","data","key","Date","translation","reduce","carry","i18n"],"sources":["default.ts"],"sourcesContent":["import lodashTrim from \"lodash/trim\";\nimport { Modifier, Processor } from \"~/types\";\n\nconst processTextPart = (\n part: string,\n values: Record<string, any>,\n modifiers: Record<string, Modifier>\n): string => {\n if (part.startsWith(\"{\") === false) {\n return part;\n }\n\n const parts = lodashTrim(part, \"{}\").split(\"|\");\n\n const [variable, modifier] = parts;\n\n if (!values[variable]) {\n return `{${variable}}`;\n }\n\n const output = {\n value: values[variable]\n };\n\n if (modifier) {\n const parameters: string[] = modifier.split(\":\");\n const name = parameters.shift();\n if (!name) {\n return output.value;\n }\n if (modifiers[name]) {\n const modifier = modifiers[name];\n output.value = modifier.execute(output.value, parameters);\n }\n }\n\n return output.value;\n};\n\nconst processor: Processor = {\n name: \"default\",\n canExecute(data) {\n for (const key in data.values) {\n const value = data.values[key];\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n value === null ||\n value instanceof Date\n ) {\n continue;\n }\n return false;\n }\n\n return true;\n },\n execute(data) {\n const parts = data.translation.split(/({.*?})/);\n return parts.reduce(\n (carry, part) => carry + processTextPart(part, data.values, data.i18n.modifiers),\n \"\"\n );\n }\n};\n\nexport default processor;\n"],"mappings":";;;;;;;AAAA;AAGA,MAAMA,eAAe,GAAG,CACpBC,IAAY,EACZC,MAA2B,EAC3BC,SAAmC,KAC1B;EACT,IAAIF,IAAI,CAACG,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;IAChC,OAAOH,IAAI;EACf;EAEA,MAAMI,KAAK,GAAG,IAAAC,aAAU,EAACL,IAAI,EAAE,IAAI,CAAC,CAACM,KAAK,CAAC,GAAG,CAAC;EAE/C,MAAM,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAGJ,KAAK;EAElC,IAAI,CAACH,MAAM,CAACM,QAAQ,CAAC,EAAE;IACnB,OAAQ,IAAGA,QAAS,GAAE;EAC1B;EAEA,MAAME,MAAM,GAAG;IACXC,KAAK,EAAET,MAAM,CAACM,QAAQ;EAC1B,CAAC;EAED,IAAIC,QAAQ,EAAE;IACV,MAAMG,UAAoB,GAAGH,QAAQ,CAACF,KAAK,CAAC,GAAG,CAAC;IAChD,MAAMM,IAAI,GAAGD,UAAU,CAACE,KAAK,EAAE;IAC/B,IAAI,CAACD,IAAI,EAAE;MACP,OAAOH,MAAM,CAACC,KAAK;IACvB;IACA,IAAIR,SAAS,CAACU,IAAI,CAAC,EAAE;MACjB,MAAMJ,QAAQ,GAAGN,SAAS,CAACU,IAAI,CAAC;MAChCH,MAAM,CAACC,KAAK,GAAGF,QAAQ,CAACM,OAAO,CAACL,MAAM,CAACC,KAAK,EAAEC,UAAU,CAAC;IAC7D;EACJ;EAEA,OAAOF,MAAM,CAACC,KAAK;AACvB,CAAC;AAED,MAAMK,SAAoB,GAAG;EACzBH,IAAI,EAAE,SAAS;EACfI,UAAU,CAACC,IAAI,EAAE;IACb,KAAK,MAAMC,GAAG,IAAID,IAAI,CAAChB,MAAM,EAAE;MAC3B,MAAMS,KAAK,GAAGO,IAAI,CAAChB,MAAM,CAACiB,GAAG,CAAC;MAC9B,IACI,OAAOR,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACdA,KAAK,YAAYS,IAAI,EACvB;QACE;MACJ;MACA,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC;EACDL,OAAO,CAACG,IAAI,EAAE;IACV,MAAMb,KAAK,GAAGa,IAAI,CAACG,WAAW,CAACd,KAAK,CAAC,SAAS,CAAC;IAC/C,OAAOF,KAAK,CAACiB,MAAM,CACf,CAACC,KAAK,EAAEtB,IAAI,KAAKsB,KAAK,GAAGvB,eAAe,CAACC,IAAI,EAAEiB,IAAI,CAAChB,MAAM,EAAEgB,IAAI,CAACM,IAAI,CAACrB,SAAS,CAAC,EAChF,EAAE,CACL;EACL;AACJ,CAAC;AAAC,eAEaa,SAAS;AAAA"}
|