@tolgee/cli 2.10.1 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/ApiClient.js +13 -2
- package/dist/extractor/parser/parser.js +7 -5
- package/dist/extractor/{parserVue → parser}/rules/globalTFunction.js +1 -1
- package/dist/extractor/parser/tokenMergers/customTCallMerger.js +23 -0
- package/dist/extractor/parser/tokenMergers/{typesAsMergerer.js → typesAsMerger.js} +1 -1
- package/dist/extractor/parser/tokenMergers/typesCastMerger.js +1 -1
- package/dist/extractor/parserNgx/ParserNgx.js +4 -3
- package/dist/extractor/parserReact/ParserReact.js +10 -3
- package/dist/extractor/parserSvelte/ParserSvelte.js +4 -3
- package/dist/extractor/parserVue/ParserVue.js +5 -5
- package/package.json +1 -1
- package/dist/extractor/parserVue/tokenMergers/globalTFunctionMerger.js +0 -36
package/dist/client/ApiClient.js
CHANGED
@@ -11,7 +11,7 @@ import createClient from 'openapi-fetch';
|
|
11
11
|
import base32Decode from 'base32-decode';
|
12
12
|
import { API_KEY_PAK_PREFIX, USER_AGENT } from '../constants.js';
|
13
13
|
import { getApiKeyInformation } from './getApiKeyInformation.js';
|
14
|
-
import { debug } from '../utils/logger.js';
|
14
|
+
import { debug, isDebugEnabled } from '../utils/logger.js';
|
15
15
|
import { errorFromLoadable } from './errorFromLoadable.js';
|
16
16
|
function parseResponse(response, parseAs) {
|
17
17
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -62,7 +62,18 @@ export function createApiClient({ baseUrl, apiKey, projectId, autoThrow = false,
|
|
62
62
|
debug(`[HTTP] Requesting: ${request.method} ${request.url}`);
|
63
63
|
},
|
64
64
|
onResponse: (_a) => __awaiter(this, [_a], void 0, function* ({ response, options }) {
|
65
|
-
|
65
|
+
let responseText = `[HTTP] Response: ${response.url} [${response.status}]`;
|
66
|
+
const apiVersion = response.headers.get('x-tolgee-version');
|
67
|
+
if (apiVersion) {
|
68
|
+
responseText += ` [${response.headers.get('x-tolgee-version')}]`;
|
69
|
+
}
|
70
|
+
if (!response.ok && isDebugEnabled()) {
|
71
|
+
const clonedBody = yield response.clone().text();
|
72
|
+
if (clonedBody) {
|
73
|
+
responseText += ` [${clonedBody}]`;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
debug(responseText);
|
66
77
|
if (autoThrow && !response.ok) {
|
67
78
|
const loadable = yield parseResponse(response, options.parseAs);
|
68
79
|
throw new Error(`Tolgee request error ${response.url} ${errorFromLoadable(loadable)}`);
|
@@ -7,8 +7,9 @@ import { createMachine } from './mergerMachine.js';
|
|
7
7
|
import { stringMerger } from './tokenMergers/stringMerger.js';
|
8
8
|
import { templateStringMerger } from './tokenMergers/templateStringMerger.js';
|
9
9
|
import { closingTagMerger } from './tokenMergers/closingTagMerger.js';
|
10
|
-
import {
|
11
|
-
import {
|
10
|
+
import { typesAsMerger } from './tokenMergers/typesAsMerger.js';
|
11
|
+
import { typesCastMerger } from './tokenMergers/typesCastMerger.js';
|
12
|
+
import { customTCallMerger } from './tokenMergers/customTCallMerger.js';
|
12
13
|
export const DEFAULT_BLOCKS = {
|
13
14
|
'block.begin': ['block.end'],
|
14
15
|
'expression.begin': ['expression.end'],
|
@@ -19,12 +20,13 @@ export const DEFAULT_BLOCKS = {
|
|
19
20
|
'tag.closing.begin',
|
20
21
|
],
|
21
22
|
};
|
22
|
-
export const
|
23
|
+
export const DEFAULT_MERGERS = [
|
23
24
|
stringMerger,
|
24
25
|
templateStringMerger,
|
25
26
|
closingTagMerger,
|
26
|
-
|
27
|
-
|
27
|
+
typesAsMerger,
|
28
|
+
typesCastMerger,
|
29
|
+
customTCallMerger(['tolgee.t']),
|
28
30
|
];
|
29
31
|
export const Parser = ({ mappers, blocks, rules, merger, treeTransform, }) => {
|
30
32
|
const ruleMap = new Map();
|
@@ -0,0 +1,23 @@
|
|
1
|
+
export const customTCallMerger = (customExpressions) => {
|
2
|
+
return {
|
3
|
+
initial: '',
|
4
|
+
step: (state, t, end) => {
|
5
|
+
const type = t.customType;
|
6
|
+
const token = t.token;
|
7
|
+
if (type === 'variable' || type === 'function.call') {
|
8
|
+
if (customExpressions.find((e) => e.startsWith(state + token))) {
|
9
|
+
return state + token;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
else if (type === 'acessor.dot') {
|
13
|
+
return state + '.';
|
14
|
+
}
|
15
|
+
else if (state !== '' && type === 'expression.begin') {
|
16
|
+
if (customExpressions.includes(state)) {
|
17
|
+
return end.MERGE_ALL;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
},
|
21
|
+
customType: 'trigger.global.t.function',
|
22
|
+
};
|
23
|
+
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { pipeMachines } from '../parser/mergerMachine.js';
|
2
|
-
import { DEFAULT_BLOCKS,
|
2
|
+
import { DEFAULT_BLOCKS, DEFAULT_MERGERS, Parser } from '../parser/parser.js';
|
3
3
|
import { generalMapper } from '../parser/generalMapper.js';
|
4
4
|
import { ngxMapper } from './ngxMapper.js';
|
5
5
|
import { ngxTreeTransform } from './ngxTreeTransform.js';
|
@@ -9,9 +9,10 @@ import { pipeMerger } from './tokenMergers/pipeMerger.js';
|
|
9
9
|
import { componentWithT } from './rules/componentWithT.js';
|
10
10
|
import { translatePipe } from './rules/translatePipe.js';
|
11
11
|
import { translateFunction } from './rules/translateFunction.js';
|
12
|
+
import { globalTFunction } from '../parser/rules/globalTFunction.js';
|
12
13
|
const ngxMappers = [ngxMapper, generalMapper];
|
13
14
|
export const ngxMergers = pipeMachines([
|
14
|
-
...
|
15
|
+
...DEFAULT_MERGERS,
|
15
16
|
componentWithTMerger,
|
16
17
|
pipeMerger,
|
17
18
|
translateMerger,
|
@@ -20,7 +21,7 @@ export const ParserNgx = () => {
|
|
20
21
|
return Parser({
|
21
22
|
mappers: ngxMappers,
|
22
23
|
blocks: Object.assign({}, DEFAULT_BLOCKS),
|
23
|
-
rules: [componentWithT, translatePipe, translateFunction],
|
24
|
+
rules: [globalTFunction, componentWithT, translatePipe, translateFunction],
|
24
25
|
merger: ngxMergers,
|
25
26
|
treeTransform: ngxTreeTransform,
|
26
27
|
});
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { pipeMachines } from '../parser/mergerMachine.js';
|
2
|
-
import { DEFAULT_BLOCKS,
|
2
|
+
import { DEFAULT_BLOCKS, DEFAULT_MERGERS, Parser } from '../parser/parser.js';
|
3
3
|
import { generalMapper } from '../parser/generalMapper.js';
|
4
4
|
import { reactMapper } from './jsxMapper.js';
|
5
5
|
import { createElementMerger } from './tokenMergers/createElementMerger.js';
|
@@ -10,9 +10,10 @@ import { reactCreateElement } from './rules/createElement.js';
|
|
10
10
|
import { tComponent } from './rules/tComponent.js';
|
11
11
|
import { tFunction } from './rules/tFunction.js';
|
12
12
|
import { useTranslate } from './rules/useTranslate.js';
|
13
|
+
import { globalTFunction } from '../parser/rules/globalTFunction.js';
|
13
14
|
const reactMappers = [generalMapper, reactMapper];
|
14
15
|
export const reactMergers = pipeMachines([
|
15
|
-
...
|
16
|
+
...DEFAULT_MERGERS,
|
16
17
|
createElementMerger,
|
17
18
|
useTranslateMerger,
|
18
19
|
tFunctionMerger,
|
@@ -22,7 +23,13 @@ export const ParserReact = () => {
|
|
22
23
|
return Parser({
|
23
24
|
mappers: reactMappers,
|
24
25
|
blocks: Object.assign({}, DEFAULT_BLOCKS),
|
25
|
-
rules: [
|
26
|
+
rules: [
|
27
|
+
globalTFunction,
|
28
|
+
reactCreateElement,
|
29
|
+
tComponent,
|
30
|
+
tFunction,
|
31
|
+
useTranslate,
|
32
|
+
],
|
26
33
|
merger: reactMergers,
|
27
34
|
});
|
28
35
|
};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { pipeMachines } from '../parser/mergerMachine.js';
|
2
|
-
import { DEFAULT_BLOCKS,
|
2
|
+
import { DEFAULT_BLOCKS, DEFAULT_MERGERS, Parser } from '../parser/parser.js';
|
3
3
|
import { svelteMapper } from './svelteMapper.js';
|
4
4
|
import { generalMapper } from '../parser/generalMapper.js';
|
5
5
|
import { tFunctionMerger } from './tokenMergers/tFunctionMerger.js';
|
@@ -11,9 +11,10 @@ import { getTranslate } from './rules/useTranslate.js';
|
|
11
11
|
import { tComponent } from './rules/tComponent.js';
|
12
12
|
import { scriptTag } from './rules/scriptTag.js';
|
13
13
|
import { svelteTreeTransform } from './svelteTreeTransform.js';
|
14
|
+
import { globalTFunction } from '../parser/rules/globalTFunction.js';
|
14
15
|
const svelteMappers = [generalMapper, svelteMapper];
|
15
16
|
export const svelteMergers = pipeMachines([
|
16
|
-
...
|
17
|
+
...DEFAULT_MERGERS,
|
17
18
|
tFunctionMerger,
|
18
19
|
getTranslateMerger,
|
19
20
|
tComponentMerger,
|
@@ -23,7 +24,7 @@ export const ParserSvelte = () => {
|
|
23
24
|
return Parser({
|
24
25
|
mappers: svelteMappers,
|
25
26
|
blocks: Object.assign({}, DEFAULT_BLOCKS),
|
26
|
-
rules: [tFunction, getTranslate, tComponent, scriptTag],
|
27
|
+
rules: [globalTFunction, tFunction, getTranslate, tComponent, scriptTag],
|
27
28
|
treeTransform: svelteTreeTransform,
|
28
29
|
merger: svelteMergers,
|
29
30
|
});
|
@@ -1,26 +1,26 @@
|
|
1
1
|
import { pipeMachines } from '../parser/mergerMachine.js';
|
2
|
-
import { DEFAULT_BLOCKS,
|
2
|
+
import { DEFAULT_BLOCKS, DEFAULT_MERGERS, Parser } from '../parser/parser.js';
|
3
3
|
import { generalMapper } from '../parser/generalMapper.js';
|
4
4
|
import { vueMapper } from './vueMapper.js';
|
5
5
|
import { vueTreeTransform } from './vueTreeTransform.js';
|
6
|
-
import { globalTFunctionMerger } from './tokenMergers/globalTFunctionMerger.js';
|
7
6
|
import { tFunctionMerger } from './tokenMergers/tFunctionMerger.js';
|
8
7
|
import { useTranslateMerger } from './tokenMergers/useTranslateMerger.js';
|
9
8
|
import { exportDefaultObjectMerger } from './tokenMergers/exportDefaultObjectMerger.js';
|
10
9
|
import { scriptTagMerger } from './tokenMergers/scriptTagMerger.js';
|
11
10
|
import { tComponentMerger } from './tokenMergers/tComponentMerger.js';
|
12
|
-
import { globalTFunction } from '
|
11
|
+
import { globalTFunction } from '../parser/rules/globalTFunction.js';
|
13
12
|
import { tFunction } from './rules/tFunction.js';
|
14
13
|
import { useTranslate } from './rules/useTranslate.js';
|
15
14
|
import { tComponent } from './rules/tComponent.js';
|
16
15
|
import { scriptTag } from './rules/scriptTag.js';
|
17
16
|
import { exportDefaultObject } from './rules/exportDefaultObject.js';
|
18
17
|
import { hyphenPropsMerger } from './tokenMergers/hyphenPropsMerger.js';
|
18
|
+
import { customTCallMerger } from '../parser/tokenMergers/customTCallMerger.js';
|
19
19
|
const vueMappers = [generalMapper, vueMapper];
|
20
20
|
export const vueMergers = pipeMachines([
|
21
|
-
...
|
21
|
+
...DEFAULT_MERGERS,
|
22
22
|
hyphenPropsMerger,
|
23
|
-
|
23
|
+
customTCallMerger(['$t', 'this.$t']),
|
24
24
|
tFunctionMerger,
|
25
25
|
useTranslateMerger,
|
26
26
|
tComponentMerger,
|
package/package.json
CHANGED
@@ -1,36 +0,0 @@
|
|
1
|
-
// $t(
|
2
|
-
export const globalTFunctionMerger = {
|
3
|
-
initial: 0 /* S.Idle */,
|
4
|
-
step: (state, t, end) => {
|
5
|
-
const type = t.customType;
|
6
|
-
const token = t.token;
|
7
|
-
switch (state) {
|
8
|
-
case 0 /* S.Idle */:
|
9
|
-
if (type === 'function.call' && token === '$t') {
|
10
|
-
return 1 /* S.ExpectBracket */;
|
11
|
-
}
|
12
|
-
else if (type === 'variable' && token === 'this') {
|
13
|
-
return 2 /* S.ExpectDot */;
|
14
|
-
}
|
15
|
-
else if (type === 'acessor.dot') {
|
16
|
-
return 4 /* S.Ignore */;
|
17
|
-
}
|
18
|
-
break;
|
19
|
-
case 2 /* S.ExpectDot */:
|
20
|
-
if (type === 'acessor.dot') {
|
21
|
-
return 3 /* S.ExpectCall */;
|
22
|
-
}
|
23
|
-
break;
|
24
|
-
case 3 /* S.ExpectCall */:
|
25
|
-
if (type === 'function.call' && token === '$t') {
|
26
|
-
return 1 /* S.ExpectBracket */;
|
27
|
-
}
|
28
|
-
break;
|
29
|
-
case 1 /* S.ExpectBracket */:
|
30
|
-
if (type === 'expression.begin') {
|
31
|
-
return end.MERGE_ALL;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
},
|
35
|
-
customType: 'trigger.global.t.function',
|
36
|
-
};
|