@formatjs/ts-transformer 3.13.23 → 3.13.25

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/README.md CHANGED
@@ -1,3 +1,3 @@
1
1
  # @formatjs/ts-transformer
2
2
 
3
- We've migrated the docs to https://formatjs.io/docs/tooling/ts-transformer.
3
+ We've migrated the docs to https://formatjs.github.io/docs/tooling/ts-transformer.
@@ -0,0 +1,3 @@
1
+ export * from './src/transform';
2
+ export * from './src/types';
3
+ export * from './src/interpolate-name';
@@ -0,0 +1,3 @@
1
+ export * from './src/transform';
2
+ export * from './src/types';
3
+ export * from './src/interpolate-name';
@@ -0,0 +1,3 @@
1
+ export declare function debug(message: string, ...args: any[]): Promise<void>;
2
+ export declare function warn(message: string, ...args: any[]): void;
3
+ export declare function error(message: string, ...args: any[]): void;
@@ -0,0 +1,25 @@
1
+ import { green, red, yellow } from 'chalk';
2
+ import { format } from 'util';
3
+ const LEVEL_COLORS = {
4
+ debug: green,
5
+ warn: yellow,
6
+ error: red,
7
+ };
8
+ function label(level, message) {
9
+ return `[@formatjs/ts-transformer] [${LEVEL_COLORS[level](level.toUpperCase())}] ${message}`;
10
+ }
11
+ export async function debug(message, ...args) {
12
+ if (process.env.LOG_LEVEL !== 'debug') {
13
+ return;
14
+ }
15
+ console.error(format(label('debug', message), ...args));
16
+ console.error('\n');
17
+ }
18
+ export function warn(message, ...args) {
19
+ console.error(format(label('warn', message), ...args));
20
+ console.error('\n');
21
+ }
22
+ export function error(message, ...args) {
23
+ console.error(format(label('error', message), ...args));
24
+ console.error('\n');
25
+ }
@@ -0,0 +1,14 @@
1
+ export interface LoaderContext {
2
+ resourceQuery?: string;
3
+ resourcePath?: string;
4
+ options?: {
5
+ customInterpolateName(this: LoaderContext, url: string, name: string | NameFn, options: Options): string;
6
+ };
7
+ }
8
+ export interface Options {
9
+ context?: string;
10
+ content?: string;
11
+ regExp?: RegExp;
12
+ }
13
+ export type NameFn = (resourcePath?: string, resourceQuery?: string) => string;
14
+ export declare function interpolateName(loaderContext: LoaderContext, name: string | NameFn, options: Options): string;
@@ -0,0 +1,85 @@
1
+ import { createHash } from 'crypto';
2
+ import * as path from 'path';
3
+ function getHashDigest(content, hashType = 'md5', digestType = 'hex', length = 9999) {
4
+ const hasher = createHash(hashType);
5
+ hasher.update(content);
6
+ return hasher.digest(digestType).slice(0, length);
7
+ }
8
+ export function interpolateName(loaderContext, name, options) {
9
+ let filename;
10
+ const hasQuery = loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1;
11
+ if (typeof name === 'function') {
12
+ filename = name(loaderContext.resourcePath, hasQuery ? loaderContext.resourceQuery : undefined);
13
+ }
14
+ else {
15
+ filename = name || '[hash].[ext]';
16
+ }
17
+ const context = options.context;
18
+ const content = options.content;
19
+ const regExp = options.regExp;
20
+ let ext = 'bin';
21
+ let basename = 'file';
22
+ let directory = '';
23
+ let folder = '';
24
+ let query = '';
25
+ if (loaderContext.resourcePath) {
26
+ const parsed = path.parse(loaderContext.resourcePath);
27
+ let resourcePath = loaderContext.resourcePath;
28
+ if (parsed.ext) {
29
+ ext = parsed.ext.slice(1);
30
+ }
31
+ if (parsed.dir) {
32
+ basename = parsed.name;
33
+ resourcePath = parsed.dir + path.sep;
34
+ }
35
+ if (typeof context !== 'undefined') {
36
+ directory = path
37
+ .relative(context, resourcePath + '_')
38
+ .replace(/\\/g, '/')
39
+ .replace(/\.\.(\/)?/g, '_$1');
40
+ directory = directory.slice(0, -1);
41
+ }
42
+ else {
43
+ directory = resourcePath.replace(/\\/g, '/').replace(/\.\.(\/)?/g, '_$1');
44
+ }
45
+ if (directory.length === 1) {
46
+ directory = '';
47
+ }
48
+ else if (directory.length > 1) {
49
+ folder = path.basename(directory);
50
+ }
51
+ }
52
+ if (loaderContext.resourceQuery && loaderContext.resourceQuery.length > 1) {
53
+ query = loaderContext.resourceQuery;
54
+ const hashIdx = query.indexOf('#');
55
+ if (hashIdx >= 0) {
56
+ query = query.slice(0, hashIdx);
57
+ }
58
+ }
59
+ let url = filename;
60
+ if (content) {
61
+ // Match hash template
62
+ url = url
63
+ // `hash` and `contenthash` are same in `loader-utils` context
64
+ // let's keep `hash` for backward compatibility
65
+ .replace(/\[(?:([^:\]]+):)?(?:hash|contenthash)(?::([a-z]+\d*[a-z]*))?(?::(\d+))?\]/gi, (_, hashType, digestType, maxLength) => getHashDigest(content, hashType, digestType, parseInt(maxLength, 10)));
66
+ }
67
+ url = url
68
+ .replace(/\[ext\]/gi, () => ext)
69
+ .replace(/\[name\]/gi, () => basename)
70
+ .replace(/\[path\]/gi, () => directory)
71
+ .replace(/\[folder\]/gi, () => folder)
72
+ .replace(/\[query\]/gi, () => query);
73
+ if (regExp && loaderContext.resourcePath) {
74
+ const match = loaderContext.resourcePath.match(new RegExp(regExp));
75
+ match &&
76
+ match.forEach((matched, i) => {
77
+ url = url.replace(new RegExp('\\[' + i + '\\]', 'ig'), matched);
78
+ });
79
+ }
80
+ if (typeof loaderContext.options === 'object' &&
81
+ typeof loaderContext.options.customInterpolateName === 'function') {
82
+ url = loaderContext.options.customInterpolateName.call(loaderContext, url, name, options);
83
+ }
84
+ return url;
85
+ }
@@ -0,0 +1,77 @@
1
+ import * as typescript from 'typescript';
2
+ import { MessageDescriptor } from './types';
3
+ export type Extractor = (filePath: string, msgs: MessageDescriptor[]) => void;
4
+ export type MetaExtractor = (filePath: string, meta: Record<string, string>) => void;
5
+ export type InterpolateNameFn = (id?: MessageDescriptor['id'], defaultMessage?: MessageDescriptor['defaultMessage'], description?: MessageDescriptor['description'], filePath?: string) => string;
6
+ type TypeScript = typeof typescript;
7
+ export interface Opts {
8
+ /**
9
+ * Parse specific additional custom pragma.
10
+ * This allows you to tag certain file with metadata such as `project`.
11
+ * For example with this file:
12
+ * ```tsx
13
+ * // @intl-meta project:my-custom-project
14
+ * import {FormattedMessage} from 'react-intl';
15
+ * <FormattedMessage defaultMessage="foo" id="bar" />;
16
+ * ```
17
+ * and with option `{pragma: "@intl-meta"}`,
18
+ * we'll parse out `// @intl-meta project:my-custom-project`
19
+ * into `{project: 'my-custom-project'}` in the result file.
20
+ */
21
+ pragma?: string;
22
+ /**
23
+ * Whether the metadata about the location of the message in the source file
24
+ * should be extracted. If `true`, then `file`, `start`, and `end`
25
+ * fields will exist for each extracted message descriptors.
26
+ * Defaults to `false`.
27
+ */
28
+ extractSourceLocation?: boolean;
29
+ /**
30
+ * Remove `defaultMessage` field in generated js after extraction.
31
+ */
32
+ removeDefaultMessage?: boolean;
33
+ /**
34
+ * Additional component names to extract messages from,
35
+ * e.g: `['FormattedFooBarMessage']`.
36
+ */
37
+ additionalComponentNames?: string[];
38
+ /**
39
+ * Additional function names to extract messages from,
40
+ * e.g: `['formatMessage', '$t']`
41
+ * Default to `['formatMessage']`
42
+ */
43
+ additionalFunctionNames?: string[];
44
+ /**
45
+ * Callback function that gets called everytime we encountered something
46
+ * that looks like a MessageDescriptor
47
+ *
48
+ * @type {Extractor}
49
+ * @memberof Opts
50
+ */
51
+ onMsgExtracted?: Extractor;
52
+ /**
53
+ * Callback function that gets called when we successfully parsed meta
54
+ * declared in pragma
55
+ */
56
+ onMetaExtracted?: MetaExtractor;
57
+ /**
58
+ * webpack-style name interpolation.
59
+ * Can also be a string like '[sha512:contenthash:hex:6]'
60
+ *
61
+ * @type {(InterpolateNameFn | string)}
62
+ * @memberof Opts
63
+ */
64
+ overrideIdFn?: InterpolateNameFn | string;
65
+ /**
66
+ * Whether to compile `defaultMessage` to AST.
67
+ * This is no-op if `removeDefaultMessage` is `true`
68
+ */
69
+ ast?: boolean;
70
+ /**
71
+ * Whether to preserve whitespace and newlines.
72
+ */
73
+ preserveWhitespace?: boolean;
74
+ }
75
+ export declare function transformWithTs(ts: TypeScript, opts: Opts): typescript.TransformerFactory<typescript.SourceFile>;
76
+ export declare function transform(opts: Opts): typescript.TransformerFactory<typescript.SourceFile>;
77
+ export {};
@@ -0,0 +1,474 @@
1
+ import { parse } from '@formatjs/icu-messageformat-parser';
2
+ import stringify from 'json-stable-stringify';
3
+ import * as typescript from 'typescript';
4
+ import { debug } from './console_utils';
5
+ import { interpolateName } from './interpolate-name';
6
+ const MESSAGE_DESC_KEYS = [
7
+ 'id',
8
+ 'defaultMessage',
9
+ 'description',
10
+ ];
11
+ function primitiveToTSNode(factory, v) {
12
+ return typeof v === 'string'
13
+ ? factory.createStringLiteral(v)
14
+ : typeof v === 'number'
15
+ ? factory.createNumericLiteral(v + '')
16
+ : typeof v === 'boolean'
17
+ ? v
18
+ ? factory.createTrue()
19
+ : factory.createFalse()
20
+ : undefined;
21
+ }
22
+ function isValidIdentifier(k) {
23
+ try {
24
+ new Function(`return {${k}:1}`);
25
+ return true;
26
+ }
27
+ catch (e) {
28
+ return false;
29
+ }
30
+ }
31
+ function objToTSNode(factory, obj) {
32
+ if (typeof obj === 'object' && !obj) {
33
+ return factory.createNull();
34
+ }
35
+ const props = Object.entries(obj)
36
+ .filter(([_, v]) => typeof v !== 'undefined')
37
+ .map(([k, v]) => factory.createPropertyAssignment(isValidIdentifier(k) ? k : factory.createStringLiteral(k), primitiveToTSNode(factory, v) ||
38
+ (Array.isArray(v)
39
+ ? factory.createArrayLiteralExpression(v
40
+ .filter(n => typeof n !== 'undefined')
41
+ .map(n => objToTSNode(factory, n)))
42
+ : objToTSNode(factory, v))));
43
+ return factory.createObjectLiteralExpression(props);
44
+ }
45
+ function messageASTToTSNode(factory, ast) {
46
+ return factory.createArrayLiteralExpression(ast.map(el => objToTSNode(factory, el)));
47
+ }
48
+ function literalToObj(ts, n) {
49
+ if (ts.isNumericLiteral(n)) {
50
+ return +n.text;
51
+ }
52
+ if (ts.isStringLiteral(n)) {
53
+ return n.text;
54
+ }
55
+ if (n.kind === ts.SyntaxKind.TrueKeyword) {
56
+ return true;
57
+ }
58
+ if (n.kind === ts.SyntaxKind.FalseKeyword) {
59
+ return false;
60
+ }
61
+ }
62
+ function objectLiteralExpressionToObj(ts, obj) {
63
+ return obj.properties.reduce((all, prop) => {
64
+ if (ts.isPropertyAssignment(prop) && prop.name) {
65
+ if (ts.isIdentifier(prop.name)) {
66
+ all[prop.name.escapedText.toString()] = literalToObj(ts, prop.initializer);
67
+ }
68
+ else if (ts.isStringLiteral(prop.name)) {
69
+ all[prop.name.text] = literalToObj(ts, prop.initializer);
70
+ }
71
+ }
72
+ return all;
73
+ }, {});
74
+ }
75
+ const DEFAULT_OPTS = {
76
+ onMsgExtracted: () => undefined,
77
+ onMetaExtracted: () => undefined,
78
+ };
79
+ function isMultipleMessageDecl(ts, node) {
80
+ return (ts.isIdentifier(node.expression) &&
81
+ node.expression.text === 'defineMessages');
82
+ }
83
+ function isSingularMessageDecl(ts, node, additionalComponentNames) {
84
+ const compNames = new Set([
85
+ 'FormattedMessage',
86
+ 'defineMessage',
87
+ 'formatMessage',
88
+ '$formatMessage',
89
+ '$t',
90
+ ...additionalComponentNames,
91
+ ]);
92
+ let fnName = '';
93
+ if (ts.isCallExpression(node) && ts.isIdentifier(node.expression)) {
94
+ fnName = node.expression.text;
95
+ }
96
+ else if (ts.isJsxOpeningElement(node) && ts.isIdentifier(node.tagName)) {
97
+ fnName = node.tagName.text;
98
+ }
99
+ else if (ts.isJsxSelfClosingElement(node) &&
100
+ ts.isIdentifier(node.tagName)) {
101
+ fnName = node.tagName.text;
102
+ }
103
+ return compNames.has(fnName);
104
+ }
105
+ function evaluateStringConcat(ts, node) {
106
+ const { right, left } = node;
107
+ if (!ts.isStringLiteral(right)) {
108
+ return ['', false];
109
+ }
110
+ if (ts.isStringLiteral(left)) {
111
+ return [left.text + right.text, true];
112
+ }
113
+ if (ts.isBinaryExpression(left)) {
114
+ const [result, isStatic] = evaluateStringConcat(ts, left);
115
+ return [result + right.text, isStatic];
116
+ }
117
+ return ['', false];
118
+ }
119
+ function extractMessageDescriptor(ts, node, { overrideIdFn, extractSourceLocation, preserveWhitespace }, sf) {
120
+ let properties = undefined;
121
+ if (ts.isObjectLiteralExpression(node)) {
122
+ properties = node.properties;
123
+ }
124
+ else if (ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)) {
125
+ properties = node.attributes.properties;
126
+ }
127
+ const msg = { id: '' };
128
+ if (!properties) {
129
+ return;
130
+ }
131
+ properties.forEach(prop => {
132
+ const { name } = prop;
133
+ const initializer = ts.isPropertyAssignment(prop) || ts.isJsxAttribute(prop)
134
+ ? prop.initializer
135
+ : undefined;
136
+ if (name && ts.isIdentifier(name) && initializer) {
137
+ // {id: 'id'}
138
+ if (ts.isStringLiteral(initializer)) {
139
+ switch (name.text) {
140
+ case 'id':
141
+ msg.id = initializer.text;
142
+ break;
143
+ case 'defaultMessage':
144
+ msg.defaultMessage = initializer.text;
145
+ break;
146
+ case 'description':
147
+ msg.description = initializer.text;
148
+ break;
149
+ }
150
+ }
151
+ // {id: `id`}
152
+ else if (ts.isNoSubstitutionTemplateLiteral(initializer)) {
153
+ switch (name.text) {
154
+ case 'id':
155
+ msg.id = initializer.text;
156
+ break;
157
+ case 'defaultMessage':
158
+ msg.defaultMessage = initializer.text;
159
+ break;
160
+ case 'description':
161
+ msg.description = initializer.text;
162
+ break;
163
+ }
164
+ }
165
+ else if (ts.isJsxExpression(initializer) && initializer.expression) {
166
+ // <FormattedMessage foo={'barbaz'} />
167
+ if (ts.isStringLiteral(initializer.expression)) {
168
+ switch (name.text) {
169
+ case 'id':
170
+ msg.id = initializer.expression.text;
171
+ break;
172
+ case 'defaultMessage':
173
+ msg.defaultMessage = initializer.expression.text;
174
+ break;
175
+ case 'description':
176
+ msg.description = initializer.expression.text;
177
+ break;
178
+ }
179
+ }
180
+ // description={{custom: 1}}
181
+ else if (ts.isObjectLiteralExpression(initializer.expression) &&
182
+ name.text === 'description') {
183
+ msg.description = objectLiteralExpressionToObj(ts, initializer.expression);
184
+ }
185
+ // <FormattedMessage foo={`bar`} />
186
+ else if (ts.isNoSubstitutionTemplateLiteral(initializer.expression)) {
187
+ const { expression } = initializer;
188
+ switch (name.text) {
189
+ case 'id':
190
+ msg.id = expression.text;
191
+ break;
192
+ case 'defaultMessage':
193
+ msg.defaultMessage = expression.text;
194
+ break;
195
+ case 'description':
196
+ msg.description = expression.text;
197
+ break;
198
+ }
199
+ }
200
+ // <FormattedMessage foo={'bar' + 'baz'} />
201
+ else if (ts.isBinaryExpression(initializer.expression)) {
202
+ const { expression } = initializer;
203
+ const [result, isStatic] = evaluateStringConcat(ts, expression);
204
+ if (isStatic) {
205
+ switch (name.text) {
206
+ case 'id':
207
+ msg.id = result;
208
+ break;
209
+ case 'defaultMessage':
210
+ msg.defaultMessage = result;
211
+ break;
212
+ case 'description':
213
+ msg.description = result;
214
+ break;
215
+ }
216
+ }
217
+ }
218
+ }
219
+ // {defaultMessage: 'asd' + bar'}
220
+ else if (ts.isBinaryExpression(initializer)) {
221
+ const [result, isStatic] = evaluateStringConcat(ts, initializer);
222
+ if (isStatic) {
223
+ switch (name.text) {
224
+ case 'id':
225
+ msg.id = result;
226
+ break;
227
+ case 'defaultMessage':
228
+ msg.defaultMessage = result;
229
+ break;
230
+ case 'description':
231
+ msg.description = result;
232
+ break;
233
+ }
234
+ }
235
+ }
236
+ // description: {custom: 1}
237
+ else if (ts.isObjectLiteralExpression(initializer) &&
238
+ name.text === 'description') {
239
+ msg.description = objectLiteralExpressionToObj(ts, initializer);
240
+ }
241
+ }
242
+ });
243
+ // We extracted nothing
244
+ if (!msg.defaultMessage && !msg.id) {
245
+ return;
246
+ }
247
+ if (msg.defaultMessage && !preserveWhitespace) {
248
+ msg.defaultMessage = msg.defaultMessage.trim().replace(/\s+/gm, ' ');
249
+ }
250
+ if (msg.defaultMessage && overrideIdFn) {
251
+ switch (typeof overrideIdFn) {
252
+ case 'string':
253
+ if (!msg.id) {
254
+ msg.id = interpolateName({ resourcePath: sf.fileName }, overrideIdFn, {
255
+ content: msg.description
256
+ ? `${msg.defaultMessage}#${typeof msg.description === 'string'
257
+ ? msg.description
258
+ : stringify(msg.description)}`
259
+ : msg.defaultMessage,
260
+ });
261
+ }
262
+ break;
263
+ case 'function':
264
+ msg.id = overrideIdFn(msg.id, msg.defaultMessage, msg.description, sf.fileName);
265
+ break;
266
+ }
267
+ }
268
+ if (extractSourceLocation) {
269
+ return {
270
+ ...msg,
271
+ file: sf.fileName,
272
+ start: node.pos,
273
+ end: node.end,
274
+ };
275
+ }
276
+ return msg;
277
+ }
278
+ /**
279
+ * Check if node is `foo.bar.formatMessage` node
280
+ * @param node
281
+ * @param sf
282
+ */
283
+ function isMemberMethodFormatMessageCall(ts, node, additionalFunctionNames) {
284
+ const fnNames = new Set([
285
+ 'formatMessage',
286
+ '$formatMessage',
287
+ ...additionalFunctionNames,
288
+ ]);
289
+ const method = node.expression;
290
+ // Handle foo.formatMessage()
291
+ if (ts.isPropertyAccessExpression(method)) {
292
+ return fnNames.has(method.name.text);
293
+ }
294
+ // Handle formatMessage()
295
+ return ts.isIdentifier(method) && fnNames.has(method.text);
296
+ }
297
+ function extractMessageFromJsxComponent(ts, factory, node, opts, sf) {
298
+ const { onMsgExtracted } = opts;
299
+ if (!isSingularMessageDecl(ts, node, opts.additionalComponentNames || [])) {
300
+ return node;
301
+ }
302
+ const msg = extractMessageDescriptor(ts, node, opts, sf);
303
+ if (!msg) {
304
+ return node;
305
+ }
306
+ if (typeof onMsgExtracted === 'function') {
307
+ onMsgExtracted(sf.fileName, [msg]);
308
+ }
309
+ const newProps = generateNewProperties(ts, factory, node.attributes, {
310
+ defaultMessage: opts.removeDefaultMessage
311
+ ? undefined
312
+ : msg.defaultMessage,
313
+ id: msg.id,
314
+ }, opts.ast);
315
+ if (ts.isJsxOpeningElement(node)) {
316
+ return factory.updateJsxOpeningElement(node, node.tagName, node.typeArguments, factory.createJsxAttributes(newProps));
317
+ }
318
+ return factory.updateJsxSelfClosingElement(node, node.tagName, node.typeArguments, factory.createJsxAttributes(newProps));
319
+ }
320
+ function setAttributesInObject(ts, factory, node, msg, ast) {
321
+ const newProps = [
322
+ factory.createPropertyAssignment('id', factory.createStringLiteral(msg.id)),
323
+ ...(msg.defaultMessage
324
+ ? [
325
+ factory.createPropertyAssignment('defaultMessage', ast
326
+ ? messageASTToTSNode(factory, parse(msg.defaultMessage))
327
+ : factory.createStringLiteral(msg.defaultMessage)),
328
+ ]
329
+ : []),
330
+ ];
331
+ for (const prop of node.properties) {
332
+ if (ts.isPropertyAssignment(prop) &&
333
+ ts.isIdentifier(prop.name) &&
334
+ MESSAGE_DESC_KEYS.includes(prop.name.text)) {
335
+ continue;
336
+ }
337
+ if (ts.isPropertyAssignment(prop)) {
338
+ newProps.push(prop);
339
+ }
340
+ }
341
+ return factory.createObjectLiteralExpression(factory.createNodeArray(newProps));
342
+ }
343
+ function generateNewProperties(ts, factory, node, msg, ast) {
344
+ const newProps = [
345
+ factory.createJsxAttribute(factory.createIdentifier('id'), factory.createStringLiteral(msg.id)),
346
+ ...(msg.defaultMessage
347
+ ? [
348
+ factory.createJsxAttribute(factory.createIdentifier('defaultMessage'), ast
349
+ ? factory.createJsxExpression(undefined, messageASTToTSNode(factory, parse(msg.defaultMessage)))
350
+ : factory.createStringLiteral(msg.defaultMessage)),
351
+ ]
352
+ : []),
353
+ ];
354
+ for (const prop of node.properties) {
355
+ if (ts.isJsxAttribute(prop) &&
356
+ ts.isIdentifier(prop.name) &&
357
+ MESSAGE_DESC_KEYS.includes(prop.name.text)) {
358
+ continue;
359
+ }
360
+ if (ts.isJsxAttribute(prop)) {
361
+ newProps.push(prop);
362
+ }
363
+ }
364
+ return newProps;
365
+ }
366
+ function extractMessagesFromCallExpression(ts, factory, node, opts, sf) {
367
+ const { onMsgExtracted, additionalFunctionNames } = opts;
368
+ if (isMultipleMessageDecl(ts, node)) {
369
+ const [arg, ...restArgs] = node.arguments;
370
+ let descriptorsObj;
371
+ if (ts.isObjectLiteralExpression(arg)) {
372
+ descriptorsObj = arg;
373
+ }
374
+ else if (ts.isAsExpression(arg) &&
375
+ ts.isObjectLiteralExpression(arg.expression)) {
376
+ descriptorsObj = arg.expression;
377
+ }
378
+ if (descriptorsObj) {
379
+ const properties = descriptorsObj.properties;
380
+ const msgs = properties
381
+ .filter((prop) => ts.isPropertyAssignment(prop))
382
+ .map(prop => ts.isObjectLiteralExpression(prop.initializer) &&
383
+ extractMessageDescriptor(ts, prop.initializer, opts, sf))
384
+ .filter((msg) => !!msg);
385
+ if (!msgs.length) {
386
+ return node;
387
+ }
388
+ debug('Multiple messages extracted from "%s": %s', sf.fileName, msgs);
389
+ if (typeof onMsgExtracted === 'function') {
390
+ onMsgExtracted(sf.fileName, msgs);
391
+ }
392
+ const clonedProperties = factory.createNodeArray(properties.map((prop, i) => {
393
+ if (!ts.isPropertyAssignment(prop) ||
394
+ !ts.isObjectLiteralExpression(prop.initializer)) {
395
+ return prop;
396
+ }
397
+ return factory.createPropertyAssignment(prop.name, setAttributesInObject(ts, factory, prop.initializer, {
398
+ defaultMessage: opts.removeDefaultMessage
399
+ ? undefined
400
+ : msgs[i].defaultMessage,
401
+ id: msgs[i] ? msgs[i].id : '',
402
+ }, opts.ast));
403
+ }));
404
+ const clonedDescriptorsObj = factory.createObjectLiteralExpression(clonedProperties);
405
+ return factory.updateCallExpression(node, node.expression, node.typeArguments, [clonedDescriptorsObj, ...restArgs]);
406
+ }
407
+ }
408
+ else if (isSingularMessageDecl(ts, node, opts.additionalComponentNames || []) ||
409
+ isMemberMethodFormatMessageCall(ts, node, additionalFunctionNames || [])) {
410
+ const [descriptorsObj, ...restArgs] = node.arguments;
411
+ if (ts.isObjectLiteralExpression(descriptorsObj)) {
412
+ const msg = extractMessageDescriptor(ts, descriptorsObj, opts, sf);
413
+ if (!msg) {
414
+ return node;
415
+ }
416
+ debug('Message extracted from "%s": %s', sf.fileName, msg);
417
+ if (typeof onMsgExtracted === 'function') {
418
+ onMsgExtracted(sf.fileName, [msg]);
419
+ }
420
+ return factory.updateCallExpression(node, node.expression, node.typeArguments, [
421
+ setAttributesInObject(ts, factory, descriptorsObj, {
422
+ defaultMessage: opts.removeDefaultMessage
423
+ ? undefined
424
+ : msg.defaultMessage,
425
+ id: msg.id,
426
+ }, opts.ast),
427
+ ...restArgs,
428
+ ]);
429
+ }
430
+ }
431
+ return node;
432
+ }
433
+ const PRAGMA_REGEX = /^\/\/ @([^\s]*) (.*)$/m;
434
+ function getVisitor(ts, ctx, sf, opts) {
435
+ const visitor = (node) => {
436
+ const newNode = ts.isCallExpression(node)
437
+ ? extractMessagesFromCallExpression(ts, ctx.factory, node, opts, sf)
438
+ : ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)
439
+ ? extractMessageFromJsxComponent(ts, ctx.factory, node, opts, sf)
440
+ : node;
441
+ return ts.visitEachChild(newNode, visitor, ctx);
442
+ };
443
+ return visitor;
444
+ }
445
+ export function transformWithTs(ts, opts) {
446
+ opts = { ...DEFAULT_OPTS, ...opts };
447
+ debug('Transforming options', opts);
448
+ const transformFn = ctx => {
449
+ return sf => {
450
+ const pragmaResult = PRAGMA_REGEX.exec(sf.text);
451
+ if (pragmaResult) {
452
+ debug('Pragma found', pragmaResult);
453
+ const [, pragma, kvString] = pragmaResult;
454
+ if (pragma === opts.pragma) {
455
+ const kvs = kvString.split(' ');
456
+ const result = {};
457
+ for (const kv of kvs) {
458
+ const [k, v] = kv.split(':');
459
+ result[k] = v;
460
+ }
461
+ debug('Pragma extracted', result);
462
+ if (typeof opts.onMetaExtracted === 'function') {
463
+ opts.onMetaExtracted(sf.fileName, result);
464
+ }
465
+ }
466
+ }
467
+ return ts.visitEachChild(sf, getVisitor(ts, ctx, sf, opts), ctx);
468
+ };
469
+ };
470
+ return transformFn;
471
+ }
472
+ export function transform(opts) {
473
+ return transformWithTs(typescript, opts);
474
+ }
@@ -0,0 +1,11 @@
1
+ export interface MessageDescriptor {
2
+ id: string;
3
+ description?: string | object;
4
+ defaultMessage?: string;
5
+ file?: string;
6
+ start?: number;
7
+ end?: number;
8
+ }
9
+ export interface Messages {
10
+ [key: string]: MessageDescriptor;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { TsCompilerInstance } from 'ts-jest';
2
+ import { SourceFile, TransformerFactory } from 'typescript';
3
+ import { Opts } from '.';
4
+ export declare const name = "@formatjs/ts-transformer";
5
+ export declare const version = "2.10.1";
6
+ export declare function factory(compilerInstance: TsCompilerInstance, opts: Opts): TransformerFactory<SourceFile>;
@@ -0,0 +1,6 @@
1
+ import { transformWithTs } from '.';
2
+ export const name = '@formatjs/ts-transformer';
3
+ export const version = '2.10.1';
4
+ export function factory(compilerInstance, opts) {
5
+ return transformWithTs(compilerInstance.configSet.compilerModule, opts);
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formatjs/ts-transformer",
3
- "version": "3.13.23",
3
+ "version": "3.13.25",
4
4
  "description": "TS Compiler transformer for formatjs",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -23,7 +23,7 @@
23
23
  "json-stable-stringify": "1",
24
24
  "tslib": "2",
25
25
  "typescript": "5",
26
- "@formatjs/icu-messageformat-parser": "2.9.4"
26
+ "@formatjs/icu-messageformat-parser": "2.9.6"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "ts-jest": ">=27"
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.interpolateName = interpolateName;
4
4
  const tslib_1 = require("tslib");
5
- const path = tslib_1.__importStar(require("path"));
6
5
  const crypto_1 = require("crypto");
6
+ const path = tslib_1.__importStar(require("path"));
7
7
  function getHashDigest(content, hashType = 'md5', digestType = 'hex', length = 9999) {
8
8
  const hasher = (0, crypto_1.createHash)(hashType);
9
9
  hasher.update(content);
@@ -1,5 +1,6 @@
1
- import { Opts } from '.';
2
1
  import type { TsCompilerInstance } from 'ts-jest';
2
+ import { SourceFile, TransformerFactory } from 'typescript';
3
+ import { Opts } from '.';
3
4
  export declare const name = "@formatjs/ts-transformer";
4
5
  export declare const version = "2.10.1";
5
- export declare function factory(compilerInstance: TsCompilerInstance, opts: Opts): import("typescript").TransformerFactory<import("typescript").SourceFile>;
6
+ export declare function factory(compilerInstance: TsCompilerInstance, opts: Opts): TransformerFactory<SourceFile>;
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,0DAA+B;AAC/B,sDAA2B;AAC3B,iEAAsC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"console_utils.js","sourceRoot":"","sources":["console_utils.ts"],"names":[],"mappings":";;AAeA,sBAMC;AAED,oBAGC;AAED,sBAGC;AA/BD,iCAAwC;AACxC,+BAA2B;AAE3B,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,aAAK;IACZ,IAAI,EAAE,cAAM;IACZ,KAAK,EAAE,WAAG;CACX,CAAA;AAED,SAAS,KAAK,CAAC,KAAgC,EAAE,OAAe;IAC9D,OAAO,+BAA+B,YAAY,CAAC,KAAK,CAAC,CACvD,KAAK,CAAC,WAAW,EAAE,CACpB,KAAK,OAAO,EAAE,CAAA;AACjB,CAAC;AAEM,KAAK,UAAU,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;IACzD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACtC,OAAM;IACR,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,SAAgB,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;IAClD,OAAO,CAAC,KAAK,CAAC,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACtD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,SAAgB,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;IACnD,OAAO,CAAC,KAAK,CAAC,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpolate-name.js","sourceRoot":"","sources":["interpolate-name.ts"],"names":[],"mappings":";;AAkCA,0CAgHC;;AAlJD,mDAA4B;AAC5B,mCAAuD;AAsBvD,SAAS,aAAa,CACpB,OAAe,EACf,QAAQ,GAAG,KAAK,EAChB,aAAmC,KAAK,EACxC,MAAM,GAAG,IAAI;IAEb,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACnD,CAAC;AAED,SAAgB,eAAe,CAC7B,aAA4B,EAC5B,IAAqB,EACrB,OAAgB;IAEhB,IAAI,QAAQ,CAAA;IAEZ,MAAM,QAAQ,GACZ,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAA;IAEvE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,QAAQ,GAAG,IAAI,CACb,aAAa,CAAC,YAAY,EAC1B,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CACnD,CAAA;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAI,IAAI,cAAc,CAAA;IACnC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,IAAI,GAAG,GAAG,KAAK,CAAA;IACf,IAAI,QAAQ,GAAG,MAAM,CAAA;IACrB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,KAAK,GAAG,EAAE,CAAA;IAEd,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QACrD,IAAI,YAAY,GAAG,aAAa,CAAC,YAAY,CAAA;QAE7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;YACtB,YAAY,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,SAAS,GAAG,IAAI;iBACb,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAAC;iBACrC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iBACnB,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;YAC/B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,EAAE,CAAA;QAChB,CAAC;aAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,KAAK,GAAG,aAAa,CAAC,aAAa,CAAA;QAEnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAElC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,QAAQ,CAAA;IAElB,IAAI,OAAO,EAAE,CAAC;QACZ,sBAAsB;QACtB,GAAG,GAAG,GAAG;YACP,8DAA8D;YAC9D,+CAA+C;aAC9C,OAAO,CACN,6EAA6E,EAC7E,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CACrC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CACxE,CAAA;IACL,CAAC;IAED,GAAG,GAAG,GAAG;SACN,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;SAC/B,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;SACrC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SACtC,OAAO,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;SACrC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAEtC,IAAI,MAAM,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAElE,KAAK;YACH,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAC3B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YACjE,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IACE,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ;QACzC,OAAO,aAAa,CAAC,OAAO,CAAC,qBAAqB,KAAK,UAAU,EACjE,CAAC;QACD,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CACpD,aAAa,EACb,GAAG,EACH,IAAI,EACJ,OAAO,CACR,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["transform.ts"],"names":[],"mappings":"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"}
package/src/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ts-jest-integration.js","sourceRoot":"","sources":["ts-jest-integration.ts"],"names":[],"mappings":";;;AAMA,0BAEC;AARD,wBAAuC;AAG1B,QAAA,IAAI,GAAG,0BAA0B,CAAA;AACjC,QAAA,OAAO,GAAG,QAAQ,CAAA;AAE/B,SAAgB,OAAO,CAAC,gBAAoC,EAAE,IAAU;IACtE,OAAO,IAAA,kBAAe,EAAC,gBAAgB,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;AACzE,CAAC"}