@generaltranslation/compiler 1.3.7 → 1.3.9
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/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/passes/collectionPass.d.ts.map +1 -1
- package/dist/passes/collectionPass.js +2 -1
- package/dist/passes/collectionPass.js.map +1 -1
- package/dist/passes/runtimeTranslatePass.d.ts +17 -0
- package/dist/passes/runtimeTranslatePass.d.ts.map +1 -0
- package/dist/passes/runtimeTranslatePass.js +39 -0
- package/dist/passes/runtimeTranslatePass.js.map +1 -0
- package/dist/processing/collection/processCallExpression.d.ts.map +1 -1
- package/dist/processing/collection/processCallExpression.js +31 -4
- package/dist/processing/collection/processCallExpression.js.map +1 -1
- package/dist/processing/collection/processTaggedTemplateExpression.d.ts +16 -0
- package/dist/processing/collection/processTaggedTemplateExpression.d.ts.map +1 -0
- package/dist/processing/collection/processTaggedTemplateExpression.js +90 -0
- package/dist/processing/collection/processTaggedTemplateExpression.js.map +1 -0
- package/dist/processing/runtime-translate/processImportDeclaration.d.ts +17 -0
- package/dist/processing/runtime-translate/processImportDeclaration.d.ts.map +1 -0
- package/dist/processing/runtime-translate/processImportDeclaration.js +67 -0
- package/dist/processing/runtime-translate/processImportDeclaration.js.map +1 -0
- package/dist/processing/runtime-translate/processProgram.d.ts +17 -0
- package/dist/processing/runtime-translate/processProgram.d.ts.map +1 -0
- package/dist/processing/runtime-translate/processProgram.js +60 -0
- package/dist/processing/runtime-translate/processProgram.js.map +1 -0
- package/dist/state/StringCollector.d.ts +27 -0
- package/dist/state/StringCollector.d.ts.map +1 -1
- package/dist/state/StringCollector.js +30 -1
- package/dist/state/StringCollector.js.map +1 -1
- package/dist/state/types.d.ts +1 -0
- package/dist/state/types.d.ts.map +1 -1
- package/dist/state/utils/initializeState.d.ts.map +1 -1
- package/dist/state/utils/initializeState.js +14 -7
- package/dist/state/utils/initializeState.js.map +1 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.d.ts.map +1 -1
- package/dist/transform/registration/callbacks/registerUseGTCallback.js +1 -0
- package/dist/transform/registration/callbacks/registerUseGTCallback.js.map +1 -1
- package/dist/transform/registration/registerTranslationComponent.d.ts +5 -1
- package/dist/transform/registration/registerTranslationComponent.d.ts.map +1 -1
- package/dist/transform/registration/registerTranslationComponent.js +4 -1
- package/dist/transform/registration/registerTranslationComponent.js.map +1 -1
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.d.ts +11 -0
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.d.ts.map +1 -0
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js +94 -0
- package/dist/transform/runtime-translate/buildRuntimeTranslateCalls.js.map +1 -0
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts +11 -0
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.d.ts.map +1 -0
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js +59 -0
- package/dist/transform/runtime-translate/injectRuntimeTranslateImport.js.map +1 -0
- package/dist/transform/templates-and-concat/resolveStaticExpression.d.ts +14 -0
- package/dist/transform/templates-and-concat/resolveStaticExpression.d.ts.map +1 -0
- package/dist/transform/templates-and-concat/resolveStaticExpression.js +89 -0
- package/dist/transform/templates-and-concat/resolveStaticExpression.js.map +1 -0
- package/dist/transform/validation/validateTranslationFunctionCallback.d.ts +2 -2
- package/dist/transform/validation/validateTranslationFunctionCallback.d.ts.map +1 -1
- package/dist/transform/validation/validateTranslationFunctionCallback.js +8 -7
- package/dist/transform/validation/validateTranslationFunctionCallback.js.map +1 -1
- package/dist/utils/constants/gt/constants.d.ts +3 -1
- package/dist/utils/constants/gt/constants.d.ts.map +1 -1
- package/dist/utils/constants/gt/constants.js +2 -0
- package/dist/utils/constants/gt/constants.js.map +1 -1
- package/package.json +2 -2
package/dist/config.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ type GTConfig = {
|
|
|
16
16
|
};
|
|
17
17
|
/** @deprecated Use `autoderive` instead */
|
|
18
18
|
autoDerive?: boolean;
|
|
19
|
+
/** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */
|
|
20
|
+
devHotReload?: boolean | {
|
|
21
|
+
strings?: boolean;
|
|
22
|
+
jsx?: boolean;
|
|
23
|
+
};
|
|
19
24
|
};
|
|
20
25
|
};
|
|
21
26
|
};
|
|
@@ -47,6 +52,11 @@ export interface PluginConfig {
|
|
|
47
52
|
autoDerive?: boolean;
|
|
48
53
|
/** Debug: write a hash → jsxChildren manifest file on build */
|
|
49
54
|
_debugHashManifest?: boolean;
|
|
55
|
+
/** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */
|
|
56
|
+
devHotReload?: boolean | {
|
|
57
|
+
strings?: boolean;
|
|
58
|
+
jsx?: boolean;
|
|
59
|
+
};
|
|
50
60
|
}
|
|
51
61
|
/**
|
|
52
62
|
* Internal plugin settings (processed config)
|
|
@@ -71,6 +81,11 @@ export interface PluginSettings {
|
|
|
71
81
|
};
|
|
72
82
|
/** Debug: write a hash → jsxChildren manifest file on build */
|
|
73
83
|
_debugHashManifest: boolean;
|
|
84
|
+
/** Dev hot reload: inject runtime translate calls and enable Suspense-based <T> */
|
|
85
|
+
devHotReload: {
|
|
86
|
+
strings: boolean;
|
|
87
|
+
jsx: boolean;
|
|
88
|
+
};
|
|
74
89
|
}
|
|
75
90
|
/**
|
|
76
91
|
* Resolves the autoderive config value into separate jsx and strings flags.
|
|
@@ -85,5 +100,18 @@ export declare function resolveAutoderive(value: boolean | {
|
|
|
85
100
|
jsx: boolean;
|
|
86
101
|
strings: boolean;
|
|
87
102
|
};
|
|
103
|
+
/**
|
|
104
|
+
* Resolves the devHotReload config value into separate strings and jsx flags.
|
|
105
|
+
* - `true` enables strings only (JSX is handled at runtime via Suspense, no compiler injection needed)
|
|
106
|
+
* - `false` disables both
|
|
107
|
+
* - `{ strings?: boolean; jsx?: boolean }` enables selectively (missing keys default to false)
|
|
108
|
+
*/
|
|
109
|
+
export declare function resolveDevHotReload(value: boolean | {
|
|
110
|
+
strings?: boolean;
|
|
111
|
+
jsx?: boolean;
|
|
112
|
+
} | undefined): {
|
|
113
|
+
strings: boolean;
|
|
114
|
+
jsx: boolean;
|
|
115
|
+
};
|
|
88
116
|
export {};
|
|
89
117
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE;;GAEG;AACH,KAAK,QAAQ,GAAG;IACd,KAAK,CAAC,EAAE;QACN,EAAE,CAAC,EAAE;YACH,YAAY,CAAC,EAAE;gBACb,sBAAsB,CAAC,EAAE,OAAO,CAAC;gBACjC,UAAU,CAAC,EAAE,OAAO,GAAG;oBAAE,GAAG,CAAC,EAAE,OAAO,CAAC;oBAAC,OAAO,CAAC,EAAE,OAAO,CAAA;iBAAE,CAAC;gBAC5D,2CAA2C;gBAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.resolveAutoderive = resolveAutoderive;
|
|
7
|
+
exports.resolveDevHotReload = resolveDevHotReload;
|
|
7
8
|
/**
|
|
8
9
|
* Resolves the autoderive config value into separate jsx and strings flags.
|
|
9
10
|
* - `true` enables both (backward compatible)
|
|
@@ -17,4 +18,17 @@ function resolveAutoderive(value) {
|
|
|
17
18
|
}
|
|
18
19
|
return { jsx: (_a = value.jsx) !== null && _a !== void 0 ? _a : false, strings: (_b = value.strings) !== null && _b !== void 0 ? _b : false };
|
|
19
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolves the devHotReload config value into separate strings and jsx flags.
|
|
23
|
+
* - `true` enables strings only (JSX is handled at runtime via Suspense, no compiler injection needed)
|
|
24
|
+
* - `false` disables both
|
|
25
|
+
* - `{ strings?: boolean; jsx?: boolean }` enables selectively (missing keys default to false)
|
|
26
|
+
*/
|
|
27
|
+
function resolveDevHotReload(value) {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
if (value === undefined || typeof value === 'boolean') {
|
|
30
|
+
return { strings: !!value, jsx: false };
|
|
31
|
+
}
|
|
32
|
+
return { strings: (_a = value.strings) !== null && _a !== void 0 ? _a : false, jsx: (_b = value.jsx) !== null && _b !== void 0 ? _b : false };
|
|
33
|
+
}
|
|
20
34
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAgFH,8CAOC;AAQD,kDAOC;AA5BD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,KAAiE;;IAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAA,KAAK,CAAC,GAAG,mCAAI,KAAK,EAAE,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,EAAE,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,KAAiE;;IAEjE,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,KAAK,EAAE,GAAG,EAAE,MAAA,KAAK,CAAC,GAAG,mCAAI,KAAK,EAAE,CAAC;AACtE,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;CAEtD;AAED;;;;;GAKG;AACH,QAAA,MAAM,UAAU,6EAkHf,CAAC;AAGF,eAAe,UAAU,CAAC;AAC1B,eAAO,MAAM,OAAO,oEAAqB,CAAC;AAC1C,eAAO,MAAM,IAAI,wGAAkB,CAAC;AACpC,eAAO,MAAM,MAAM,4GAAoB,CAAC;AACxC,eAAO,MAAM,OAAO,+EAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -48,6 +48,7 @@ const macroExpansionPass_1 = require("./passes/macroExpansionPass");
|
|
|
48
48
|
const handleErrors_1 = require("./passes/handleErrors");
|
|
49
49
|
const initializeState_1 = require("./state/utils/initializeState");
|
|
50
50
|
const jsxInsertionPass_1 = require("./passes/jsxInsertionPass");
|
|
51
|
+
const runtimeTranslatePass_1 = require("./passes/runtimeTranslatePass");
|
|
51
52
|
/**
|
|
52
53
|
* GT Universal Plugin - Main entry point
|
|
53
54
|
*
|
|
@@ -105,10 +106,17 @@ const gtUnplugin = (0, unplugin_1.createUnplugin)((options = {}) => {
|
|
|
105
106
|
if (hasCollectionContent) {
|
|
106
107
|
(0, traverse_1.default)(ast, (0, injectionPass_1.injectionPass)(state));
|
|
107
108
|
}
|
|
109
|
+
// Pass 5: Runtime translate (dev hot reload)
|
|
110
|
+
const devHotReloadActive = state.settings.devHotReload.strings ||
|
|
111
|
+
state.settings.devHotReload.jsx;
|
|
112
|
+
if (devHotReloadActive && hasCollectionContent) {
|
|
113
|
+
(0, traverse_1.default)(ast, (0, runtimeTranslatePass_1.runtimeTranslatePass)(state));
|
|
114
|
+
}
|
|
108
115
|
// Generate code if any pass modified the AST
|
|
109
116
|
if (!hasCollectionContent &&
|
|
110
117
|
state.statistics.macroExpansionsCount === 0 &&
|
|
111
|
-
state.statistics.jsxInsertionsCount === 0
|
|
118
|
+
state.statistics.jsxInsertionsCount === 0 &&
|
|
119
|
+
state.statistics.runtimeTranslateCount === 0) {
|
|
112
120
|
return null;
|
|
113
121
|
}
|
|
114
122
|
return (0, generator_1.default)(ast, {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA0C;AAC1C,sDAAwC;AACxC,iEAAwC;AACxC,+DAAuC;AAKvC,gBAAgB;AAChB,4DAAyD;AACzD,0DAAuD;AACvD,oEAAiE;AACjE,wDAA+E;AAC/E,mEAAgE;AAChE,gEAA6D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionPass.d.ts","sourceRoot":"","sources":["../../src/passes/collectionPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"collectionPass.d.ts","sourceRoot":"","sources":["../../src/passes/collectionPass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMhD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAOrE"}
|
|
@@ -4,11 +4,12 @@ exports.collectionPass = collectionPass;
|
|
|
4
4
|
const basePass_1 = require("./basePass");
|
|
5
5
|
const processCallExpression_1 = require("../processing/collection/processCallExpression");
|
|
6
6
|
const processVariableDeclarator_1 = require("../processing/collection/processVariableDeclarator");
|
|
7
|
+
const processTaggedTemplateExpression_1 = require("../processing/collection/processTaggedTemplateExpression");
|
|
7
8
|
/**
|
|
8
9
|
* Collection pass — collect translation data without transforming.
|
|
9
10
|
* Tracks imports, variable declarations, and GT function invocations.
|
|
10
11
|
*/
|
|
11
12
|
function collectionPass(state) {
|
|
12
|
-
return Object.assign(Object.assign({}, (0, basePass_1.basePass)(state)), { CallExpression: (0, processCallExpression_1.processCallExpression)(state), VariableDeclarator: (0, processVariableDeclarator_1.processVariableDeclarator)(state) });
|
|
13
|
+
return Object.assign(Object.assign({}, (0, basePass_1.basePass)(state)), { CallExpression: (0, processCallExpression_1.processCallExpression)(state), VariableDeclarator: (0, processVariableDeclarator_1.processVariableDeclarator)(state), TaggedTemplateExpression: (0, processTaggedTemplateExpression_1.processTaggedTemplateExpression)(state) });
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=collectionPass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionPass.js","sourceRoot":"","sources":["../../src/passes/collectionPass.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"collectionPass.js","sourceRoot":"","sources":["../../src/passes/collectionPass.ts"],"names":[],"mappings":";;AAWA,wCAOC;AAhBD,yCAAsC;AACtC,0FAAuF;AACvF,kGAA+F;AAC/F,8GAA2G;AAE3G;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAqB;IAClD,uCACK,IAAA,mBAAQ,EAAC,KAAK,CAAC,KAClB,cAAc,EAAE,IAAA,6CAAqB,EAAC,KAAK,CAAC,EAC5C,kBAAkB,EAAE,IAAA,qDAAyB,EAAC,KAAK,CAAC,EACpD,wBAAwB,EAAE,IAAA,iEAA+B,EAAC,KAAK,CAAC,IAChE;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TraverseOptions } from '@babel/traverse';
|
|
2
|
+
import { TransformState } from '../state/types';
|
|
3
|
+
/**
|
|
4
|
+
* Runtime translate pass — injects GtInternalRuntimeTranslateString and
|
|
5
|
+
* GtInternalRuntimeTranslateJsx calls at the module level for dev hot reload.
|
|
6
|
+
*
|
|
7
|
+
* For each extracted string/JSX, injects:
|
|
8
|
+
* await Promise.all([
|
|
9
|
+
* GtInternalRuntimeTranslateString("msg", { $context, $_hash, ... }),
|
|
10
|
+
* GtInternalRuntimeTranslateJsx(children, { $context, $id }),
|
|
11
|
+
* ])
|
|
12
|
+
*
|
|
13
|
+
* This pass does NOT use basePass — it doesn't need scope tracking and must not
|
|
14
|
+
* reset ScopeTracker/StringCollector state via processProgram.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runtimeTranslatePass(state: TransformState): TraverseOptions;
|
|
17
|
+
//# sourceMappingURL=runtimeTranslatePass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeTranslatePass.d.ts","sourceRoot":"","sources":["../../src/passes/runtimeTranslatePass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CA0B3E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runtimeTranslatePass = runtimeTranslatePass;
|
|
4
|
+
const processImportDeclaration_1 = require("../processing/runtime-translate/processImportDeclaration");
|
|
5
|
+
const processProgram_1 = require("../processing/runtime-translate/processProgram");
|
|
6
|
+
/**
|
|
7
|
+
* Runtime translate pass — injects GtInternalRuntimeTranslateString and
|
|
8
|
+
* GtInternalRuntimeTranslateJsx calls at the module level for dev hot reload.
|
|
9
|
+
*
|
|
10
|
+
* For each extracted string/JSX, injects:
|
|
11
|
+
* await Promise.all([
|
|
12
|
+
* GtInternalRuntimeTranslateString("msg", { $context, $_hash, ... }),
|
|
13
|
+
* GtInternalRuntimeTranslateJsx(children, { $context, $id }),
|
|
14
|
+
* ])
|
|
15
|
+
*
|
|
16
|
+
* This pass does NOT use basePass — it doesn't need scope tracking and must not
|
|
17
|
+
* reset ScopeTracker/StringCollector state via processProgram.
|
|
18
|
+
*/
|
|
19
|
+
function runtimeTranslatePass(state) {
|
|
20
|
+
let alreadyImportedString = false;
|
|
21
|
+
let alreadyImportedJsx = false;
|
|
22
|
+
const importAnchor = { path: null };
|
|
23
|
+
const onStringFound = () => {
|
|
24
|
+
alreadyImportedString = true;
|
|
25
|
+
};
|
|
26
|
+
const onJsxFound = () => {
|
|
27
|
+
alreadyImportedJsx = true;
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
ImportDeclaration: (0, processImportDeclaration_1.processImportDeclaration)(onStringFound, onJsxFound, importAnchor),
|
|
31
|
+
Program: (0, processProgram_1.processProgram)({
|
|
32
|
+
state,
|
|
33
|
+
isStringAlreadyImported: () => alreadyImportedString,
|
|
34
|
+
isJsxAlreadyImported: () => alreadyImportedJsx,
|
|
35
|
+
importAnchor,
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=runtimeTranslatePass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeTranslatePass.js","sourceRoot":"","sources":["../../src/passes/runtimeTranslatePass.ts"],"names":[],"mappings":";;AAqBA,oDA0BC;AA7CD,uGAGkE;AAClE,mFAAgF;AAEhF;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAAC,KAAqB;IACxD,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,MAAM,YAAY,GAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElD,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,qBAAqB,GAAG,IAAI,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,kBAAkB,GAAG,IAAI,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,IAAA,mDAAwB,EACzC,aAAa,EACb,UAAU,EACV,YAAY,CACb;QACD,OAAO,EAAE,IAAA,+BAAc,EAAC;YACtB,KAAK;YACL,uBAAuB,EAAE,GAAG,EAAE,CAAC,qBAAqB;YACpD,oBAAoB,EAAE,GAAG,EAAE,CAAC,kBAAkB;YAC9C,YAAY;SACb,CAAC;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processCallExpression.d.ts","sourceRoot":"","sources":["../../../src/processing/collection/processCallExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"processCallExpression.d.ts","sourceRoot":"","sources":["../../../src/processing/collection/processCallExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4BnD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,GACpB,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,CAiDrC"}
|
|
@@ -85,12 +85,11 @@ function processCallExpression(state) {
|
|
|
85
85
|
}
|
|
86
86
|
else if (type === 'generaltranslation' &&
|
|
87
87
|
canonicalName === constants_1.GT_OTHER_FUNCTIONS.msg) {
|
|
88
|
-
|
|
89
|
-
// handleMsgFunction(callExpr, state);
|
|
88
|
+
handleStandaloneTranslation(callExpr, state);
|
|
90
89
|
}
|
|
91
90
|
else if (type === 'generaltranslation' &&
|
|
92
91
|
canonicalName === constants_1.GT_OTHER_FUNCTIONS.t) {
|
|
93
|
-
|
|
92
|
+
handleStandaloneTranslation(callExpr, state);
|
|
94
93
|
}
|
|
95
94
|
};
|
|
96
95
|
}
|
|
@@ -234,6 +233,34 @@ function handleReactInvocation(callExpr, state) {
|
|
|
234
233
|
state.debugManifest.set(hash, children !== null && children !== void 0 ? children : null);
|
|
235
234
|
}
|
|
236
235
|
// Track the component (increment counter, initialize aggregator, set hash)
|
|
237
|
-
(0, registerTranslationComponent_1.registerTranslationComponent)(state, hash);
|
|
236
|
+
(0, registerTranslationComponent_1.registerTranslationComponent)(state, hash, { children, id, context });
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Handle standalone translation functions: t() and msg()
|
|
240
|
+
* Same argument structure as useGT_callback (message string + options object).
|
|
241
|
+
* Pushes to runtimeOnlyEntries — bypasses the counter system so injection is unaffected.
|
|
242
|
+
*/
|
|
243
|
+
function handleStandaloneTranslation(callExpr, state) {
|
|
244
|
+
var _a;
|
|
245
|
+
// Reuse the same validation as useGT_callback (identical argument structure)
|
|
246
|
+
const params = (0, validateTranslationFunctionCallback_1.validateUseGTCallback)(callExpr, state);
|
|
247
|
+
if (params.errors.length > 0 || params.content === undefined) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
// Skip derive content
|
|
251
|
+
if (params.hasDeriveContext) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
// Calculate hash
|
|
255
|
+
const hash = (_a = params.hash) !== null && _a !== void 0 ? _a : (0, calculateHash_1.default)(Object.assign(Object.assign(Object.assign(Object.assign({ source: params.content }, (params.id && { id: params.id })), (params.context && { context: params.context })), (params.maxChars != null && { maxChars: params.maxChars })), { dataFormat: (params.format || 'ICU') }));
|
|
256
|
+
// Push to runtime-only entries (no counter, no injection pass involvement)
|
|
257
|
+
state.stringCollector.pushRuntimeOnlyContent({
|
|
258
|
+
message: params.content,
|
|
259
|
+
hash,
|
|
260
|
+
id: params.id,
|
|
261
|
+
context: params.context,
|
|
262
|
+
maxChars: params.maxChars,
|
|
263
|
+
format: params.format,
|
|
264
|
+
});
|
|
238
265
|
}
|
|
239
266
|
//# sourceMappingURL=processCallExpression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processCallExpression.js","sourceRoot":"","sources":["../../../src/processing/collection/processCallExpression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"processCallExpression.js","sourceRoot":"","sources":["../../../src/processing/collection/processCallExpression.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VisitNode } from '@babel/traverse';
|
|
2
|
+
import * as t from '@babel/types';
|
|
3
|
+
import { TransformState } from '../../state/types';
|
|
4
|
+
/**
|
|
5
|
+
* Process tagged template expressions during the collection pass.
|
|
6
|
+
* Extracts the message for runtime-only entries (t`Hello ${name}`).
|
|
7
|
+
*
|
|
8
|
+
* Only extracts when:
|
|
9
|
+
* - t is unbound (global macro)
|
|
10
|
+
* - t is imported from gt-react/browser
|
|
11
|
+
*
|
|
12
|
+
* Does NOT transform the AST — read-only extraction.
|
|
13
|
+
* If the message contains derive() (returns TemplateLiteral), it's skipped.
|
|
14
|
+
*/
|
|
15
|
+
export declare function processTaggedTemplateExpression(state: TransformState): VisitNode<t.Node, t.TaggedTemplateExpression>;
|
|
16
|
+
//# sourceMappingURL=processTaggedTemplateExpression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTaggedTemplateExpression.d.ts","sourceRoot":"","sources":["../../../src/processing/collection/processTaggedTemplateExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,cAAc,GACpB,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAwC/C"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.processTaggedTemplateExpression = processTaggedTemplateExpression;
|
|
40
|
+
const t = __importStar(require("@babel/types"));
|
|
41
|
+
const constants_1 = require("../../utils/constants/gt/constants");
|
|
42
|
+
const transformTemplateLiteral_1 = require("../../transform/macro-expansion/transformTemplateLiteral");
|
|
43
|
+
const calculateHash_1 = __importDefault(require("../../utils/calculateHash"));
|
|
44
|
+
/**
|
|
45
|
+
* Process tagged template expressions during the collection pass.
|
|
46
|
+
* Extracts the message for runtime-only entries (t`Hello ${name}`).
|
|
47
|
+
*
|
|
48
|
+
* Only extracts when:
|
|
49
|
+
* - t is unbound (global macro)
|
|
50
|
+
* - t is imported from gt-react/browser
|
|
51
|
+
*
|
|
52
|
+
* Does NOT transform the AST — read-only extraction.
|
|
53
|
+
* If the message contains derive() (returns TemplateLiteral), it's skipped.
|
|
54
|
+
*/
|
|
55
|
+
function processTaggedTemplateExpression(state) {
|
|
56
|
+
const symbol = state.settings.stringTranslationMacro;
|
|
57
|
+
return (path) => {
|
|
58
|
+
if (!t.isIdentifier(path.node.tag, { name: symbol }))
|
|
59
|
+
return;
|
|
60
|
+
// Same scope guard as macro expansion: only process unbound t (global macro)
|
|
61
|
+
// or t imported from gt-react/browser
|
|
62
|
+
const binding = path.scope.getBinding(symbol);
|
|
63
|
+
if (binding) {
|
|
64
|
+
if (!binding.path.isImportSpecifier())
|
|
65
|
+
return;
|
|
66
|
+
const importDecl = binding.path.parentPath;
|
|
67
|
+
if (!(importDecl === null || importDecl === void 0 ? void 0 : importDecl.isImportDeclaration()) ||
|
|
68
|
+
importDecl.node.source.value !== constants_1.GT_IMPORT_SOURCES.GT_REACT_BROWSER) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Extract message from the template literal (reuse macro expansion utility)
|
|
73
|
+
const { message } = (0, transformTemplateLiteral_1.transformTemplateLiteral)(path.get('quasi'));
|
|
74
|
+
// If message is a TemplateLiteral, it contains derive() — skip
|
|
75
|
+
if (!t.isStringLiteral(message)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Compute hash and push to runtime-only entries
|
|
79
|
+
const content = message.value;
|
|
80
|
+
const hash = (0, calculateHash_1.default)({
|
|
81
|
+
source: content,
|
|
82
|
+
dataFormat: 'ICU',
|
|
83
|
+
});
|
|
84
|
+
state.stringCollector.pushRuntimeOnlyContent({
|
|
85
|
+
message: content,
|
|
86
|
+
hash,
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=processTaggedTemplateExpression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTaggedTemplateExpression.js","sourceRoot":"","sources":["../../../src/processing/collection/processTaggedTemplateExpression.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,0EA0CC;AA3DD,gDAAkC;AAElC,kEAAuE;AACvE,uGAAoG;AACpG,8EAAmD;AAEnD;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAC7C,KAAqB;IAErB,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAErD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAAE,OAAO;QAE7D,6EAA6E;QAC7E,sCAAsC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAAE,OAAO;YAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC3C,IACE,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,mBAAmB,EAAE,CAAA;gBAClC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,6BAAiB,CAAC,gBAAgB,EACnE,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,EAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAEhE,+DAA+D;QAC/D,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,gDAAgD;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC;YACtB,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QAEH,KAAK,CAAC,eAAe,CAAC,sBAAsB,CAAC;YAC3C,OAAO,EAAE,OAAO;YAChB,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NodePath, VisitNode } from '@babel/traverse';
|
|
2
|
+
import * as t from '@babel/types';
|
|
3
|
+
/**
|
|
4
|
+
* Tracks the import declaration path where the runtime translate functions
|
|
5
|
+
* were found (or injected). Used to insert the Promise.all right after it.
|
|
6
|
+
*/
|
|
7
|
+
export interface ImportAnchor {
|
|
8
|
+
path: NodePath<t.ImportDeclaration> | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Process import declarations during runtime translate pass.
|
|
12
|
+
* Checks if GtInternalRuntimeTranslateString and/or GtInternalRuntimeTranslateJsx
|
|
13
|
+
* are already imported from a recognized GT source.
|
|
14
|
+
* Also captures the import path as an anchor for statement insertion.
|
|
15
|
+
*/
|
|
16
|
+
export declare function processImportDeclaration(onStringFound: () => void, onJsxFound: () => void, importAnchor: ImportAnchor): VisitNode<t.Node, t.ImportDeclaration>;
|
|
17
|
+
//# sourceMappingURL=processImportDeclaration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processImportDeclaration.d.ts","sourceRoot":"","sources":["../../../src/processing/runtime-translate/processImportDeclaration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAIlC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,IAAI,EACzB,UAAU,EAAE,MAAM,IAAI,EACtB,YAAY,EAAE,YAAY,GACzB,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAuBxC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.processImportDeclaration = processImportDeclaration;
|
|
37
|
+
const t = __importStar(require("@babel/types"));
|
|
38
|
+
const helpers_1 = require("../../utils/constants/gt/helpers");
|
|
39
|
+
const constants_1 = require("../../utils/constants/gt/constants");
|
|
40
|
+
/**
|
|
41
|
+
* Process import declarations during runtime translate pass.
|
|
42
|
+
* Checks if GtInternalRuntimeTranslateString and/or GtInternalRuntimeTranslateJsx
|
|
43
|
+
* are already imported from a recognized GT source.
|
|
44
|
+
* Also captures the import path as an anchor for statement insertion.
|
|
45
|
+
*/
|
|
46
|
+
function processImportDeclaration(onStringFound, onJsxFound, importAnchor) {
|
|
47
|
+
const stringName = constants_1.GT_OTHER_FUNCTIONS.GtInternalRuntimeTranslateString;
|
|
48
|
+
const jsxName = constants_1.GT_OTHER_FUNCTIONS.GtInternalRuntimeTranslateJsx;
|
|
49
|
+
return (path) => {
|
|
50
|
+
if (!(0, helpers_1.isGTImportSource)(path.node.source.value))
|
|
51
|
+
return;
|
|
52
|
+
for (const specifier of path.node.specifiers) {
|
|
53
|
+
if (t.isImportSpecifier(specifier) &&
|
|
54
|
+
t.isIdentifier(specifier.imported)) {
|
|
55
|
+
if (specifier.imported.name === stringName) {
|
|
56
|
+
onStringFound();
|
|
57
|
+
importAnchor.path = path;
|
|
58
|
+
}
|
|
59
|
+
if (specifier.imported.name === jsxName) {
|
|
60
|
+
onJsxFound();
|
|
61
|
+
importAnchor.path = path;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=processImportDeclaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processImportDeclaration.js","sourceRoot":"","sources":["../../../src/processing/runtime-translate/processImportDeclaration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,4DA2BC;AA7CD,gDAAkC;AAClC,8DAAoE;AACpE,kEAAwE;AAUxE;;;;;GAKG;AACH,SAAgB,wBAAwB,CACtC,aAAyB,EACzB,UAAsB,EACtB,YAA0B;IAE1B,MAAM,UAAU,GAAG,8BAAkB,CAAC,gCAAgC,CAAC;IACvE,MAAM,OAAO,GAAG,8BAAkB,CAAC,6BAA6B,CAAC;IAEjE,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,IAAA,0BAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAEtD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7C,IACE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBAC9B,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAClC,CAAC;gBACD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC3C,aAAa,EAAE,CAAC;oBAChB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACxC,UAAU,EAAE,CAAC;oBACb,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TransformState } from '../../state/types';
|
|
2
|
+
import { VisitNode } from '@babel/traverse';
|
|
3
|
+
import * as t from '@babel/types';
|
|
4
|
+
import { ImportAnchor } from './processImportDeclaration';
|
|
5
|
+
/**
|
|
6
|
+
* Process program for runtime translate pass:
|
|
7
|
+
* - On exit, reads collected strings and JSX content from StringCollector
|
|
8
|
+
* - Filters out derive entries (hash === '')
|
|
9
|
+
* - Injects import and await Promise.all([...]) with runtime translate calls
|
|
10
|
+
*/
|
|
11
|
+
export declare function processProgram({ state, isStringAlreadyImported, isJsxAlreadyImported, importAnchor, }: {
|
|
12
|
+
state: TransformState;
|
|
13
|
+
isStringAlreadyImported: () => boolean;
|
|
14
|
+
isJsxAlreadyImported: () => boolean;
|
|
15
|
+
importAnchor: ImportAnchor;
|
|
16
|
+
}): VisitNode<t.Node, t.Program>;
|
|
17
|
+
//# sourceMappingURL=processProgram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processProgram.d.ts","sourceRoot":"","sources":["../../../src/processing/runtime-translate/processProgram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,GACb,EAAE;IACD,KAAK,EAAE,cAAc,CAAC;IACtB,uBAAuB,EAAE,MAAM,OAAO,CAAC;IACvC,oBAAoB,EAAE,MAAM,OAAO,CAAC;IACpC,YAAY,EAAE,YAAY,CAAC;CAC5B,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAmD/B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processProgram = processProgram;
|
|
4
|
+
const injectRuntimeTranslateImport_1 = require("../../transform/runtime-translate/injectRuntimeTranslateImport");
|
|
5
|
+
const buildRuntimeTranslateCalls_1 = require("../../transform/runtime-translate/buildRuntimeTranslateCalls");
|
|
6
|
+
/**
|
|
7
|
+
* Process program for runtime translate pass:
|
|
8
|
+
* - On exit, reads collected strings and JSX content from StringCollector
|
|
9
|
+
* - Filters out derive entries (hash === '')
|
|
10
|
+
* - Injects import and await Promise.all([...]) with runtime translate calls
|
|
11
|
+
*/
|
|
12
|
+
function processProgram({ state, isStringAlreadyImported, isJsxAlreadyImported, importAnchor, }) {
|
|
13
|
+
return {
|
|
14
|
+
exit(path) {
|
|
15
|
+
// Read collected content, filtered by granular devHotReload config
|
|
16
|
+
const allStrings = state.settings.devHotReload.strings
|
|
17
|
+
? [
|
|
18
|
+
...state.stringCollector.getAllTranslationContent(),
|
|
19
|
+
...state.stringCollector.getRuntimeOnlyContent(),
|
|
20
|
+
].filter((entry) => entry.hash !== '')
|
|
21
|
+
: [];
|
|
22
|
+
const allJsx = state.settings.devHotReload.jsx
|
|
23
|
+
? state.stringCollector
|
|
24
|
+
.getAllTranslationJsx()
|
|
25
|
+
.filter((entry) => entry.hash !== '')
|
|
26
|
+
: [];
|
|
27
|
+
// Nothing to inject
|
|
28
|
+
if (allStrings.length === 0 && allJsx.length === 0)
|
|
29
|
+
return;
|
|
30
|
+
// Build the await Promise.all([...]) statement
|
|
31
|
+
const promiseAllStatement = (0, buildRuntimeTranslateCalls_1.buildRuntimeTranslateCalls)({
|
|
32
|
+
strings: allStrings,
|
|
33
|
+
jsx: allJsx,
|
|
34
|
+
});
|
|
35
|
+
// Inject import with only the specifiers that are needed and not already imported
|
|
36
|
+
const needsString = allStrings.length > 0 && !isStringAlreadyImported();
|
|
37
|
+
const needsJsx = allJsx.length > 0 && !isJsxAlreadyImported();
|
|
38
|
+
if (needsString || needsJsx) {
|
|
39
|
+
const injectedPath = (0, injectRuntimeTranslateImport_1.injectRuntimeTranslateImport)(path, {
|
|
40
|
+
needsString,
|
|
41
|
+
needsJsx,
|
|
42
|
+
});
|
|
43
|
+
if (injectedPath) {
|
|
44
|
+
importAnchor.path = injectedPath;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// Insert the Promise.all statement right after the runtime translate import
|
|
48
|
+
if (importAnchor.path) {
|
|
49
|
+
importAnchor.path.insertAfter(promiseAllStatement);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
path.unshiftContainer('body', promiseAllStatement);
|
|
53
|
+
}
|
|
54
|
+
// Track that we injected runtime translate calls
|
|
55
|
+
state.statistics.runtimeTranslateCount =
|
|
56
|
+
allStrings.length + allJsx.length;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=processProgram.js.map
|