@intlify/core-base 9.3.0-beta.10 → 9.3.0-beta.11
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/dist/core-base.cjs +82 -82
- package/dist/core-base.d.ts +24 -24
- package/dist/core-base.esm-browser.js +233 -230
- package/dist/core-base.esm-browser.prod.js +2 -2
- package/dist/core-base.global.js +233 -230
- package/dist/core-base.global.prod.js +2 -2
- package/dist/core-base.mjs +82 -82
- package/dist/core-base.prod.cjs +71 -71
- package/package.json +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* core-base v9.3.0-beta.
|
|
2
|
+
* core-base v9.3.0-beta.11
|
|
3
3
|
* (c) 2022 kazuya kawaguchi
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -16,8 +16,11 @@ let measure;
|
|
|
16
16
|
perf.mark &&
|
|
17
17
|
perf.measure &&
|
|
18
18
|
perf.clearMarks &&
|
|
19
|
+
// @ts-ignore browser compat
|
|
19
20
|
perf.clearMeasures) {
|
|
20
|
-
mark = (tag) =>
|
|
21
|
+
mark = (tag) => {
|
|
22
|
+
perf.mark(tag);
|
|
23
|
+
};
|
|
21
24
|
measure = (name, startTag, endTag) => {
|
|
22
25
|
perf.measure(name, startTag, endTag);
|
|
23
26
|
perf.clearMarks(startTag);
|
|
@@ -76,8 +79,8 @@ const isArray = Array.isArray;
|
|
|
76
79
|
const isFunction = (val) => typeof val === 'function';
|
|
77
80
|
const isString = (val) => typeof val === 'string';
|
|
78
81
|
const isBoolean = (val) => typeof val === 'boolean';
|
|
79
|
-
|
|
80
|
-
val !== null && typeof val === 'object';
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
83
|
+
const isObject = (val) => val !== null && typeof val === 'object';
|
|
81
84
|
const objectToString = Object.prototype.toString;
|
|
82
85
|
const toTypeString = (value) => objectToString.call(value);
|
|
83
86
|
const isPlainObject = (val) => toTypeString(val) === '[object Object]';
|
|
@@ -279,11 +282,11 @@ function createTokenizer(source, options = {}) {
|
|
|
279
282
|
const _initLoc = currentPosition();
|
|
280
283
|
const _initOffset = currentOffset();
|
|
281
284
|
const _context = {
|
|
282
|
-
currentType: 14 /* EOF */,
|
|
285
|
+
currentType: 14 /* TokenTypes.EOF */,
|
|
283
286
|
offset: _initOffset,
|
|
284
287
|
startLoc: _initLoc,
|
|
285
288
|
endLoc: _initLoc,
|
|
286
|
-
lastType: 14 /* EOF */,
|
|
289
|
+
lastType: 14 /* TokenTypes.EOF */,
|
|
287
290
|
lastOffset: _initOffset,
|
|
288
291
|
lastStartLoc: _initLoc,
|
|
289
292
|
lastEndLoc: _initLoc,
|
|
@@ -318,7 +321,7 @@ function createTokenizer(source, options = {}) {
|
|
|
318
321
|
}
|
|
319
322
|
return token;
|
|
320
323
|
}
|
|
321
|
-
const getEndToken = (context) => getToken(context, 14 /* EOF */);
|
|
324
|
+
const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);
|
|
322
325
|
function eat(scnr, ch) {
|
|
323
326
|
if (scnr.currentChar() === ch) {
|
|
324
327
|
scnr.next();
|
|
@@ -361,7 +364,7 @@ function createTokenizer(source, options = {}) {
|
|
|
361
364
|
}
|
|
362
365
|
function isNamedIdentifierStart(scnr, context) {
|
|
363
366
|
const { currentType } = context;
|
|
364
|
-
if (currentType !== 2 /* BraceLeft */) {
|
|
367
|
+
if (currentType !== 2 /* TokenTypes.BraceLeft */) {
|
|
365
368
|
return false;
|
|
366
369
|
}
|
|
367
370
|
peekSpaces(scnr);
|
|
@@ -371,7 +374,7 @@ function createTokenizer(source, options = {}) {
|
|
|
371
374
|
}
|
|
372
375
|
function isListIdentifierStart(scnr, context) {
|
|
373
376
|
const { currentType } = context;
|
|
374
|
-
if (currentType !== 2 /* BraceLeft */) {
|
|
377
|
+
if (currentType !== 2 /* TokenTypes.BraceLeft */) {
|
|
375
378
|
return false;
|
|
376
379
|
}
|
|
377
380
|
peekSpaces(scnr);
|
|
@@ -382,7 +385,7 @@ function createTokenizer(source, options = {}) {
|
|
|
382
385
|
}
|
|
383
386
|
function isLiteralStart(scnr, context) {
|
|
384
387
|
const { currentType } = context;
|
|
385
|
-
if (currentType !== 2 /* BraceLeft */) {
|
|
388
|
+
if (currentType !== 2 /* TokenTypes.BraceLeft */) {
|
|
386
389
|
return false;
|
|
387
390
|
}
|
|
388
391
|
peekSpaces(scnr);
|
|
@@ -392,17 +395,17 @@ function createTokenizer(source, options = {}) {
|
|
|
392
395
|
}
|
|
393
396
|
function isLinkedDotStart(scnr, context) {
|
|
394
397
|
const { currentType } = context;
|
|
395
|
-
if (currentType !== 8 /* LinkedAlias */) {
|
|
398
|
+
if (currentType !== 8 /* TokenTypes.LinkedAlias */) {
|
|
396
399
|
return false;
|
|
397
400
|
}
|
|
398
401
|
peekSpaces(scnr);
|
|
399
|
-
const ret = scnr.currentPeek() === "." /* LinkedDot */;
|
|
402
|
+
const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */;
|
|
400
403
|
scnr.resetPeek();
|
|
401
404
|
return ret;
|
|
402
405
|
}
|
|
403
406
|
function isLinkedModifierStart(scnr, context) {
|
|
404
407
|
const { currentType } = context;
|
|
405
|
-
if (currentType !== 9 /* LinkedDot */) {
|
|
408
|
+
if (currentType !== 9 /* TokenTypes.LinkedDot */) {
|
|
406
409
|
return false;
|
|
407
410
|
}
|
|
408
411
|
peekSpaces(scnr);
|
|
@@ -412,30 +415,30 @@ function createTokenizer(source, options = {}) {
|
|
|
412
415
|
}
|
|
413
416
|
function isLinkedDelimiterStart(scnr, context) {
|
|
414
417
|
const { currentType } = context;
|
|
415
|
-
if (!(currentType === 8 /* LinkedAlias */ ||
|
|
416
|
-
currentType === 12 /* LinkedModifier */)) {
|
|
418
|
+
if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||
|
|
419
|
+
currentType === 12 /* TokenTypes.LinkedModifier */)) {
|
|
417
420
|
return false;
|
|
418
421
|
}
|
|
419
422
|
peekSpaces(scnr);
|
|
420
|
-
const ret = scnr.currentPeek() === ":" /* LinkedDelimiter */;
|
|
423
|
+
const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */;
|
|
421
424
|
scnr.resetPeek();
|
|
422
425
|
return ret;
|
|
423
426
|
}
|
|
424
427
|
function isLinkedReferStart(scnr, context) {
|
|
425
428
|
const { currentType } = context;
|
|
426
|
-
if (currentType !== 10 /* LinkedDelimiter */) {
|
|
429
|
+
if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {
|
|
427
430
|
return false;
|
|
428
431
|
}
|
|
429
432
|
const fn = () => {
|
|
430
433
|
const ch = scnr.currentPeek();
|
|
431
|
-
if (ch === "{" /* BraceLeft */) {
|
|
434
|
+
if (ch === "{" /* TokenChars.BraceLeft */) {
|
|
432
435
|
return isIdentifierStart(scnr.peek());
|
|
433
436
|
}
|
|
434
|
-
else if (ch === "@" /* LinkedAlias */ ||
|
|
435
|
-
ch === "%" /* Modulo */ ||
|
|
436
|
-
ch === "|" /* Pipe */ ||
|
|
437
|
-
ch === ":" /* LinkedDelimiter */ ||
|
|
438
|
-
ch === "." /* LinkedDot */ ||
|
|
437
|
+
else if (ch === "@" /* TokenChars.LinkedAlias */ ||
|
|
438
|
+
ch === "%" /* TokenChars.Modulo */ ||
|
|
439
|
+
ch === "|" /* TokenChars.Pipe */ ||
|
|
440
|
+
ch === ":" /* TokenChars.LinkedDelimiter */ ||
|
|
441
|
+
ch === "." /* TokenChars.LinkedDot */ ||
|
|
439
442
|
ch === CHAR_SP ||
|
|
440
443
|
!ch) {
|
|
441
444
|
return false;
|
|
@@ -455,14 +458,14 @@ function createTokenizer(source, options = {}) {
|
|
|
455
458
|
}
|
|
456
459
|
function isPluralStart(scnr) {
|
|
457
460
|
peekSpaces(scnr);
|
|
458
|
-
const ret = scnr.currentPeek() === "|" /* Pipe */;
|
|
461
|
+
const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */;
|
|
459
462
|
scnr.resetPeek();
|
|
460
463
|
return ret;
|
|
461
464
|
}
|
|
462
465
|
function detectModuloStart(scnr) {
|
|
463
466
|
const spaces = peekSpaces(scnr);
|
|
464
|
-
const ret = scnr.currentPeek() === "%" /* Modulo */ &&
|
|
465
|
-
scnr.peek() === "{" /* BraceLeft */;
|
|
467
|
+
const ret = scnr.currentPeek() === "%" /* TokenChars.Modulo */ &&
|
|
468
|
+
scnr.peek() === "{" /* TokenChars.BraceLeft */;
|
|
466
469
|
scnr.resetPeek();
|
|
467
470
|
return {
|
|
468
471
|
isModulo: ret,
|
|
@@ -472,18 +475,18 @@ function createTokenizer(source, options = {}) {
|
|
|
472
475
|
function isTextStart(scnr, reset = true) {
|
|
473
476
|
const fn = (hasSpace = false, prev = '', detectModulo = false) => {
|
|
474
477
|
const ch = scnr.currentPeek();
|
|
475
|
-
if (ch === "{" /* BraceLeft */) {
|
|
476
|
-
return prev === "%" /* Modulo */ ? false : hasSpace;
|
|
478
|
+
if (ch === "{" /* TokenChars.BraceLeft */) {
|
|
479
|
+
return prev === "%" /* TokenChars.Modulo */ ? false : hasSpace;
|
|
477
480
|
}
|
|
478
|
-
else if (ch === "@" /* LinkedAlias */ || !ch) {
|
|
479
|
-
return prev === "%" /* Modulo */ ? true : hasSpace;
|
|
481
|
+
else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) {
|
|
482
|
+
return prev === "%" /* TokenChars.Modulo */ ? true : hasSpace;
|
|
480
483
|
}
|
|
481
|
-
else if (ch === "%" /* Modulo */) {
|
|
484
|
+
else if (ch === "%" /* TokenChars.Modulo */) {
|
|
482
485
|
scnr.peek();
|
|
483
|
-
return fn(hasSpace, "%" /* Modulo */, true);
|
|
486
|
+
return fn(hasSpace, "%" /* TokenChars.Modulo */, true);
|
|
484
487
|
}
|
|
485
|
-
else if (ch === "|" /* Pipe */) {
|
|
486
|
-
return prev === "%" /* Modulo */ || detectModulo
|
|
488
|
+
else if (ch === "|" /* TokenChars.Pipe */) {
|
|
489
|
+
return prev === "%" /* TokenChars.Modulo */ || detectModulo
|
|
487
490
|
? true
|
|
488
491
|
: !(prev === CHAR_SP || prev === CHAR_LF);
|
|
489
492
|
}
|
|
@@ -553,24 +556,24 @@ function createTokenizer(source, options = {}) {
|
|
|
553
556
|
function readModulo(scnr) {
|
|
554
557
|
skipSpaces(scnr);
|
|
555
558
|
const ch = scnr.currentChar();
|
|
556
|
-
if (ch !== "%" /* Modulo */) {
|
|
559
|
+
if (ch !== "%" /* TokenChars.Modulo */) {
|
|
557
560
|
emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
|
|
558
561
|
}
|
|
559
562
|
scnr.next();
|
|
560
|
-
return "%" /* Modulo */;
|
|
563
|
+
return "%" /* TokenChars.Modulo */;
|
|
561
564
|
}
|
|
562
565
|
function readText(scnr) {
|
|
563
566
|
let buf = '';
|
|
564
567
|
while (true) {
|
|
565
568
|
const ch = scnr.currentChar();
|
|
566
|
-
if (ch === "{" /* BraceLeft */ ||
|
|
567
|
-
ch === "}" /* BraceRight */ ||
|
|
568
|
-
ch === "@" /* LinkedAlias */ ||
|
|
569
|
-
ch === "|" /* Pipe */ ||
|
|
569
|
+
if (ch === "{" /* TokenChars.BraceLeft */ ||
|
|
570
|
+
ch === "}" /* TokenChars.BraceRight */ ||
|
|
571
|
+
ch === "@" /* TokenChars.LinkedAlias */ ||
|
|
572
|
+
ch === "|" /* TokenChars.Pipe */ ||
|
|
570
573
|
!ch) {
|
|
571
574
|
break;
|
|
572
575
|
}
|
|
573
|
-
else if (ch === "%" /* Modulo */) {
|
|
576
|
+
else if (ch === "%" /* TokenChars.Modulo */) {
|
|
574
577
|
if (isTextStart(scnr)) {
|
|
575
578
|
buf += ch;
|
|
576
579
|
scnr.next();
|
|
@@ -686,8 +689,8 @@ function createTokenizer(source, options = {}) {
|
|
|
686
689
|
skipSpaces(scnr);
|
|
687
690
|
let ch = '';
|
|
688
691
|
let identifiers = '';
|
|
689
|
-
const closure = (ch) => ch !== "{" /* BraceLeft */ &&
|
|
690
|
-
ch !== "}" /* BraceRight */ &&
|
|
692
|
+
const closure = (ch) => ch !== "{" /* TokenChars.BraceLeft */ &&
|
|
693
|
+
ch !== "}" /* TokenChars.BraceRight */ &&
|
|
691
694
|
ch !== CHAR_SP &&
|
|
692
695
|
ch !== CHAR_LF;
|
|
693
696
|
while ((ch = takeChar(scnr, closure))) {
|
|
@@ -706,10 +709,10 @@ function createTokenizer(source, options = {}) {
|
|
|
706
709
|
function readLinkedRefer(scnr) {
|
|
707
710
|
const fn = (detect = false, buf) => {
|
|
708
711
|
const ch = scnr.currentChar();
|
|
709
|
-
if (ch === "{" /* BraceLeft */ ||
|
|
710
|
-
ch === "%" /* Modulo */ ||
|
|
711
|
-
ch === "@" /* LinkedAlias */ ||
|
|
712
|
-
ch === "|" /* Pipe */ ||
|
|
712
|
+
if (ch === "{" /* TokenChars.BraceLeft */ ||
|
|
713
|
+
ch === "%" /* TokenChars.Modulo */ ||
|
|
714
|
+
ch === "@" /* TokenChars.LinkedAlias */ ||
|
|
715
|
+
ch === "|" /* TokenChars.Pipe */ ||
|
|
713
716
|
!ch) {
|
|
714
717
|
return buf;
|
|
715
718
|
}
|
|
@@ -731,7 +734,7 @@ function createTokenizer(source, options = {}) {
|
|
|
731
734
|
}
|
|
732
735
|
function readPlural(scnr) {
|
|
733
736
|
skipSpaces(scnr);
|
|
734
|
-
const plural = eat(scnr, "|" /* Pipe */);
|
|
737
|
+
const plural = eat(scnr, "|" /* TokenChars.Pipe */);
|
|
735
738
|
skipSpaces(scnr);
|
|
736
739
|
return plural;
|
|
737
740
|
}
|
|
@@ -740,29 +743,29 @@ function createTokenizer(source, options = {}) {
|
|
|
740
743
|
let token = null;
|
|
741
744
|
const ch = scnr.currentChar();
|
|
742
745
|
switch (ch) {
|
|
743
|
-
case "{" /* BraceLeft */:
|
|
746
|
+
case "{" /* TokenChars.BraceLeft */:
|
|
744
747
|
if (context.braceNest >= 1) {
|
|
745
748
|
emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);
|
|
746
749
|
}
|
|
747
750
|
scnr.next();
|
|
748
|
-
token = getToken(context, 2 /* BraceLeft */, "{" /* BraceLeft */);
|
|
751
|
+
token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */);
|
|
749
752
|
skipSpaces(scnr);
|
|
750
753
|
context.braceNest++;
|
|
751
754
|
return token;
|
|
752
|
-
case "}" /* BraceRight */:
|
|
755
|
+
case "}" /* TokenChars.BraceRight */:
|
|
753
756
|
if (context.braceNest > 0 &&
|
|
754
|
-
context.currentType === 2 /* BraceLeft */) {
|
|
757
|
+
context.currentType === 2 /* TokenTypes.BraceLeft */) {
|
|
755
758
|
emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);
|
|
756
759
|
}
|
|
757
760
|
scnr.next();
|
|
758
|
-
token = getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
|
|
761
|
+
token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
|
|
759
762
|
context.braceNest--;
|
|
760
763
|
context.braceNest > 0 && skipSpaces(scnr);
|
|
761
764
|
if (context.inLinked && context.braceNest === 0) {
|
|
762
765
|
context.inLinked = false;
|
|
763
766
|
}
|
|
764
767
|
return token;
|
|
765
|
-
case "@" /* LinkedAlias */:
|
|
768
|
+
case "@" /* TokenChars.LinkedAlias */:
|
|
766
769
|
if (context.braceNest > 0) {
|
|
767
770
|
emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
|
|
768
771
|
}
|
|
@@ -777,38 +780,38 @@ function createTokenizer(source, options = {}) {
|
|
|
777
780
|
if (context.braceNest > 0) {
|
|
778
781
|
emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
|
|
779
782
|
}
|
|
780
|
-
token = getToken(context, 1 /* Pipe */, readPlural(scnr));
|
|
783
|
+
token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
|
|
781
784
|
// reset
|
|
782
785
|
context.braceNest = 0;
|
|
783
786
|
context.inLinked = false;
|
|
784
787
|
return token;
|
|
785
788
|
}
|
|
786
789
|
if (context.braceNest > 0 &&
|
|
787
|
-
(context.currentType === 5 /* Named */ ||
|
|
788
|
-
context.currentType === 6 /* List */ ||
|
|
789
|
-
context.currentType === 7 /* Literal */)) {
|
|
790
|
+
(context.currentType === 5 /* TokenTypes.Named */ ||
|
|
791
|
+
context.currentType === 6 /* TokenTypes.List */ ||
|
|
792
|
+
context.currentType === 7 /* TokenTypes.Literal */)) {
|
|
790
793
|
emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
|
|
791
794
|
context.braceNest = 0;
|
|
792
795
|
return readToken(scnr, context);
|
|
793
796
|
}
|
|
794
797
|
if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {
|
|
795
|
-
token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));
|
|
798
|
+
token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));
|
|
796
799
|
skipSpaces(scnr);
|
|
797
800
|
return token;
|
|
798
801
|
}
|
|
799
802
|
if ((validListIdentifier = isListIdentifierStart(scnr, context))) {
|
|
800
|
-
token = getToken(context, 6 /* List */, readListIdentifier(scnr));
|
|
803
|
+
token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));
|
|
801
804
|
skipSpaces(scnr);
|
|
802
805
|
return token;
|
|
803
806
|
}
|
|
804
807
|
if ((validLiteral = isLiteralStart(scnr, context))) {
|
|
805
|
-
token = getToken(context, 7 /* Literal */, readLiteral(scnr));
|
|
808
|
+
token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));
|
|
806
809
|
skipSpaces(scnr);
|
|
807
810
|
return token;
|
|
808
811
|
}
|
|
809
812
|
if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {
|
|
810
813
|
// TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...
|
|
811
|
-
token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));
|
|
814
|
+
token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));
|
|
812
815
|
emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);
|
|
813
816
|
skipSpaces(scnr);
|
|
814
817
|
return token;
|
|
@@ -822,30 +825,30 @@ function createTokenizer(source, options = {}) {
|
|
|
822
825
|
const { currentType } = context;
|
|
823
826
|
let token = null;
|
|
824
827
|
const ch = scnr.currentChar();
|
|
825
|
-
if ((currentType === 8 /* LinkedAlias */ ||
|
|
826
|
-
currentType === 9 /* LinkedDot */ ||
|
|
827
|
-
currentType === 12 /* LinkedModifier */ ||
|
|
828
|
-
currentType === 10 /* LinkedDelimiter */) &&
|
|
828
|
+
if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||
|
|
829
|
+
currentType === 9 /* TokenTypes.LinkedDot */ ||
|
|
830
|
+
currentType === 12 /* TokenTypes.LinkedModifier */ ||
|
|
831
|
+
currentType === 10 /* TokenTypes.LinkedDelimiter */) &&
|
|
829
832
|
(ch === CHAR_LF || ch === CHAR_SP)) {
|
|
830
833
|
emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
|
|
831
834
|
}
|
|
832
835
|
switch (ch) {
|
|
833
|
-
case "@" /* LinkedAlias */:
|
|
836
|
+
case "@" /* TokenChars.LinkedAlias */:
|
|
834
837
|
scnr.next();
|
|
835
|
-
token = getToken(context, 8 /* LinkedAlias */, "@" /* LinkedAlias */);
|
|
838
|
+
token = getToken(context, 8 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */);
|
|
836
839
|
context.inLinked = true;
|
|
837
840
|
return token;
|
|
838
|
-
case "." /* LinkedDot */:
|
|
841
|
+
case "." /* TokenChars.LinkedDot */:
|
|
839
842
|
skipSpaces(scnr);
|
|
840
843
|
scnr.next();
|
|
841
|
-
return getToken(context, 9 /* LinkedDot */, "." /* LinkedDot */);
|
|
842
|
-
case ":" /* LinkedDelimiter */:
|
|
844
|
+
return getToken(context, 9 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */);
|
|
845
|
+
case ":" /* TokenChars.LinkedDelimiter */:
|
|
843
846
|
skipSpaces(scnr);
|
|
844
847
|
scnr.next();
|
|
845
|
-
return getToken(context, 10 /* LinkedDelimiter */, ":" /* LinkedDelimiter */);
|
|
848
|
+
return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */);
|
|
846
849
|
default:
|
|
847
850
|
if (isPluralStart(scnr)) {
|
|
848
|
-
token = getToken(context, 1 /* Pipe */, readPlural(scnr));
|
|
851
|
+
token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
|
|
849
852
|
// reset
|
|
850
853
|
context.braceNest = 0;
|
|
851
854
|
context.inLinked = false;
|
|
@@ -858,19 +861,19 @@ function createTokenizer(source, options = {}) {
|
|
|
858
861
|
}
|
|
859
862
|
if (isLinkedModifierStart(scnr, context)) {
|
|
860
863
|
skipSpaces(scnr);
|
|
861
|
-
return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));
|
|
864
|
+
return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));
|
|
862
865
|
}
|
|
863
866
|
if (isLinkedReferStart(scnr, context)) {
|
|
864
867
|
skipSpaces(scnr);
|
|
865
|
-
if (ch === "{" /* BraceLeft */) {
|
|
868
|
+
if (ch === "{" /* TokenChars.BraceLeft */) {
|
|
866
869
|
// scan the placeholder
|
|
867
870
|
return readTokenInPlaceholder(scnr, context) || token;
|
|
868
871
|
}
|
|
869
872
|
else {
|
|
870
|
-
return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));
|
|
873
|
+
return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));
|
|
871
874
|
}
|
|
872
875
|
}
|
|
873
|
-
if (currentType === 8 /* LinkedAlias */) {
|
|
876
|
+
if (currentType === 8 /* TokenTypes.LinkedAlias */) {
|
|
874
877
|
emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
|
|
875
878
|
}
|
|
876
879
|
context.braceNest = 0;
|
|
@@ -880,7 +883,7 @@ function createTokenizer(source, options = {}) {
|
|
|
880
883
|
}
|
|
881
884
|
// TODO: We need refactoring of token parsing ...
|
|
882
885
|
function readToken(scnr, context) {
|
|
883
|
-
let token = { type: 14 /* EOF */ };
|
|
886
|
+
let token = { type: 14 /* TokenTypes.EOF */ };
|
|
884
887
|
if (context.braceNest > 0) {
|
|
885
888
|
return readTokenInPlaceholder(scnr, context) || getEndToken(context);
|
|
886
889
|
}
|
|
@@ -889,17 +892,17 @@ function createTokenizer(source, options = {}) {
|
|
|
889
892
|
}
|
|
890
893
|
const ch = scnr.currentChar();
|
|
891
894
|
switch (ch) {
|
|
892
|
-
case "{" /* BraceLeft */:
|
|
895
|
+
case "{" /* TokenChars.BraceLeft */:
|
|
893
896
|
return readTokenInPlaceholder(scnr, context) || getEndToken(context);
|
|
894
|
-
case "}" /* BraceRight */:
|
|
897
|
+
case "}" /* TokenChars.BraceRight */:
|
|
895
898
|
emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);
|
|
896
899
|
scnr.next();
|
|
897
|
-
return getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
|
|
898
|
-
case "@" /* LinkedAlias */:
|
|
900
|
+
return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
|
|
901
|
+
case "@" /* TokenChars.LinkedAlias */:
|
|
899
902
|
return readTokenInLinked(scnr, context) || getEndToken(context);
|
|
900
903
|
default:
|
|
901
904
|
if (isPluralStart(scnr)) {
|
|
902
|
-
token = getToken(context, 1 /* Pipe */, readPlural(scnr));
|
|
905
|
+
token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
|
|
903
906
|
// reset
|
|
904
907
|
context.braceNest = 0;
|
|
905
908
|
context.inLinked = false;
|
|
@@ -908,11 +911,11 @@ function createTokenizer(source, options = {}) {
|
|
|
908
911
|
const { isModulo, hasSpace } = detectModuloStart(scnr);
|
|
909
912
|
if (isModulo) {
|
|
910
913
|
return hasSpace
|
|
911
|
-
? getToken(context, 0 /* Text */, readText(scnr))
|
|
912
|
-
: getToken(context, 4 /* Modulo */, readModulo(scnr));
|
|
914
|
+
? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))
|
|
915
|
+
: getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));
|
|
913
916
|
}
|
|
914
917
|
if (isTextStart(scnr)) {
|
|
915
|
-
return getToken(context, 0 /* Text */, readText(scnr));
|
|
918
|
+
return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));
|
|
916
919
|
}
|
|
917
920
|
break;
|
|
918
921
|
}
|
|
@@ -927,7 +930,7 @@ function createTokenizer(source, options = {}) {
|
|
|
927
930
|
_context.offset = currentOffset();
|
|
928
931
|
_context.startLoc = currentPosition();
|
|
929
932
|
if (_scnr.currentChar() === EOF) {
|
|
930
|
-
return getToken(_context, 14 /* EOF */);
|
|
933
|
+
return getToken(_context, 14 /* TokenTypes.EOF */);
|
|
931
934
|
}
|
|
932
935
|
return readToken(_scnr, _context);
|
|
933
936
|
}
|
|
@@ -997,7 +1000,7 @@ function createParser(options = {}) {
|
|
|
997
1000
|
}
|
|
998
1001
|
function parseText(tokenizer, value) {
|
|
999
1002
|
const context = tokenizer.context();
|
|
1000
|
-
const node = startNode(3 /* Text */, context.offset, context.startLoc);
|
|
1003
|
+
const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);
|
|
1001
1004
|
node.value = value;
|
|
1002
1005
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
1003
1006
|
return node;
|
|
@@ -1005,7 +1008,7 @@ function createParser(options = {}) {
|
|
|
1005
1008
|
function parseList(tokenizer, index) {
|
|
1006
1009
|
const context = tokenizer.context();
|
|
1007
1010
|
const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
|
|
1008
|
-
const node = startNode(5 /* List */, offset, loc);
|
|
1011
|
+
const node = startNode(5 /* NodeTypes.List */, offset, loc);
|
|
1009
1012
|
node.index = parseInt(index, 10);
|
|
1010
1013
|
tokenizer.nextToken(); // skip brach right
|
|
1011
1014
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
@@ -1014,7 +1017,7 @@ function createParser(options = {}) {
|
|
|
1014
1017
|
function parseNamed(tokenizer, key) {
|
|
1015
1018
|
const context = tokenizer.context();
|
|
1016
1019
|
const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
|
|
1017
|
-
const node = startNode(4 /* Named */, offset, loc);
|
|
1020
|
+
const node = startNode(4 /* NodeTypes.Named */, offset, loc);
|
|
1018
1021
|
node.key = key;
|
|
1019
1022
|
tokenizer.nextToken(); // skip brach right
|
|
1020
1023
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
@@ -1023,7 +1026,7 @@ function createParser(options = {}) {
|
|
|
1023
1026
|
function parseLiteral(tokenizer, value) {
|
|
1024
1027
|
const context = tokenizer.context();
|
|
1025
1028
|
const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
|
|
1026
|
-
const node = startNode(9 /* Literal */, offset, loc);
|
|
1029
|
+
const node = startNode(9 /* NodeTypes.Literal */, offset, loc);
|
|
1027
1030
|
node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);
|
|
1028
1031
|
tokenizer.nextToken(); // skip brach right
|
|
1029
1032
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
@@ -1033,8 +1036,8 @@ function createParser(options = {}) {
|
|
|
1033
1036
|
const token = tokenizer.nextToken();
|
|
1034
1037
|
const context = tokenizer.context();
|
|
1035
1038
|
const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc
|
|
1036
|
-
const node = startNode(8 /* LinkedModifier */, offset, loc);
|
|
1037
|
-
if (token.type !== 12 /* LinkedModifier */) {
|
|
1039
|
+
const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);
|
|
1040
|
+
if (token.type !== 12 /* TokenTypes.LinkedModifier */) {
|
|
1038
1041
|
// empty modifier
|
|
1039
1042
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);
|
|
1040
1043
|
node.value = '';
|
|
@@ -1056,49 +1059,49 @@ function createParser(options = {}) {
|
|
|
1056
1059
|
}
|
|
1057
1060
|
function parseLinkedKey(tokenizer, value) {
|
|
1058
1061
|
const context = tokenizer.context();
|
|
1059
|
-
const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);
|
|
1062
|
+
const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);
|
|
1060
1063
|
node.value = value;
|
|
1061
1064
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
1062
1065
|
return node;
|
|
1063
1066
|
}
|
|
1064
1067
|
function parseLinked(tokenizer) {
|
|
1065
1068
|
const context = tokenizer.context();
|
|
1066
|
-
const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);
|
|
1069
|
+
const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);
|
|
1067
1070
|
let token = tokenizer.nextToken();
|
|
1068
|
-
if (token.type === 9 /* LinkedDot */) {
|
|
1071
|
+
if (token.type === 9 /* TokenTypes.LinkedDot */) {
|
|
1069
1072
|
const parsed = parseLinkedModifier(tokenizer);
|
|
1070
1073
|
linkedNode.modifier = parsed.node;
|
|
1071
1074
|
token = parsed.nextConsumeToken || tokenizer.nextToken();
|
|
1072
1075
|
}
|
|
1073
1076
|
// asset check token
|
|
1074
|
-
if (token.type !== 10 /* LinkedDelimiter */) {
|
|
1077
|
+
if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {
|
|
1075
1078
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1076
1079
|
}
|
|
1077
1080
|
token = tokenizer.nextToken();
|
|
1078
1081
|
// skip brace left
|
|
1079
|
-
if (token.type === 2 /* BraceLeft */) {
|
|
1082
|
+
if (token.type === 2 /* TokenTypes.BraceLeft */) {
|
|
1080
1083
|
token = tokenizer.nextToken();
|
|
1081
1084
|
}
|
|
1082
1085
|
switch (token.type) {
|
|
1083
|
-
case 11 /* LinkedKey */:
|
|
1086
|
+
case 11 /* TokenTypes.LinkedKey */:
|
|
1084
1087
|
if (token.value == null) {
|
|
1085
1088
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1086
1089
|
}
|
|
1087
1090
|
linkedNode.key = parseLinkedKey(tokenizer, token.value || '');
|
|
1088
1091
|
break;
|
|
1089
|
-
case 5 /* Named */:
|
|
1092
|
+
case 5 /* TokenTypes.Named */:
|
|
1090
1093
|
if (token.value == null) {
|
|
1091
1094
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1092
1095
|
}
|
|
1093
1096
|
linkedNode.key = parseNamed(tokenizer, token.value || '');
|
|
1094
1097
|
break;
|
|
1095
|
-
case 6 /* List */:
|
|
1098
|
+
case 6 /* TokenTypes.List */:
|
|
1096
1099
|
if (token.value == null) {
|
|
1097
1100
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1098
1101
|
}
|
|
1099
1102
|
linkedNode.key = parseList(tokenizer, token.value || '');
|
|
1100
1103
|
break;
|
|
1101
|
-
case 7 /* Literal */:
|
|
1104
|
+
case 7 /* TokenTypes.Literal */:
|
|
1102
1105
|
if (token.value == null) {
|
|
1103
1106
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1104
1107
|
}
|
|
@@ -1108,7 +1111,7 @@ function createParser(options = {}) {
|
|
|
1108
1111
|
// empty key
|
|
1109
1112
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);
|
|
1110
1113
|
const nextContext = tokenizer.context();
|
|
1111
|
-
const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);
|
|
1114
|
+
const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);
|
|
1112
1115
|
emptyLinkedKeyNode.value = '';
|
|
1113
1116
|
endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);
|
|
1114
1117
|
linkedNode.key = emptyLinkedKeyNode;
|
|
@@ -1125,56 +1128,56 @@ function createParser(options = {}) {
|
|
|
1125
1128
|
}
|
|
1126
1129
|
function parseMessage(tokenizer) {
|
|
1127
1130
|
const context = tokenizer.context();
|
|
1128
|
-
const startOffset = context.currentType === 1 /* Pipe */
|
|
1131
|
+
const startOffset = context.currentType === 1 /* TokenTypes.Pipe */
|
|
1129
1132
|
? tokenizer.currentOffset()
|
|
1130
1133
|
: context.offset;
|
|
1131
|
-
const startLoc = context.currentType === 1 /* Pipe */
|
|
1134
|
+
const startLoc = context.currentType === 1 /* TokenTypes.Pipe */
|
|
1132
1135
|
? context.endLoc
|
|
1133
1136
|
: context.startLoc;
|
|
1134
|
-
const node = startNode(2 /* Message */, startOffset, startLoc);
|
|
1137
|
+
const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);
|
|
1135
1138
|
node.items = [];
|
|
1136
1139
|
let nextToken = null;
|
|
1137
1140
|
do {
|
|
1138
1141
|
const token = nextToken || tokenizer.nextToken();
|
|
1139
1142
|
nextToken = null;
|
|
1140
1143
|
switch (token.type) {
|
|
1141
|
-
case 0 /* Text */:
|
|
1144
|
+
case 0 /* TokenTypes.Text */:
|
|
1142
1145
|
if (token.value == null) {
|
|
1143
1146
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1144
1147
|
}
|
|
1145
1148
|
node.items.push(parseText(tokenizer, token.value || ''));
|
|
1146
1149
|
break;
|
|
1147
|
-
case 6 /* List */:
|
|
1150
|
+
case 6 /* TokenTypes.List */:
|
|
1148
1151
|
if (token.value == null) {
|
|
1149
1152
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1150
1153
|
}
|
|
1151
1154
|
node.items.push(parseList(tokenizer, token.value || ''));
|
|
1152
1155
|
break;
|
|
1153
|
-
case 5 /* Named */:
|
|
1156
|
+
case 5 /* TokenTypes.Named */:
|
|
1154
1157
|
if (token.value == null) {
|
|
1155
1158
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1156
1159
|
}
|
|
1157
1160
|
node.items.push(parseNamed(tokenizer, token.value || ''));
|
|
1158
1161
|
break;
|
|
1159
|
-
case 7 /* Literal */:
|
|
1162
|
+
case 7 /* TokenTypes.Literal */:
|
|
1160
1163
|
if (token.value == null) {
|
|
1161
1164
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
|
|
1162
1165
|
}
|
|
1163
1166
|
node.items.push(parseLiteral(tokenizer, token.value || ''));
|
|
1164
1167
|
break;
|
|
1165
|
-
case 8 /* LinkedAlias */:
|
|
1168
|
+
case 8 /* TokenTypes.LinkedAlias */:
|
|
1166
1169
|
const parsed = parseLinked(tokenizer);
|
|
1167
1170
|
node.items.push(parsed.node);
|
|
1168
1171
|
nextToken = parsed.nextConsumeToken || null;
|
|
1169
1172
|
break;
|
|
1170
1173
|
}
|
|
1171
|
-
} while (context.currentType !== 14 /* EOF */ &&
|
|
1172
|
-
context.currentType !== 1 /* Pipe */);
|
|
1174
|
+
} while (context.currentType !== 14 /* TokenTypes.EOF */ &&
|
|
1175
|
+
context.currentType !== 1 /* TokenTypes.Pipe */);
|
|
1173
1176
|
// adjust message node loc
|
|
1174
|
-
const endOffset = context.currentType === 1 /* Pipe */
|
|
1177
|
+
const endOffset = context.currentType === 1 /* TokenTypes.Pipe */
|
|
1175
1178
|
? context.lastOffset
|
|
1176
1179
|
: tokenizer.currentOffset();
|
|
1177
|
-
const endLoc = context.currentType === 1 /* Pipe */
|
|
1180
|
+
const endLoc = context.currentType === 1 /* TokenTypes.Pipe */
|
|
1178
1181
|
? context.lastEndLoc
|
|
1179
1182
|
: tokenizer.currentPosition();
|
|
1180
1183
|
endNode(node, endOffset, endLoc);
|
|
@@ -1183,7 +1186,7 @@ function createParser(options = {}) {
|
|
|
1183
1186
|
function parsePlural(tokenizer, offset, loc, msgNode) {
|
|
1184
1187
|
const context = tokenizer.context();
|
|
1185
1188
|
let hasEmptyMessage = msgNode.items.length === 0;
|
|
1186
|
-
const node = startNode(1 /* Plural */, offset, loc);
|
|
1189
|
+
const node = startNode(1 /* NodeTypes.Plural */, offset, loc);
|
|
1187
1190
|
node.cases = [];
|
|
1188
1191
|
node.cases.push(msgNode);
|
|
1189
1192
|
do {
|
|
@@ -1192,7 +1195,7 @@ function createParser(options = {}) {
|
|
|
1192
1195
|
hasEmptyMessage = msg.items.length === 0;
|
|
1193
1196
|
}
|
|
1194
1197
|
node.cases.push(msg);
|
|
1195
|
-
} while (context.currentType !== 14 /* EOF */);
|
|
1198
|
+
} while (context.currentType !== 14 /* TokenTypes.EOF */);
|
|
1196
1199
|
if (hasEmptyMessage) {
|
|
1197
1200
|
emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);
|
|
1198
1201
|
}
|
|
@@ -1203,7 +1206,7 @@ function createParser(options = {}) {
|
|
|
1203
1206
|
const context = tokenizer.context();
|
|
1204
1207
|
const { offset, startLoc } = context;
|
|
1205
1208
|
const msgNode = parseMessage(tokenizer);
|
|
1206
|
-
if (context.currentType === 14 /* EOF */) {
|
|
1209
|
+
if (context.currentType === 14 /* TokenTypes.EOF */) {
|
|
1207
1210
|
return msgNode;
|
|
1208
1211
|
}
|
|
1209
1212
|
else {
|
|
@@ -1213,13 +1216,13 @@ function createParser(options = {}) {
|
|
|
1213
1216
|
function parse(source) {
|
|
1214
1217
|
const tokenizer = createTokenizer(source, assign({}, options));
|
|
1215
1218
|
const context = tokenizer.context();
|
|
1216
|
-
const node = startNode(0 /* Resource */, context.offset, context.startLoc);
|
|
1219
|
+
const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);
|
|
1217
1220
|
if (location && node.loc) {
|
|
1218
1221
|
node.loc.source = source;
|
|
1219
1222
|
}
|
|
1220
1223
|
node.body = parseResource(tokenizer);
|
|
1221
1224
|
// assert whether achieved to EOF
|
|
1222
|
-
if (context.currentType !== 14 /* EOF */) {
|
|
1225
|
+
if (context.currentType !== 14 /* TokenTypes.EOF */) {
|
|
1223
1226
|
emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');
|
|
1224
1227
|
}
|
|
1225
1228
|
endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
|
|
@@ -1228,7 +1231,7 @@ function createParser(options = {}) {
|
|
|
1228
1231
|
return { parse };
|
|
1229
1232
|
}
|
|
1230
1233
|
function getTokenCaption(token) {
|
|
1231
|
-
if (token.type === 14 /* EOF */) {
|
|
1234
|
+
if (token.type === 14 /* TokenTypes.EOF */) {
|
|
1232
1235
|
return 'EOF';
|
|
1233
1236
|
}
|
|
1234
1237
|
const name = (token.value || '').replace(/\r?\n/gu, '\\n');
|
|
@@ -1256,26 +1259,26 @@ function traverseNodes(nodes, transformer) {
|
|
|
1256
1259
|
function traverseNode(node, transformer) {
|
|
1257
1260
|
// TODO: if we need pre-hook of transform, should be implemented to here
|
|
1258
1261
|
switch (node.type) {
|
|
1259
|
-
case 1 /* Plural */:
|
|
1262
|
+
case 1 /* NodeTypes.Plural */:
|
|
1260
1263
|
traverseNodes(node.cases, transformer);
|
|
1261
|
-
transformer.helper("plural" /* PLURAL */);
|
|
1264
|
+
transformer.helper("plural" /* HelperNameMap.PLURAL */);
|
|
1262
1265
|
break;
|
|
1263
|
-
case 2 /* Message */:
|
|
1266
|
+
case 2 /* NodeTypes.Message */:
|
|
1264
1267
|
traverseNodes(node.items, transformer);
|
|
1265
1268
|
break;
|
|
1266
|
-
case 6 /* Linked */:
|
|
1269
|
+
case 6 /* NodeTypes.Linked */:
|
|
1267
1270
|
const linked = node;
|
|
1268
1271
|
traverseNode(linked.key, transformer);
|
|
1269
|
-
transformer.helper("linked" /* LINKED */);
|
|
1270
|
-
transformer.helper("type" /* TYPE */);
|
|
1272
|
+
transformer.helper("linked" /* HelperNameMap.LINKED */);
|
|
1273
|
+
transformer.helper("type" /* HelperNameMap.TYPE */);
|
|
1271
1274
|
break;
|
|
1272
|
-
case 5 /* List */:
|
|
1273
|
-
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
1274
|
-
transformer.helper("list" /* LIST */);
|
|
1275
|
+
case 5 /* NodeTypes.List */:
|
|
1276
|
+
transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
|
|
1277
|
+
transformer.helper("list" /* HelperNameMap.LIST */);
|
|
1275
1278
|
break;
|
|
1276
|
-
case 4 /* Named */:
|
|
1277
|
-
transformer.helper("interpolate" /* INTERPOLATE */);
|
|
1278
|
-
transformer.helper("named" /* NAMED */);
|
|
1279
|
+
case 4 /* NodeTypes.Named */:
|
|
1280
|
+
transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
|
|
1281
|
+
transformer.helper("named" /* HelperNameMap.NAMED */);
|
|
1279
1282
|
break;
|
|
1280
1283
|
}
|
|
1281
1284
|
// TODO: if we need post-hook of transform, should be implemented to here
|
|
@@ -1284,7 +1287,7 @@ function traverseNode(node, transformer) {
|
|
|
1284
1287
|
function transform(ast, options = {} // eslint-disable-line
|
|
1285
1288
|
) {
|
|
1286
1289
|
const transformer = createTransformer(ast);
|
|
1287
|
-
transformer.helper("normalize" /* NORMALIZE */);
|
|
1290
|
+
transformer.helper("normalize" /* HelperNameMap.NORMALIZE */);
|
|
1288
1291
|
// traverse
|
|
1289
1292
|
ast.body && traverseNode(ast.body, transformer);
|
|
1290
1293
|
// set meta information
|
|
@@ -1339,7 +1342,7 @@ function createCodeGenerator(ast, options) {
|
|
|
1339
1342
|
}
|
|
1340
1343
|
function generateLinkedNode(generator, node) {
|
|
1341
1344
|
const { helper } = generator;
|
|
1342
|
-
generator.push(`${helper("linked" /* LINKED */)}(`);
|
|
1345
|
+
generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`);
|
|
1343
1346
|
generateNode(generator, node.key);
|
|
1344
1347
|
if (node.modifier) {
|
|
1345
1348
|
generator.push(`, `);
|
|
@@ -1353,7 +1356,7 @@ function generateLinkedNode(generator, node) {
|
|
|
1353
1356
|
}
|
|
1354
1357
|
function generateMessageNode(generator, node) {
|
|
1355
1358
|
const { helper, needIndent } = generator;
|
|
1356
|
-
generator.push(`${helper("normalize" /* NORMALIZE */)}([`);
|
|
1359
|
+
generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`);
|
|
1357
1360
|
generator.indent(needIndent());
|
|
1358
1361
|
const length = node.items.length;
|
|
1359
1362
|
for (let i = 0; i < length; i++) {
|
|
@@ -1369,7 +1372,7 @@ function generateMessageNode(generator, node) {
|
|
|
1369
1372
|
function generatePluralNode(generator, node) {
|
|
1370
1373
|
const { helper, needIndent } = generator;
|
|
1371
1374
|
if (node.cases.length > 1) {
|
|
1372
|
-
generator.push(`${helper("plural" /* PLURAL */)}([`);
|
|
1375
|
+
generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`);
|
|
1373
1376
|
generator.indent(needIndent());
|
|
1374
1377
|
const length = node.cases.length;
|
|
1375
1378
|
for (let i = 0; i < length; i++) {
|
|
@@ -1394,34 +1397,34 @@ function generateResource(generator, node) {
|
|
|
1394
1397
|
function generateNode(generator, node) {
|
|
1395
1398
|
const { helper } = generator;
|
|
1396
1399
|
switch (node.type) {
|
|
1397
|
-
case 0 /* Resource */:
|
|
1400
|
+
case 0 /* NodeTypes.Resource */:
|
|
1398
1401
|
generateResource(generator, node);
|
|
1399
1402
|
break;
|
|
1400
|
-
case 1 /* Plural */:
|
|
1403
|
+
case 1 /* NodeTypes.Plural */:
|
|
1401
1404
|
generatePluralNode(generator, node);
|
|
1402
1405
|
break;
|
|
1403
|
-
case 2 /* Message */:
|
|
1406
|
+
case 2 /* NodeTypes.Message */:
|
|
1404
1407
|
generateMessageNode(generator, node);
|
|
1405
1408
|
break;
|
|
1406
|
-
case 6 /* Linked */:
|
|
1409
|
+
case 6 /* NodeTypes.Linked */:
|
|
1407
1410
|
generateLinkedNode(generator, node);
|
|
1408
1411
|
break;
|
|
1409
|
-
case 8 /* LinkedModifier */:
|
|
1412
|
+
case 8 /* NodeTypes.LinkedModifier */:
|
|
1410
1413
|
generator.push(JSON.stringify(node.value), node);
|
|
1411
1414
|
break;
|
|
1412
|
-
case 7 /* LinkedKey */:
|
|
1415
|
+
case 7 /* NodeTypes.LinkedKey */:
|
|
1413
1416
|
generator.push(JSON.stringify(node.value), node);
|
|
1414
1417
|
break;
|
|
1415
|
-
case 5 /* List */:
|
|
1416
|
-
generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("list" /* LIST */)}(${node.index}))`, node);
|
|
1418
|
+
case 5 /* NodeTypes.List */:
|
|
1419
|
+
generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node);
|
|
1417
1420
|
break;
|
|
1418
|
-
case 4 /* Named */:
|
|
1419
|
-
generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("named" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);
|
|
1421
|
+
case 4 /* NodeTypes.Named */:
|
|
1422
|
+
generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);
|
|
1420
1423
|
break;
|
|
1421
|
-
case 9 /* Literal */:
|
|
1424
|
+
case 9 /* NodeTypes.Literal */:
|
|
1422
1425
|
generator.push(JSON.stringify(node.value), node);
|
|
1423
1426
|
break;
|
|
1424
|
-
case 3 /* Text */:
|
|
1427
|
+
case 3 /* NodeTypes.Text */:
|
|
1425
1428
|
generator.push(JSON.stringify(node.value), node);
|
|
1426
1429
|
break;
|
|
1427
1430
|
default:
|
|
@@ -1483,51 +1486,51 @@ function baseCompile(source, options = {}) {
|
|
|
1483
1486
|
}
|
|
1484
1487
|
|
|
1485
1488
|
const pathStateMachine = [];
|
|
1486
|
-
pathStateMachine[0 /* BEFORE_PATH */] = {
|
|
1487
|
-
["w" /* WORKSPACE */]: [0 /* BEFORE_PATH */],
|
|
1488
|
-
["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
|
|
1489
|
-
["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],
|
|
1490
|
-
["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]
|
|
1489
|
+
pathStateMachine[0 /* States.BEFORE_PATH */] = {
|
|
1490
|
+
["w" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],
|
|
1491
|
+
["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
|
|
1492
|
+
["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],
|
|
1493
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]
|
|
1491
1494
|
};
|
|
1492
|
-
pathStateMachine[1 /* IN_PATH */] = {
|
|
1493
|
-
["w" /* WORKSPACE */]: [1 /* IN_PATH */],
|
|
1494
|
-
["." /* DOT */]: [2 /* BEFORE_IDENT */],
|
|
1495
|
-
["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],
|
|
1496
|
-
["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]
|
|
1495
|
+
pathStateMachine[1 /* States.IN_PATH */] = {
|
|
1496
|
+
["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],
|
|
1497
|
+
["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],
|
|
1498
|
+
["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],
|
|
1499
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]
|
|
1497
1500
|
};
|
|
1498
|
-
pathStateMachine[2 /* BEFORE_IDENT */] = {
|
|
1499
|
-
["w" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],
|
|
1500
|
-
["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
|
|
1501
|
-
["0" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]
|
|
1501
|
+
pathStateMachine[2 /* States.BEFORE_IDENT */] = {
|
|
1502
|
+
["w" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],
|
|
1503
|
+
["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
|
|
1504
|
+
["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]
|
|
1502
1505
|
};
|
|
1503
|
-
pathStateMachine[3 /* IN_IDENT */] = {
|
|
1504
|
-
["i" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],
|
|
1505
|
-
["0" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],
|
|
1506
|
-
["w" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],
|
|
1507
|
-
["." /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],
|
|
1508
|
-
["[" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],
|
|
1509
|
-
["o" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]
|
|
1506
|
+
pathStateMachine[3 /* States.IN_IDENT */] = {
|
|
1507
|
+
["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
|
|
1508
|
+
["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],
|
|
1509
|
+
["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],
|
|
1510
|
+
["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],
|
|
1511
|
+
["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],
|
|
1512
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]
|
|
1510
1513
|
};
|
|
1511
|
-
pathStateMachine[4 /* IN_SUB_PATH */] = {
|
|
1512
|
-
["'" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],
|
|
1513
|
-
["\"" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],
|
|
1514
|
-
["[" /* LEFT_BRACKET */]: [
|
|
1515
|
-
4 /* IN_SUB_PATH */,
|
|
1516
|
-
2 /* INC_SUB_PATH_DEPTH */
|
|
1514
|
+
pathStateMachine[4 /* States.IN_SUB_PATH */] = {
|
|
1515
|
+
["'" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],
|
|
1516
|
+
["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],
|
|
1517
|
+
["[" /* PathCharTypes.LEFT_BRACKET */]: [
|
|
1518
|
+
4 /* States.IN_SUB_PATH */,
|
|
1519
|
+
2 /* Actions.INC_SUB_PATH_DEPTH */
|
|
1517
1520
|
],
|
|
1518
|
-
["]" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],
|
|
1519
|
-
["o" /* END_OF_FAIL */]: 8 /* ERROR */,
|
|
1520
|
-
["l" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]
|
|
1521
|
+
["]" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],
|
|
1522
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
|
|
1523
|
+
["l" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]
|
|
1521
1524
|
};
|
|
1522
|
-
pathStateMachine[5 /* IN_SINGLE_QUOTE */] = {
|
|
1523
|
-
["'" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],
|
|
1524
|
-
["o" /* END_OF_FAIL */]: 8 /* ERROR */,
|
|
1525
|
-
["l" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]
|
|
1525
|
+
pathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {
|
|
1526
|
+
["'" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],
|
|
1527
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
|
|
1528
|
+
["l" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]
|
|
1526
1529
|
};
|
|
1527
|
-
pathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {
|
|
1528
|
-
["\"" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],
|
|
1529
|
-
["o" /* END_OF_FAIL */]: 8 /* ERROR */,
|
|
1530
|
-
["l" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]
|
|
1530
|
+
pathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {
|
|
1531
|
+
["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],
|
|
1532
|
+
["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,
|
|
1533
|
+
["l" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]
|
|
1531
1534
|
};
|
|
1532
1535
|
/**
|
|
1533
1536
|
* Check if an expression is a literal value.
|
|
@@ -1549,7 +1552,7 @@ function stripQuotes(str) {
|
|
|
1549
1552
|
*/
|
|
1550
1553
|
function getPathCharType(ch) {
|
|
1551
1554
|
if (ch === undefined || ch === null) {
|
|
1552
|
-
return "o" /* END_OF_FAIL */;
|
|
1555
|
+
return "o" /* PathCharTypes.END_OF_FAIL */;
|
|
1553
1556
|
}
|
|
1554
1557
|
const code = ch.charCodeAt(0);
|
|
1555
1558
|
switch (code) {
|
|
@@ -1562,7 +1565,7 @@ function getPathCharType(ch) {
|
|
|
1562
1565
|
case 0x5f: // _
|
|
1563
1566
|
case 0x24: // $
|
|
1564
1567
|
case 0x2d: // -
|
|
1565
|
-
return "i" /* IDENT */;
|
|
1568
|
+
return "i" /* PathCharTypes.IDENT */;
|
|
1566
1569
|
case 0x09: // Tab (HT)
|
|
1567
1570
|
case 0x0a: // Newline (LF)
|
|
1568
1571
|
case 0x0d: // Return (CR)
|
|
@@ -1570,9 +1573,9 @@ function getPathCharType(ch) {
|
|
|
1570
1573
|
case 0xfeff: // Byte Order Mark (BOM)
|
|
1571
1574
|
case 0x2028: // Line Separator (LS)
|
|
1572
1575
|
case 0x2029: // Paragraph Separator (PS)
|
|
1573
|
-
return "w" /* WORKSPACE */;
|
|
1576
|
+
return "w" /* PathCharTypes.WORKSPACE */;
|
|
1574
1577
|
}
|
|
1575
|
-
return "i" /* IDENT */;
|
|
1578
|
+
return "i" /* PathCharTypes.IDENT */;
|
|
1576
1579
|
}
|
|
1577
1580
|
/**
|
|
1578
1581
|
* Format a subPath, return its plain form if it is
|
|
@@ -1587,7 +1590,7 @@ function formatSubPath(path) {
|
|
|
1587
1590
|
}
|
|
1588
1591
|
return isLiteral(trimmed)
|
|
1589
1592
|
? stripQuotes(trimmed)
|
|
1590
|
-
: "*" /* ASTARISK */ + trimmed;
|
|
1593
|
+
: "*" /* PathCharTypes.ASTARISK */ + trimmed;
|
|
1591
1594
|
}
|
|
1592
1595
|
/**
|
|
1593
1596
|
* Parse a string path into an array of segments
|
|
@@ -1595,7 +1598,7 @@ function formatSubPath(path) {
|
|
|
1595
1598
|
function parse(path) {
|
|
1596
1599
|
const keys = [];
|
|
1597
1600
|
let index = -1;
|
|
1598
|
-
let mode = 0 /* BEFORE_PATH */;
|
|
1601
|
+
let mode = 0 /* States.BEFORE_PATH */;
|
|
1599
1602
|
let subPathDepth = 0;
|
|
1600
1603
|
let c;
|
|
1601
1604
|
let key; // eslint-disable-line
|
|
@@ -1605,7 +1608,7 @@ function parse(path) {
|
|
|
1605
1608
|
let action;
|
|
1606
1609
|
let typeMap;
|
|
1607
1610
|
const actions = [];
|
|
1608
|
-
actions[0 /* APPEND */] = () => {
|
|
1611
|
+
actions[0 /* Actions.APPEND */] = () => {
|
|
1609
1612
|
if (key === undefined) {
|
|
1610
1613
|
key = newChar;
|
|
1611
1614
|
}
|
|
@@ -1613,21 +1616,21 @@ function parse(path) {
|
|
|
1613
1616
|
key += newChar;
|
|
1614
1617
|
}
|
|
1615
1618
|
};
|
|
1616
|
-
actions[1 /* PUSH */] = () => {
|
|
1619
|
+
actions[1 /* Actions.PUSH */] = () => {
|
|
1617
1620
|
if (key !== undefined) {
|
|
1618
1621
|
keys.push(key);
|
|
1619
1622
|
key = undefined;
|
|
1620
1623
|
}
|
|
1621
1624
|
};
|
|
1622
|
-
actions[2 /* INC_SUB_PATH_DEPTH */] = () => {
|
|
1623
|
-
actions[0 /* APPEND */]();
|
|
1625
|
+
actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {
|
|
1626
|
+
actions[0 /* Actions.APPEND */]();
|
|
1624
1627
|
subPathDepth++;
|
|
1625
1628
|
};
|
|
1626
|
-
actions[3 /* PUSH_SUB_PATH */] = () => {
|
|
1629
|
+
actions[3 /* Actions.PUSH_SUB_PATH */] = () => {
|
|
1627
1630
|
if (subPathDepth > 0) {
|
|
1628
1631
|
subPathDepth--;
|
|
1629
|
-
mode = 4 /* IN_SUB_PATH */;
|
|
1630
|
-
actions[0 /* APPEND */]();
|
|
1632
|
+
mode = 4 /* States.IN_SUB_PATH */;
|
|
1633
|
+
actions[0 /* Actions.APPEND */]();
|
|
1631
1634
|
}
|
|
1632
1635
|
else {
|
|
1633
1636
|
subPathDepth = 0;
|
|
@@ -1639,19 +1642,19 @@ function parse(path) {
|
|
|
1639
1642
|
return false;
|
|
1640
1643
|
}
|
|
1641
1644
|
else {
|
|
1642
|
-
actions[1 /* PUSH */]();
|
|
1645
|
+
actions[1 /* Actions.PUSH */]();
|
|
1643
1646
|
}
|
|
1644
1647
|
}
|
|
1645
1648
|
};
|
|
1646
1649
|
function maybeUnescapeQuote() {
|
|
1647
1650
|
const nextChar = path[index + 1];
|
|
1648
|
-
if ((mode === 5 /* IN_SINGLE_QUOTE */ &&
|
|
1649
|
-
nextChar === "'" /* SINGLE_QUOTE */) ||
|
|
1650
|
-
(mode === 6 /* IN_DOUBLE_QUOTE */ &&
|
|
1651
|
-
nextChar === "\"" /* DOUBLE_QUOTE */)) {
|
|
1651
|
+
if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&
|
|
1652
|
+
nextChar === "'" /* PathCharTypes.SINGLE_QUOTE */) ||
|
|
1653
|
+
(mode === 6 /* States.IN_DOUBLE_QUOTE */ &&
|
|
1654
|
+
nextChar === "\"" /* PathCharTypes.DOUBLE_QUOTE */)) {
|
|
1652
1655
|
index++;
|
|
1653
1656
|
newChar = '\\' + nextChar;
|
|
1654
|
-
actions[0 /* APPEND */]();
|
|
1657
|
+
actions[0 /* Actions.APPEND */]();
|
|
1655
1658
|
return true;
|
|
1656
1659
|
}
|
|
1657
1660
|
}
|
|
@@ -1663,9 +1666,9 @@ function parse(path) {
|
|
|
1663
1666
|
}
|
|
1664
1667
|
type = getPathCharType(c);
|
|
1665
1668
|
typeMap = pathStateMachine[mode];
|
|
1666
|
-
transition = typeMap[type] || typeMap["l" /* ELSE */] || 8 /* ERROR */;
|
|
1669
|
+
transition = typeMap[type] || typeMap["l" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;
|
|
1667
1670
|
// check parse error
|
|
1668
|
-
if (transition === 8 /* ERROR */) {
|
|
1671
|
+
if (transition === 8 /* States.ERROR */) {
|
|
1669
1672
|
return;
|
|
1670
1673
|
}
|
|
1671
1674
|
mode = transition[0];
|
|
@@ -1679,7 +1682,7 @@ function parse(path) {
|
|
|
1679
1682
|
}
|
|
1680
1683
|
}
|
|
1681
1684
|
// check parse finish
|
|
1682
|
-
if (mode === 7 /* AFTER_PATH */) {
|
|
1685
|
+
if (mode === 7 /* States.AFTER_PATH */) {
|
|
1683
1686
|
return keys;
|
|
1684
1687
|
}
|
|
1685
1688
|
}
|
|
@@ -1863,14 +1866,14 @@ function createMessageContext(options = {}) {
|
|
|
1863
1866
|
return modifier ? _modifier(modifier)(msg, type) : msg;
|
|
1864
1867
|
};
|
|
1865
1868
|
const ctx = {
|
|
1866
|
-
["list" /* LIST */]: list,
|
|
1867
|
-
["named" /* NAMED */]: named,
|
|
1868
|
-
["plural" /* PLURAL */]: plural,
|
|
1869
|
-
["linked" /* LINKED */]: linked,
|
|
1870
|
-
["message" /* MESSAGE */]: message,
|
|
1871
|
-
["type" /* TYPE */]: type,
|
|
1872
|
-
["interpolate" /* INTERPOLATE */]: interpolate,
|
|
1873
|
-
["normalize" /* NORMALIZE */]: normalize
|
|
1869
|
+
["list" /* HelperNameMap.LIST */]: list,
|
|
1870
|
+
["named" /* HelperNameMap.NAMED */]: named,
|
|
1871
|
+
["plural" /* HelperNameMap.PLURAL */]: plural,
|
|
1872
|
+
["linked" /* HelperNameMap.LINKED */]: linked,
|
|
1873
|
+
["message" /* HelperNameMap.MESSAGE */]: message,
|
|
1874
|
+
["type" /* HelperNameMap.TYPE */]: type,
|
|
1875
|
+
["interpolate" /* HelperNameMap.INTERPOLATE */]: interpolate,
|
|
1876
|
+
["normalize" /* HelperNameMap.NORMALIZE */]: normalize
|
|
1874
1877
|
};
|
|
1875
1878
|
return ctx;
|
|
1876
1879
|
}
|
|
@@ -2045,7 +2048,7 @@ function appendItemToChain(chain, target, blocks) {
|
|
|
2045
2048
|
* Intlify core-base version
|
|
2046
2049
|
* @internal
|
|
2047
2050
|
*/
|
|
2048
|
-
const VERSION = '9.3.0-beta.
|
|
2051
|
+
const VERSION = '9.3.0-beta.11';
|
|
2049
2052
|
const NOT_REOSLVED = -1;
|
|
2050
2053
|
const DEFAULT_LOCALE = 'en-US';
|
|
2051
2054
|
const MISSING_RESOLVE_VALUE = '';
|
|
@@ -2105,7 +2108,7 @@ function registerLocaleFallbacker(fallbacker) {
|
|
|
2105
2108
|
_fallbacker = fallbacker;
|
|
2106
2109
|
}
|
|
2107
2110
|
// Additional Meta for Intlify DevTools
|
|
2108
|
-
let _additionalMeta =
|
|
2111
|
+
let _additionalMeta = null;
|
|
2109
2112
|
const setAdditionalMeta = (meta) => {
|
|
2110
2113
|
_additionalMeta = meta;
|
|
2111
2114
|
};
|
|
@@ -2240,7 +2243,7 @@ function handleMissing(context, key, locale, missingWarn, type) {
|
|
|
2240
2243
|
{
|
|
2241
2244
|
const emitter = context.__v_emitter;
|
|
2242
2245
|
if (emitter) {
|
|
2243
|
-
emitter.emit("missing" /* MISSING */, {
|
|
2246
|
+
emitter.emit("missing" /* VueDevToolsTimelineEvents.MISSING */, {
|
|
2244
2247
|
locale,
|
|
2245
2248
|
key,
|
|
2246
2249
|
type,
|
|
@@ -2473,7 +2476,7 @@ function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn
|
|
|
2473
2476
|
if (locale !== targetLocale) {
|
|
2474
2477
|
const emitter = context.__v_emitter;
|
|
2475
2478
|
if (emitter) {
|
|
2476
|
-
emitter.emit("fallback" /* FALBACK */, {
|
|
2479
|
+
emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
|
|
2477
2480
|
type,
|
|
2478
2481
|
key,
|
|
2479
2482
|
from,
|
|
@@ -2503,8 +2506,8 @@ function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn
|
|
|
2503
2506
|
const end = window.performance.now();
|
|
2504
2507
|
const emitter = context.__v_emitter;
|
|
2505
2508
|
if (emitter && start && format) {
|
|
2506
|
-
emitter.emit("message-resolve" /* MESSAGE_RESOLVE */, {
|
|
2507
|
-
type: "message-resolve" /* MESSAGE_RESOLVE */,
|
|
2509
|
+
emitter.emit("message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {
|
|
2510
|
+
type: "message-resolve" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,
|
|
2508
2511
|
key,
|
|
2509
2512
|
message: format,
|
|
2510
2513
|
time: end - start,
|
|
@@ -2557,8 +2560,8 @@ function compileMessageFormat(context, key, targetLocale, format, cacheBaseKey,
|
|
|
2557
2560
|
const end = window.performance.now();
|
|
2558
2561
|
const emitter = context.__v_emitter;
|
|
2559
2562
|
if (emitter && start) {
|
|
2560
|
-
emitter.emit("message-compilation" /* MESSAGE_COMPILATION */, {
|
|
2561
|
-
type: "message-compilation" /* MESSAGE_COMPILATION */,
|
|
2563
|
+
emitter.emit("message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {
|
|
2564
|
+
type: "message-compilation" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,
|
|
2562
2565
|
message: format,
|
|
2563
2566
|
time: end - start,
|
|
2564
2567
|
groupId: `${'translate'}:${key}`
|
|
@@ -2591,8 +2594,8 @@ function evaluateMessage(context, msg, msgCtx) {
|
|
|
2591
2594
|
const end = window.performance.now();
|
|
2592
2595
|
const emitter = context.__v_emitter;
|
|
2593
2596
|
if (emitter && start) {
|
|
2594
|
-
emitter.emit("message-evaluation" /* MESSAGE_EVALUATION */, {
|
|
2595
|
-
type: "message-evaluation" /* MESSAGE_EVALUATION */,
|
|
2597
|
+
emitter.emit("message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {
|
|
2598
|
+
type: "message-evaluation" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,
|
|
2596
2599
|
value: messaged,
|
|
2597
2600
|
time: end - start,
|
|
2598
2601
|
groupId: `${'translate'}:${msg.key}`
|
|
@@ -2652,7 +2655,7 @@ function getCompileOptions(context, locale, key, source, warnHtmlMessage, errorD
|
|
|
2652
2655
|
generateCodeFrame(source, err.location.start.offset, err.location.end.offset);
|
|
2653
2656
|
const emitter = context.__v_emitter;
|
|
2654
2657
|
if (emitter) {
|
|
2655
|
-
emitter.emit("compile-error" /* COMPILE_ERROR */, {
|
|
2658
|
+
emitter.emit("compile-error" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {
|
|
2656
2659
|
message: source,
|
|
2657
2660
|
error: err.message,
|
|
2658
2661
|
start: err.location && err.location.start.offset,
|
|
@@ -2762,7 +2765,7 @@ function datetime(context, ...args) {
|
|
|
2762
2765
|
if (locale !== targetLocale) {
|
|
2763
2766
|
const emitter = context.__v_emitter;
|
|
2764
2767
|
if (emitter) {
|
|
2765
|
-
emitter.emit("fallback" /* FALBACK */, {
|
|
2768
|
+
emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
|
|
2766
2769
|
type,
|
|
2767
2770
|
key,
|
|
2768
2771
|
from,
|
|
@@ -2936,7 +2939,7 @@ function number(context, ...args) {
|
|
|
2936
2939
|
if (locale !== targetLocale) {
|
|
2937
2940
|
const emitter = context.__v_emitter;
|
|
2938
2941
|
if (emitter) {
|
|
2939
|
-
emitter.emit("fallback" /* FALBACK */, {
|
|
2942
|
+
emitter.emit("fallback" /* VueDevToolsTimelineEvents.FALBACK */, {
|
|
2940
2943
|
type,
|
|
2941
2944
|
key,
|
|
2942
2945
|
from,
|