@formatjs/ts-transformer 2.8.0 → 2.10.1
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.
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
// /home/longlho/.cache/bazel/_bazel_longlho/576c18efaac10246ec115c72af79fca6/sandbox/linux-sandbox/
|
|
2
|
+
// /home/longlho/.cache/bazel/_bazel_longlho/576c18efaac10246ec115c72af79fca6/sandbox/linux-sandbox/3224/execroot/formatjs/node_modules/@bazel/typescript/internal/ts_project_options_validator.js checked attributes for //packages/ts-transformer:dist-base
|
|
3
3
|
// composite: false
|
|
4
4
|
// declaration: true
|
|
5
5
|
// declaration_map: true
|
|
6
6
|
// incremental: false
|
|
7
7
|
// source_map: false
|
|
8
8
|
// emit_declaration_only: false
|
|
9
|
+
// ts_build_info_file:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@formatjs/ts-transformer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "TS Compiler transformer for formatjs",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"react-intl"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"intl-messageformat-parser": "^6.0.
|
|
20
|
+
"intl-messageformat-parser": "^6.0.7",
|
|
21
21
|
"typescript": "^4.0"
|
|
22
22
|
},
|
|
23
23
|
"author": "Long Ho <holevietlong@gmail.com>",
|
package/src/transform.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as typescript from 'typescript';
|
|
2
2
|
import { MessageDescriptor } from './types';
|
|
3
3
|
export declare type Extractor = (filePath: string, msgs: MessageDescriptor[]) => void;
|
|
4
4
|
export declare type MetaExtractor = (filePath: string, meta: Record<string, string>) => void;
|
|
5
5
|
export declare type InterpolateNameFn = (id?: string, defaultMessage?: string, description?: string, filePath?: string) => string;
|
|
6
|
+
declare type TypeScript = typeof typescript;
|
|
6
7
|
export interface Opts {
|
|
7
8
|
/**
|
|
8
9
|
* Parse specific additional custom pragma.
|
|
@@ -66,5 +67,7 @@ export interface Opts {
|
|
|
66
67
|
*/
|
|
67
68
|
ast?: boolean;
|
|
68
69
|
}
|
|
69
|
-
export declare function
|
|
70
|
+
export declare function transformWithTs(ts: TypeScript, opts: Opts): typescript.TransformerFactory<typescript.SourceFile>;
|
|
71
|
+
export declare function transform(opts: Opts): typescript.TransformerFactory<typescript.SourceFile>;
|
|
72
|
+
export {};
|
|
70
73
|
//# sourceMappingURL=transform.d.ts.map
|
package/src/transform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../../../packages/ts-transformer/src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../../../packages/ts-transformer/src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAG1C,oBAAY,SAAS,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;AAC9E,oBAAY,aAAa,GAAG,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,IAAI,CAAC;AAEV,oBAAY,iBAAiB,GAAG,CAC9B,EAAE,CAAC,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,KACd,MAAM,CAAC;AAQZ,aAAK,UAAU,GAAG,OAAO,UAAU,CAAC;AAmCpC,MAAM,WAAW,IAAI;IACnB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAC1C;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAwZD,wBAAgB,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,wDAwBzD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,wDAEnC"}
|
package/src/transform.js
CHANGED
|
@@ -37,8 +37,8 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
|
37
37
|
return r;
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.transform = void 0;
|
|
41
|
-
var
|
|
40
|
+
exports.transform = exports.transformWithTs = void 0;
|
|
41
|
+
var typescript = __importStar(require("typescript"));
|
|
42
42
|
var interpolate_name_1 = require("./interpolate-name");
|
|
43
43
|
var intl_messageformat_parser_1 = require("intl-messageformat-parser");
|
|
44
44
|
var MESSAGE_DESC_KEYS = [
|
|
@@ -46,7 +46,7 @@ var MESSAGE_DESC_KEYS = [
|
|
|
46
46
|
'defaultMessage',
|
|
47
47
|
'description',
|
|
48
48
|
];
|
|
49
|
-
function primitiveToTSNode(v) {
|
|
49
|
+
function primitiveToTSNode(ts, v) {
|
|
50
50
|
return typeof v === 'string'
|
|
51
51
|
? ts.createStringLiteral(v)
|
|
52
52
|
: typeof v === 'number'
|
|
@@ -57,30 +57,30 @@ function primitiveToTSNode(v) {
|
|
|
57
57
|
: ts.createFalse()
|
|
58
58
|
: undefined;
|
|
59
59
|
}
|
|
60
|
-
function objToTSNode(obj) {
|
|
60
|
+
function objToTSNode(ts, obj) {
|
|
61
61
|
var props = Object.entries(obj).map(function (_a) {
|
|
62
62
|
var k = _a[0], v = _a[1];
|
|
63
|
-
return ts.createPropertyAssignment(k, primitiveToTSNode(v) ||
|
|
63
|
+
return ts.createPropertyAssignment(k, primitiveToTSNode(ts, v) ||
|
|
64
64
|
(Array.isArray(v)
|
|
65
|
-
? ts.createArrayLiteral(v.map(objToTSNode))
|
|
65
|
+
? ts.createArrayLiteral(v.map(function (n) { return objToTSNode(ts, n); }))
|
|
66
66
|
: typeof v === 'object'
|
|
67
|
-
? objToTSNode(v)
|
|
67
|
+
? objToTSNode(ts, v)
|
|
68
68
|
: ts.createNull()));
|
|
69
69
|
});
|
|
70
70
|
return ts.createObjectLiteral(props);
|
|
71
71
|
}
|
|
72
|
-
function messageASTToTSNode(ast) {
|
|
73
|
-
return ts.createArrayLiteral(ast.map(function (el) { return objToTSNode(el); }));
|
|
72
|
+
function messageASTToTSNode(ts, ast) {
|
|
73
|
+
return ts.createArrayLiteral(ast.map(function (el) { return objToTSNode(ts, el); }));
|
|
74
74
|
}
|
|
75
75
|
var DEFAULT_OPTS = {
|
|
76
76
|
onMsgExtracted: function () { return undefined; },
|
|
77
77
|
onMetaExtracted: function () { return undefined; },
|
|
78
78
|
};
|
|
79
|
-
function isMultipleMessageDecl(node) {
|
|
79
|
+
function isMultipleMessageDecl(ts, node) {
|
|
80
80
|
return (ts.isIdentifier(node.expression) &&
|
|
81
81
|
node.expression.text === 'defineMessages');
|
|
82
82
|
}
|
|
83
|
-
function isSingularMessageDecl(node, additionalComponentNames) {
|
|
83
|
+
function isSingularMessageDecl(ts, node, additionalComponentNames) {
|
|
84
84
|
var compNames = new Set(__spreadArrays([
|
|
85
85
|
'FormattedMessage',
|
|
86
86
|
'defineMessage'
|
|
@@ -98,7 +98,7 @@ function isSingularMessageDecl(node, additionalComponentNames) {
|
|
|
98
98
|
}
|
|
99
99
|
return compNames.has(fnName);
|
|
100
100
|
}
|
|
101
|
-
function extractMessageDescriptor(node, _a, sf) {
|
|
101
|
+
function extractMessageDescriptor(ts, node, _a, sf) {
|
|
102
102
|
var overrideIdFn = _a.overrideIdFn, extractSourceLocation = _a.extractSourceLocation;
|
|
103
103
|
var properties = undefined;
|
|
104
104
|
if (ts.isObjectLiteralExpression(node)) {
|
|
@@ -116,28 +116,42 @@ function extractMessageDescriptor(node, _a, sf) {
|
|
|
116
116
|
var initializer = ts.isPropertyAssignment(prop) || ts.isJsxAttribute(prop)
|
|
117
117
|
? prop.initializer
|
|
118
118
|
: undefined;
|
|
119
|
-
if (
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
119
|
+
if (name && ts.isIdentifier(name) && initializer) {
|
|
120
|
+
if (ts.isStringLiteral(initializer)) {
|
|
121
|
+
switch (name.text) {
|
|
122
|
+
case 'id':
|
|
123
|
+
msg.id = initializer.text;
|
|
124
|
+
break;
|
|
125
|
+
case 'defaultMessage':
|
|
126
|
+
msg.defaultMessage = initializer.text;
|
|
127
|
+
break;
|
|
128
|
+
case 'description':
|
|
129
|
+
msg.description = initializer.text;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (ts.isNoSubstitutionTemplateLiteral(initializer)) {
|
|
134
|
+
switch (name.text) {
|
|
135
|
+
case 'id':
|
|
136
|
+
msg.id = initializer.text;
|
|
137
|
+
break;
|
|
138
|
+
case 'defaultMessage':
|
|
139
|
+
msg.defaultMessage = initializer.text;
|
|
140
|
+
break;
|
|
141
|
+
case 'description':
|
|
142
|
+
msg.description = initializer.text;
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
135
146
|
}
|
|
136
147
|
});
|
|
137
148
|
// We extracted nothing
|
|
138
149
|
if (!msg.defaultMessage && !msg.id) {
|
|
139
150
|
return;
|
|
140
151
|
}
|
|
152
|
+
if (msg.defaultMessage) {
|
|
153
|
+
msg.defaultMessage = msg.defaultMessage.trim().replace(/\s+/gm, ' ');
|
|
154
|
+
}
|
|
141
155
|
if (msg.defaultMessage && overrideIdFn) {
|
|
142
156
|
switch (typeof overrideIdFn) {
|
|
143
157
|
case 'string':
|
|
@@ -164,7 +178,7 @@ function extractMessageDescriptor(node, _a, sf) {
|
|
|
164
178
|
* @param node
|
|
165
179
|
* @param sf
|
|
166
180
|
*/
|
|
167
|
-
function isIntlFormatMessageCall(node) {
|
|
181
|
+
function isIntlFormatMessageCall(ts, node) {
|
|
168
182
|
var method = node.expression;
|
|
169
183
|
// Handle intl.formatMessage()
|
|
170
184
|
if (ts.isPropertyAccessExpression(method)) {
|
|
@@ -177,19 +191,19 @@ function isIntlFormatMessageCall(node) {
|
|
|
177
191
|
// Handle formatMessage()
|
|
178
192
|
return ts.isIdentifier(method) && method.text === 'formatMessage';
|
|
179
193
|
}
|
|
180
|
-
function extractMessageFromJsxComponent(node, opts, sf) {
|
|
194
|
+
function extractMessageFromJsxComponent(ts, node, opts, sf) {
|
|
181
195
|
var onMsgExtracted = opts.onMsgExtracted;
|
|
182
|
-
if (!isSingularMessageDecl(node, opts.additionalComponentNames || [])) {
|
|
196
|
+
if (!isSingularMessageDecl(ts, node, opts.additionalComponentNames || [])) {
|
|
183
197
|
return node;
|
|
184
198
|
}
|
|
185
|
-
var msg = extractMessageDescriptor(node, opts, sf);
|
|
199
|
+
var msg = extractMessageDescriptor(ts, node, opts, sf);
|
|
186
200
|
if (!msg) {
|
|
187
201
|
return node;
|
|
188
202
|
}
|
|
189
203
|
if (typeof onMsgExtracted === 'function') {
|
|
190
204
|
onMsgExtracted(sf.fileName, [msg]);
|
|
191
205
|
}
|
|
192
|
-
var attrs = setAttributesInJsxAttributes(node.attributes, {
|
|
206
|
+
var attrs = setAttributesInJsxAttributes(ts, node.attributes, {
|
|
193
207
|
defaultMessage: opts.removeDefaultMessage
|
|
194
208
|
? undefined
|
|
195
209
|
: msg.defaultMessage,
|
|
@@ -199,13 +213,13 @@ function extractMessageFromJsxComponent(node, opts, sf) {
|
|
|
199
213
|
? ts.createJsxOpeningElement(node.tagName, node.typeArguments, attrs)
|
|
200
214
|
: ts.createJsxSelfClosingElement(node.tagName, node.typeArguments, attrs);
|
|
201
215
|
}
|
|
202
|
-
function setAttributesInObject(node, msg, ast) {
|
|
216
|
+
function setAttributesInObject(ts, node, msg, ast) {
|
|
203
217
|
var newProps = __spreadArrays([
|
|
204
218
|
ts.createPropertyAssignment('id', ts.createStringLiteral(msg.id))
|
|
205
219
|
], (msg.defaultMessage
|
|
206
220
|
? [
|
|
207
221
|
ts.createPropertyAssignment('defaultMessage', ast
|
|
208
|
-
? messageASTToTSNode(intl_messageformat_parser_1.parse(msg.defaultMessage))
|
|
222
|
+
? messageASTToTSNode(ts, intl_messageformat_parser_1.parse(msg.defaultMessage))
|
|
209
223
|
: ts.createStringLiteral(msg.defaultMessage)),
|
|
210
224
|
]
|
|
211
225
|
: []));
|
|
@@ -222,13 +236,13 @@ function setAttributesInObject(node, msg, ast) {
|
|
|
222
236
|
}
|
|
223
237
|
return ts.createObjectLiteral(ts.createNodeArray(newProps));
|
|
224
238
|
}
|
|
225
|
-
function setAttributesInJsxAttributes(node, msg, ast) {
|
|
239
|
+
function setAttributesInJsxAttributes(ts, node, msg, ast) {
|
|
226
240
|
var newProps = __spreadArrays([
|
|
227
241
|
ts.createJsxAttribute(ts.createIdentifier('id'), ts.createStringLiteral(msg.id))
|
|
228
242
|
], (msg.defaultMessage
|
|
229
243
|
? [
|
|
230
244
|
ts.createJsxAttribute(ts.createIdentifier('defaultMessage'), ast
|
|
231
|
-
? ts.createJsxExpression(undefined, messageASTToTSNode(intl_messageformat_parser_1.parse(msg.defaultMessage)))
|
|
245
|
+
? ts.createJsxExpression(undefined, messageASTToTSNode(ts, intl_messageformat_parser_1.parse(msg.defaultMessage)))
|
|
232
246
|
: ts.createStringLiteral(msg.defaultMessage)),
|
|
233
247
|
]
|
|
234
248
|
: []));
|
|
@@ -245,9 +259,9 @@ function setAttributesInJsxAttributes(node, msg, ast) {
|
|
|
245
259
|
}
|
|
246
260
|
return ts.createJsxAttributes(ts.createNodeArray(newProps));
|
|
247
261
|
}
|
|
248
|
-
function extractMessagesFromCallExpression(node, opts, sf) {
|
|
262
|
+
function extractMessagesFromCallExpression(ts, node, opts, sf) {
|
|
249
263
|
var onMsgExtracted = opts.onMsgExtracted;
|
|
250
|
-
if (isMultipleMessageDecl(node)) {
|
|
264
|
+
if (isMultipleMessageDecl(ts, node)) {
|
|
251
265
|
var _a = node.arguments, arg = _a[0], restArgs = _a.slice(1);
|
|
252
266
|
var descriptorsObj = void 0;
|
|
253
267
|
if (ts.isObjectLiteralExpression(arg)) {
|
|
@@ -265,7 +279,7 @@ function extractMessagesFromCallExpression(node, opts, sf) {
|
|
|
265
279
|
})
|
|
266
280
|
.map(function (prop) {
|
|
267
281
|
return ts.isObjectLiteralExpression(prop.initializer) &&
|
|
268
|
-
extractMessageDescriptor(prop.initializer, opts, sf);
|
|
282
|
+
extractMessageDescriptor(ts, prop.initializer, opts, sf);
|
|
269
283
|
})
|
|
270
284
|
.filter(function (msg) { return !!msg; });
|
|
271
285
|
if (!msgs_1.length) {
|
|
@@ -279,7 +293,7 @@ function extractMessagesFromCallExpression(node, opts, sf) {
|
|
|
279
293
|
!ts.isObjectLiteralExpression(prop.initializer)) {
|
|
280
294
|
return prop;
|
|
281
295
|
}
|
|
282
|
-
return ts.createPropertyAssignment(prop.name, setAttributesInObject(prop.initializer, {
|
|
296
|
+
return ts.createPropertyAssignment(prop.name, setAttributesInObject(ts, prop.initializer, {
|
|
283
297
|
defaultMessage: opts.removeDefaultMessage
|
|
284
298
|
? undefined
|
|
285
299
|
: msgs_1[i].defaultMessage,
|
|
@@ -290,11 +304,11 @@ function extractMessagesFromCallExpression(node, opts, sf) {
|
|
|
290
304
|
return ts.createCall(node.expression, node.typeArguments, ts.createNodeArray(__spreadArrays([clonedDescriptorsObj], restArgs)));
|
|
291
305
|
}
|
|
292
306
|
}
|
|
293
|
-
else if (isSingularMessageDecl(node, opts.additionalComponentNames || []) ||
|
|
294
|
-
(opts.extractFromFormatMessageCall && isIntlFormatMessageCall(node))) {
|
|
307
|
+
else if (isSingularMessageDecl(ts, node, opts.additionalComponentNames || []) ||
|
|
308
|
+
(opts.extractFromFormatMessageCall && isIntlFormatMessageCall(ts, node))) {
|
|
295
309
|
var _b = node.arguments, descriptorsObj = _b[0], restArgs = _b.slice(1);
|
|
296
310
|
if (ts.isObjectLiteralExpression(descriptorsObj)) {
|
|
297
|
-
var msg = extractMessageDescriptor(descriptorsObj, opts, sf);
|
|
311
|
+
var msg = extractMessageDescriptor(ts, descriptorsObj, opts, sf);
|
|
298
312
|
if (!msg) {
|
|
299
313
|
return node;
|
|
300
314
|
}
|
|
@@ -302,7 +316,7 @@ function extractMessagesFromCallExpression(node, opts, sf) {
|
|
|
302
316
|
onMsgExtracted(sf.fileName, [msg]);
|
|
303
317
|
}
|
|
304
318
|
return ts.createCall(node.expression, node.typeArguments, ts.createNodeArray(__spreadArrays([
|
|
305
|
-
setAttributesInObject(descriptorsObj, {
|
|
319
|
+
setAttributesInObject(ts, descriptorsObj, {
|
|
306
320
|
defaultMessage: opts.removeDefaultMessage
|
|
307
321
|
? undefined
|
|
308
322
|
: msg.defaultMessage,
|
|
@@ -314,18 +328,18 @@ function extractMessagesFromCallExpression(node, opts, sf) {
|
|
|
314
328
|
return node;
|
|
315
329
|
}
|
|
316
330
|
var PRAGMA_REGEX = /^\/\/ @([^\s]*) (.*)$/m;
|
|
317
|
-
function getVisitor(ctx, sf, opts) {
|
|
331
|
+
function getVisitor(ts, ctx, sf, opts) {
|
|
318
332
|
var visitor = function (node) {
|
|
319
333
|
var newNode = ts.isCallExpression(node)
|
|
320
|
-
? extractMessagesFromCallExpression(node, opts, sf)
|
|
334
|
+
? extractMessagesFromCallExpression(ts, node, opts, sf)
|
|
321
335
|
: ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)
|
|
322
|
-
? extractMessageFromJsxComponent(node, opts, sf)
|
|
336
|
+
? extractMessageFromJsxComponent(ts, node, opts, sf)
|
|
323
337
|
: node;
|
|
324
338
|
return ts.visitEachChild(newNode, visitor, ctx);
|
|
325
339
|
};
|
|
326
340
|
return visitor;
|
|
327
341
|
}
|
|
328
|
-
function
|
|
342
|
+
function transformWithTs(ts, opts) {
|
|
329
343
|
opts = __assign(__assign({}, DEFAULT_OPTS), opts);
|
|
330
344
|
var transformFn = function (ctx) {
|
|
331
345
|
return function (sf) {
|
|
@@ -345,9 +359,13 @@ function transform(opts) {
|
|
|
345
359
|
}
|
|
346
360
|
}
|
|
347
361
|
}
|
|
348
|
-
return ts.visitNode(sf, getVisitor(ctx, sf, opts));
|
|
362
|
+
return ts.visitNode(sf, getVisitor(ts, ctx, sf, opts));
|
|
349
363
|
};
|
|
350
364
|
};
|
|
351
365
|
return transformFn;
|
|
352
366
|
}
|
|
367
|
+
exports.transformWithTs = transformWithTs;
|
|
368
|
+
function transform(opts) {
|
|
369
|
+
return transformWithTs(typescript, opts);
|
|
370
|
+
}
|
|
353
371
|
exports.transform = transform;
|