@eventra_dev/eventra-cli 0.0.14 → 0.0.15

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.
@@ -15,11 +15,14 @@ function scanComponentWrappers(source, wrappers) {
15
15
  .getText()
16
16
  .toLowerCase();
17
17
  for (const wrapper of wrappers) {
18
- if (name !==
19
- wrapper.name.toLowerCase())
18
+ if (name !== wrapper.name.toLowerCase())
20
19
  continue;
21
20
  const attrs = el.getAttributes();
22
21
  for (const attr of attrs) {
22
+ // ❗ NO spread props
23
+ if (ts_morph_1.Node.isJsxSpreadAttribute(attr)) {
24
+ continue;
25
+ }
23
26
  const attrNode = attr.asKind(ts_morph_1.SyntaxKind.JsxAttribute);
24
27
  if (!attrNode)
25
28
  continue;
@@ -27,20 +30,26 @@ function scanComponentWrappers(source, wrappers) {
27
30
  .getNameNode()
28
31
  .getText()
29
32
  .toLowerCase();
30
- if (key !==
31
- wrapper.prop.toLowerCase())
33
+ if (key !== wrapper.prop.toLowerCase())
32
34
  continue;
33
35
  const init = attrNode.getInitializer();
34
- if (!init)
36
+ // <Button event />
37
+ if (!init) {
38
+ events.add({
39
+ value: key,
40
+ dynamic: true
41
+ });
35
42
  continue;
36
- // string
43
+ }
44
+ // string: <Button event="click" />
37
45
  if (ts_morph_1.Node.isStringLiteral(init)) {
38
46
  events.add({
39
47
  value: init.getLiteralText(),
40
48
  dynamic: false
41
49
  });
50
+ continue;
42
51
  }
43
- // jsx expression
52
+ // jsx expression: <Button event={"click"} />
44
53
  if (ts_morph_1.Node.isJsxExpression(init)) {
45
54
  const expr = init.getExpression();
46
55
  if (!expr)
@@ -52,6 +61,7 @@ function scanComponentWrappers(source, wrappers) {
52
61
  value,
53
62
  dynamic: result.dynamic
54
63
  }));
64
+ continue;
55
65
  }
56
66
  }
57
67
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventra_dev/eventra-cli",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "description": "Eventra CLI",
5
5
  "type": "commonjs",
6
6
  "bin": {
@@ -15,8 +15,7 @@ export function scanComponentWrappers(
15
15
  source: SourceFile,
16
16
  wrappers: ComponentWrapper[]
17
17
  ) {
18
- const events =
19
- new Set<ExtractedEvent>();
18
+ const events = new Set<ExtractedEvent>();
20
19
 
21
20
  const elements = [
22
21
  ...source.getDescendantsOfKind(
@@ -34,20 +33,20 @@ export function scanComponentWrappers(
34
33
  .toLowerCase();
35
34
 
36
35
  for (const wrapper of wrappers) {
37
- if (
38
- name !==
39
- wrapper.name.toLowerCase()
40
- )
36
+ if (name !== wrapper.name.toLowerCase())
41
37
  continue;
42
38
 
43
- const attrs =
44
- el.getAttributes();
39
+ const attrs = el.getAttributes();
45
40
 
46
41
  for (const attr of attrs) {
42
+
43
+ // ❗ NO spread props
44
+ if (Node.isJsxSpreadAttribute(attr)) {
45
+ continue;
46
+ }
47
+
47
48
  const attrNode =
48
- attr.asKind(
49
- SyntaxKind.JsxAttribute
50
- );
49
+ attr.asKind(SyntaxKind.JsxAttribute);
51
50
 
52
51
  if (!attrNode) continue;
53
52
 
@@ -57,34 +56,32 @@ export function scanComponentWrappers(
57
56
  .getText()
58
57
  .toLowerCase();
59
58
 
60
- if (
61
- key !==
62
- wrapper.prop.toLowerCase()
63
- )
59
+ if (key !== wrapper.prop.toLowerCase())
64
60
  continue;
65
61
 
66
- const init =
67
- attrNode.getInitializer();
62
+ const init = attrNode.getInitializer();
68
63
 
69
- if (!init) continue;
64
+ // <Button event />
65
+ if (!init) {
66
+ events.add({
67
+ value: key,
68
+ dynamic: true
69
+ });
70
+ continue;
71
+ }
70
72
 
71
- // string
72
- if (
73
- Node.isStringLiteral(init)
74
- ) {
73
+ // string: <Button event="click" />
74
+ if (Node.isStringLiteral(init)) {
75
75
  events.add({
76
- value:
77
- init.getLiteralText(),
76
+ value: init.getLiteralText(),
78
77
  dynamic: false
79
78
  });
79
+ continue;
80
80
  }
81
81
 
82
- // jsx expression
83
- if (
84
- Node.isJsxExpression(init)
85
- ) {
86
- const expr =
87
- init.getExpression();
82
+ // jsx expression: <Button event={"click"} />
83
+ if (Node.isJsxExpression(init)) {
84
+ const expr = init.getExpression();
88
85
 
89
86
  if (!expr) continue;
90
87
 
@@ -93,14 +90,14 @@ export function scanComponentWrappers(
93
90
 
94
91
  if (!result) continue;
95
92
 
96
- result.values.forEach(
97
- (value) =>
98
- events.add({
99
- value,
100
- dynamic:
101
- result.dynamic
102
- })
93
+ result.values.forEach((value) =>
94
+ events.add({
95
+ value,
96
+ dynamic: result.dynamic
97
+ })
103
98
  );
99
+
100
+ continue;
104
101
  }
105
102
  }
106
103
  }