@saykit/transform-jsx 0.11.0 → 0.12.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/generator.d.mts +1 -4
- package/dist/generator.mjs +2 -3
- package/dist/index.d.mts +0 -2
- package/dist/index.mjs +1 -2
- package/dist/parser.d.mts +4 -7
- package/dist/parser.mjs +3 -3
- package/package.json +7 -7
package/dist/generator.d.mts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import { CompositeMessage } from "@saykit/config/features/messages";
|
|
2
2
|
import * as t from "@babel/types";
|
|
3
|
-
|
|
4
|
-
declare function generateSayJSXElement(message: CompositeMessage): t.JSXElement;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { generateSayJSXElement };
|
|
3
|
+
export declare function generateSayJSXElement(message: CompositeMessage): t.JSXElement;
|
package/dist/generator.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ArgumentMessage, ChoiceMessage, CompositeMessage, ElementMessage } from "@saykit/config/features/messages";
|
|
2
2
|
import { generateDescriptorProperty } from "@saykit/transform-js/generator";
|
|
3
3
|
import * as t from "@babel/types";
|
|
4
|
-
|
|
4
|
+
// src/generator.ts
|
|
5
5
|
function generateSayJSXElement(message) {
|
|
6
6
|
const children = generateChildExpressions(message.children);
|
|
7
7
|
const descriptor = generateDescriptorProperty(message);
|
|
8
8
|
const attributes = [
|
|
9
|
-
t.jsxAttribute(t.jsxIdentifier(descriptor.key.name), descriptor.value),
|
|
9
|
+
t.jsxAttribute(t.jsxIdentifier(descriptor.key.name), t.isStringLiteral(descriptor.value) ? descriptor.value : t.jsxExpressionContainer(descriptor.value)),
|
|
10
10
|
...message.whitespace === void 0 ? [] : [t.jsxAttribute(t.jsxIdentifier("whitespace"), t.jsxExpressionContainer(t.booleanLiteral(message.whitespace)))],
|
|
11
11
|
...[...new Map(children).entries()].map(([k, e]) => t.jsxAttribute(t.jsxIdentifier(`_${k}`), t.jsxExpressionContainer(e)))
|
|
12
12
|
];
|
|
@@ -27,5 +27,4 @@ function generateChildExpressions(messages) {
|
|
|
27
27
|
return c;
|
|
28
28
|
}, []);
|
|
29
29
|
}
|
|
30
|
-
//#endregion
|
|
31
30
|
export { generateSayJSXElement };
|
package/dist/index.d.mts
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import traverse_ from "@babel/traverse";
|
|
|
6
6
|
import { assignSequenceIdentifiers } from "@saykit/config/features/messages";
|
|
7
7
|
import { generateSayCallExpression, isLoneArgument } from "@saykit/transform-js/generator";
|
|
8
8
|
import { collectLeadingComments, isEquivalentPlaceholder, parseExpression } from "@saykit/transform-js/parser";
|
|
9
|
-
|
|
9
|
+
// src/index.ts
|
|
10
10
|
const traverse = traverse_.default || traverse_;
|
|
11
11
|
function createProgram(code, id) {
|
|
12
12
|
const program = parser.parse(code, {
|
|
@@ -90,5 +90,4 @@ function createJsxTransformer() {
|
|
|
90
90
|
}
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
-
//#endregion
|
|
94
93
|
export { createJsxTransformer as default };
|
package/dist/parser.d.mts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { CompositeMessage, ElementMessage } from "@saykit/config/features/messages";
|
|
2
2
|
import * as t from "@babel/types";
|
|
3
|
-
|
|
4
|
-
declare function parseJSXContainerElement(element: t.JSXElement): CompositeMessage | null;
|
|
3
|
+
export declare function parseJSXContainerElement(element: t.JSXElement): CompositeMessage | null;
|
|
5
4
|
/**
|
|
6
5
|
* A self-closing `Say` element. Comments are passed in rather than read off the
|
|
7
6
|
* node, since they were written in front of the element as a whole and Babel
|
|
8
7
|
* attaches them there.
|
|
9
8
|
*/
|
|
10
|
-
declare function parseJSXOpeningElement(element: t.JSXOpeningElement, comments?: readonly t.Comment[] | null): CompositeMessage | null;
|
|
11
|
-
declare function parseJSXElement(element: t.JSXElement, fallback?: false): CompositeMessage | null;
|
|
12
|
-
declare function parseJSXElement(element: t.JSXElement, fallback: true): CompositeMessage | ElementMessage;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { parseJSXContainerElement, parseJSXElement, parseJSXOpeningElement };
|
|
9
|
+
export declare function parseJSXOpeningElement(element: t.JSXOpeningElement, comments?: readonly t.Comment[] | null): CompositeMessage | null;
|
|
10
|
+
export declare function parseJSXElement(element: t.JSXElement, fallback?: false): CompositeMessage | null;
|
|
11
|
+
export declare function parseJSXElement(element: t.JSXElement, fallback: true): CompositeMessage | ElementMessage;
|
package/dist/parser.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AUTO_INCREMENT_IDENTIFIER, ArgumentMessage, ChoiceMessage, CompositeMessage, ElementMessage, LiteralMessage, isArgumentType, validateArgumentStyle, validateBranchIdentifier } from "@saykit/config/features/messages";
|
|
2
2
|
import { getTranslatorComments, unwrapPlaceholder } from "@saykit/transform-js/parser";
|
|
3
3
|
import * as t from "@babel/types";
|
|
4
|
-
|
|
4
|
+
// src/parser.ts
|
|
5
5
|
const TAG_ATTRIBUTE = "say-tag";
|
|
6
6
|
const TAG_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
7
7
|
function parseJSXContainerElement(element) {
|
|
@@ -137,7 +137,8 @@ function parseJSXElement(element, fallback) {
|
|
|
137
137
|
if (!fallback) return null;
|
|
138
138
|
const identifier = takeElementTag(element) ?? AUTO_INCREMENT_IDENTIFIER;
|
|
139
139
|
if (element.openingElement.selfClosing) return new ElementMessage(identifier, [], element);
|
|
140
|
-
|
|
140
|
+
const wrapped = parseJSXElement(t.jsxElement(t.jsxOpeningElement(t.jsxIdentifier("Say"), []), t.jsxClosingElement(t.jsxIdentifier("Say")), element.children), true);
|
|
141
|
+
return new ElementMessage(identifier, [wrapped], element);
|
|
141
142
|
}
|
|
142
143
|
function takeElementTag(element) {
|
|
143
144
|
const attributes = element.openingElement.attributes;
|
|
@@ -183,5 +184,4 @@ function findAttributeValueAsBoolean(attributes, identifier) {
|
|
|
183
184
|
if (t.isJSXExpressionContainer(attribute.value) && t.isBooleanLiteral(attribute.value.expression)) return attribute.value.expression.value;
|
|
184
185
|
}
|
|
185
186
|
}
|
|
186
|
-
//#endregion
|
|
187
187
|
export { parseJSXContainerElement, parseJSXElement, parseJSXOpeningElement };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saykit/transform-jsx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "JSX and TSX source transformer for SayKit",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"i18n",
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"provenance": true
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@babel/generator": "^7.29.
|
|
47
|
-
"@babel/parser": "^7.29.
|
|
48
|
-
"@babel/traverse": "^7.29.
|
|
49
|
-
"@babel/types": "^7.29.
|
|
50
|
-
"@saykit/config": "^0.
|
|
51
|
-
"@saykit/transform-js": "^0.
|
|
46
|
+
"@babel/generator": "^7.29.8",
|
|
47
|
+
"@babel/parser": "^7.29.9",
|
|
48
|
+
"@babel/traverse": "^7.29.10",
|
|
49
|
+
"@babel/types": "^7.29.8",
|
|
50
|
+
"@saykit/config": "^0.12.0",
|
|
51
|
+
"@saykit/transform-js": "^0.12.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@babel/core": "^7.29.7",
|