Skip to content

Commit 7523ee5

Browse files
author
Jenna Smith
authored
[All] Add pure annotations for tree-shaking (radix-ui#577)
* Add pure annotations * Remove parcel overrides * Versions
1 parent 9fbdc7a commit 7523ee5

File tree

6 files changed

+111
-20
lines changed

6 files changed

+111
-20
lines changed

.terserrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
format: {
3+
preserve_annotations: true,
4+
comments: '/__PURE__/',
5+
}
6+
}

.yarn/versions/aee1791c.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
releases:
2+
"@radix-ui/number": patch
3+
"@radix-ui/popper": patch
4+
"@radix-ui/primitive": patch
5+
"@radix-ui/react-accessible-icon": patch
6+
"@radix-ui/react-accordion": patch
7+
"@radix-ui/react-alert-dialog": patch
8+
"@radix-ui/react-announce": patch
9+
"@radix-ui/react-arrow": patch
10+
"@radix-ui/react-aspect-ratio": patch
11+
"@radix-ui/react-avatar": patch
12+
"@radix-ui/react-checkbox": patch
13+
"@radix-ui/react-collapsible": patch
14+
"@radix-ui/react-collection": patch
15+
"@radix-ui/react-compose-refs": patch
16+
"@radix-ui/react-context": patch
17+
"@radix-ui/react-context-menu": patch
18+
"@radix-ui/react-dialog": patch
19+
"@radix-ui/react-dismissable-layer": patch
20+
"@radix-ui/react-dropdown-menu": patch
21+
"@radix-ui/react-focus-guards": patch
22+
"@radix-ui/react-focus-scope": patch
23+
"@radix-ui/react-id": patch
24+
"@radix-ui/react-label": patch
25+
"@radix-ui/react-menu": patch
26+
"@radix-ui/react-polymorphic": patch
27+
"@radix-ui/react-popover": patch
28+
"@radix-ui/react-popper": patch
29+
"@radix-ui/react-portal": patch
30+
"@radix-ui/react-presence": patch
31+
"@radix-ui/react-primitive": patch
32+
"@radix-ui/react-progress": patch
33+
"@radix-ui/react-radio-group": patch
34+
"@radix-ui/react-roving-focus": patch
35+
"@radix-ui/react-scroll-area": patch
36+
"@radix-ui/react-separator": patch
37+
"@radix-ui/react-slider": patch
38+
"@radix-ui/react-slot": patch
39+
"@radix-ui/react-switch": patch
40+
"@radix-ui/react-tabs": patch
41+
"@radix-ui/react-toggle": patch
42+
"@radix-ui/react-toggle-group": patch
43+
"@radix-ui/react-toolbar": patch
44+
"@radix-ui/react-tooltip": patch
45+
"@radix-ui/react-use-body-pointer-events": patch
46+
"@radix-ui/react-use-callback-ref": patch
47+
"@radix-ui/react-use-controllable-state": patch
48+
"@radix-ui/react-use-escape-keydown": patch
49+
"@radix-ui/react-use-layout-effect": patch
50+
"@radix-ui/react-use-previous": patch
51+
"@radix-ui/react-use-rect": patch
52+
"@radix-ui/react-use-size": patch
53+
"@radix-ui/react-visually-hidden": patch
54+
"@radix-ui/rect": patch
55+
56+
declined:
57+
- primitives
58+
- ssr-testing

babel.config.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const template = require('@babel/template');
2+
3+
const buildAssign = template.smart('Object.assign(COMPONENT, { displayName: DISPLAY_NAME });');
4+
5+
const pureDisplayNames = () => ({
6+
visitor: {
7+
AssignmentExpression(path) {
8+
if (
9+
path.node.left.type === 'MemberExpression' &&
10+
path.node.left.property.name === 'displayName' &&
11+
path.node.right.name
12+
) {
13+
const COMPONENT = path.node.left.object.name;
14+
const DISPLAY_NAME = path.node.right.name;
15+
const ast = buildAssign({ COMPONENT, DISPLAY_NAME });
16+
path.replaceWith(ast);
17+
path.addComment('leading', '#__PURE__');
18+
}
19+
},
20+
},
21+
});
22+
23+
module.exports = {
24+
presets: [
25+
[
26+
'@parcel/babel-preset-env',
27+
{
28+
bugfixes: true,
29+
targets: {
30+
browsers: 'Chrome >= 74, Safari >= 13.1, iOS >= 13.3, Firefox >= 78, Edge >= 79',
31+
node: 12,
32+
},
33+
},
34+
],
35+
'@babel/preset-react',
36+
],
37+
plugins: [
38+
pureDisplayNames,
39+
'@parcel/babel-plugin-transform-runtime',
40+
['@babel/plugin-transform-typescript', { isTSX: true }],
41+
],
42+
};

babel.config.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"@babel/core": "^7.0.0",
3535
"@babel/plugin-transform-typescript": "^7.13.0",
3636
"@babel/preset-react": "^7.12.13",
37+
"@babel/template": "^7.12.13",
3738
"@parcel/babel-plugin-transform-runtime": "^2.0.0-nightly.1823",
3839
"@parcel/babel-preset-env": "^2.0.0-alpha.3",
3940
"@stitches/react": "0.0.3-canary.4",
@@ -42,6 +43,7 @@
4243
"@testing-library/jest-dom": "^5.11.3",
4344
"@testing-library/react": "^10.4.8",
4445
"@testing-library/user-event": "^12.6.0",
46+
"@types/babel__template": "^7",
4547
"@types/eslint": "^7",
4648
"@types/jest": "^26.0.10",
4749
"@types/jest-axe": "^3.5.0",

yarn.lock

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4753,7 +4753,7 @@ __metadata:
47534753
languageName: node
47544754
linkType: hard
47554755

4756-
"@types/babel__template@npm:*":
4756+
"@types/babel__template@npm:*, @types/babel__template@npm:^7":
47574757
version: 7.4.0
47584758
resolution: "@types/babel__template@npm:7.4.0"
47594759
dependencies:
@@ -15834,6 +15834,7 @@ __metadata:
1583415834
"@babel/core": ^7.0.0
1583515835
"@babel/plugin-transform-typescript": ^7.13.0
1583615836
"@babel/preset-react": ^7.12.13
15837+
"@babel/template": ^7.12.13
1583715838
"@parcel/babel-plugin-transform-runtime": ^2.0.0-nightly.1823
1583815839
"@parcel/babel-preset-env": ^2.0.0-alpha.3
1583915840
"@stitches/react": 0.0.3-canary.4
@@ -15842,6 +15843,7 @@ __metadata:
1584215843
"@testing-library/jest-dom": ^5.11.3
1584315844
"@testing-library/react": ^10.4.8
1584415845
"@testing-library/user-event": ^12.6.0
15846+
"@types/babel__template": ^7
1584515847
"@types/eslint": ^7
1584615848
"@types/jest": ^26.0.10
1584715849
"@types/jest-axe": ^3.5.0

0 commit comments

Comments
 (0)