@cparra/apex-reflection 1.7.0 → 1.9.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.
@@ -57,7 +57,7 @@ describe('Interface Reflection', () => {
57
57
 
58
58
  test('Can have a sharing modifier', () => {
59
59
  const interfaceBody = 'public with sharing interface MyInterface{}';
60
- const result = reflect(interfaceBody) as InterfaceMirror;
60
+ const result = (reflect(interfaceBody).typeMirror) as InterfaceMirror;
61
61
  expect(result.sharingModifier).toBe('withSharing');
62
62
  });
63
63
 
@@ -67,7 +67,7 @@ describe('Interface Reflection', () => {
67
67
  void method1();
68
68
  }
69
69
  `;
70
- const result = reflect(interfaceBody) as InterfaceMirror;
70
+ const result = (reflect(interfaceBody).typeMirror) as InterfaceMirror;
71
71
  expect(result.methods.length).toBe(1);
72
72
  expect(result.methods[0].name).toBe('method1');
73
73
  });
@@ -78,7 +78,7 @@ describe('Interface Reflection', () => {
78
78
  void method1();
79
79
  }
80
80
  `;
81
- const result = reflect(interfaceBody) as InterfaceMirror;
81
+ const result = (reflect(interfaceBody).typeMirror) as InterfaceMirror;
82
82
  expect(result.extended_interfaces.length).toBe(1);
83
83
  expect(result.extended_interfaces[0]).toBe('Interface2');
84
84
  });
@@ -90,7 +90,7 @@ describe('Interface Reflection', () => {
90
90
  void method1();
91
91
  }
92
92
  `;
93
- const result = reflect(interfaceBody) as InterfaceMirror;
93
+ const result = (reflect(interfaceBody).typeMirror) as InterfaceMirror;
94
94
  expect(result.annotations.length).toBe(1);
95
95
  expect(result.annotations[0].name).toBe('namespaceaccessible');
96
96
  });
@@ -118,25 +118,25 @@ describe('Class reflection', () => {
118
118
 
119
119
  test('Can have a sharing modifier', () => {
120
120
  const classBody = 'public with sharing class MyClass{}';
121
- const result = reflect(classBody) as ClassMirror;
121
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
122
122
  expect(result.sharingModifier).toBe('withSharing');
123
123
  });
124
124
 
125
125
  test('Can have a class modifier', () => {
126
126
  const classBody = 'public with sharing abstract class MyClass{}';
127
- const result = reflect(classBody) as ClassMirror;
127
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
128
128
  expect(result.classModifier).toBe('abstract');
129
129
  });
130
130
 
131
131
  test('Can extend a class', () => {
132
132
  const classBody = 'public with sharing class MyClass extends Class2 {}';
133
- const result = reflect(classBody) as ClassMirror;
133
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
134
134
  expect(result.extended_class).toBe('Class2');
135
135
  });
136
136
 
137
137
  test('Can implement interfaces', () => {
138
138
  const classBody = 'public with sharing class MyClass implements Interface1, Interface2 {}';
139
- const result = reflect(classBody) as ClassMirror;
139
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
140
140
  expect(result.implemented_interfaces.length).toBe(2);
141
141
  expect(result.implemented_interfaces[0]).toBe('Interface1');
142
142
  expect(result.implemented_interfaces[1]).toBe('Interface2');
@@ -149,7 +149,7 @@ describe('Class reflection', () => {
149
149
  public Integer Prop2 { get; set; }
150
150
  }
151
151
  `;
152
- const result = reflect(classBody) as ClassMirror;
152
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
153
153
  expect(result.properties.length).toBe(2);
154
154
  expect(result.properties[0].type).toBe('String');
155
155
  expect(result.properties[0].name).toBe('Prop1');
@@ -163,7 +163,7 @@ describe('Class reflection', () => {
163
163
  private String var1, var2;
164
164
  }
165
165
  `;
166
- const result = reflect(classBody) as ClassMirror;
166
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
167
167
  expect(result.fields.length).toBe(2);
168
168
  expect(result.fields[0].type).toBe('String');
169
169
  expect(result.fields[1].type).toBe('String');
@@ -171,6 +171,19 @@ describe('Class reflection', () => {
171
171
  expect(result.fields[1].name).toBe('var2');
172
172
  });
173
173
 
174
+ test('Can have annotations with parameters', () => {
175
+ const classBody = `
176
+ @IsTest(SeeAllData=true)
177
+ /** Some docs */
178
+ public with sharing class MyClass {}
179
+ `;
180
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
181
+ expect(result.annotations.length).toBe(1);
182
+ expect(result.annotations[0].elementValues.length).toBe(1);
183
+ expect(result.annotations[0].elementValues[0].key).toBe('SeeAllData');
184
+ expect(result.annotations[0].elementValues[0].value).toBe('true');
185
+ });
186
+
174
187
  test('Can have constructors', () => {
175
188
  const classBody = `
176
189
  public with sharing class MyClass {
@@ -178,7 +191,7 @@ describe('Class reflection', () => {
178
191
  public MyClass(String var1) {}
179
192
  }
180
193
  `;
181
- const result = reflect(classBody) as ClassMirror;
194
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
182
195
  expect(result.constructors.length).toBe(2);
183
196
  expect(result.constructors[0].parameters.length).toBe(0);
184
197
  expect(result.constructors[0].access_modifier).toBe('public');
@@ -198,7 +211,7 @@ describe('Class reflection', () => {
198
211
  private void method2(){}
199
212
  }
200
213
  `;
201
- const result = reflect(classBody) as ClassMirror;
214
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
202
215
  expect(result.methods.length).toBe(2);
203
216
  expect(result.methods[0].memberModifiers.length).toBe(1);
204
217
  expect(result.methods[0].memberModifiers[0]).toBe('static');
@@ -218,7 +231,7 @@ describe('Class reflection', () => {
218
231
  public enum MyEnum {}
219
232
  }
220
233
  `;
221
- const result = reflect(classBody) as ClassMirror;
234
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
222
235
  expect(result.enums.length).toBe(1);
223
236
  expect(result.enums[0].access_modifier).toBe('public');
224
237
  expect(result.enums[0].name).toBe('MyEnum');
@@ -233,7 +246,7 @@ describe('Class reflection', () => {
233
246
  }
234
247
  }
235
248
  `;
236
- const result = reflect(classBody) as ClassMirror;
249
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
237
250
  expect(result.interfaces.length).toBe(1);
238
251
  expect(result.interfaces[0].name).toBe('MyInterface');
239
252
  expect(result.interfaces[0].methods.length).toBe(2);
@@ -248,7 +261,7 @@ describe('Class reflection', () => {
248
261
  }
249
262
  }
250
263
  `;
251
- const result = reflect(classBody) as ClassMirror;
264
+ const result = (reflect(classBody)).typeMirror as ClassMirror;
252
265
  expect(result.classes.length).toBe(1);
253
266
  expect(result.classes[0].name).toBe('MyClass');
254
267
  expect(result.classes[0].methods.length).toBe(2);
package/index.d.ts CHANGED
@@ -29,10 +29,15 @@ export interface DocComment {
29
29
  description: string;
30
30
  error?: string;
31
31
  }
32
+ export interface AnnotationElementValue {
33
+ key: string;
34
+ value: string;
35
+ }
32
36
  export interface Annotation {
33
37
  rawDeclaration: string;
34
38
  name: string;
35
39
  type: string;
40
+ elementValues: AnnotationElementValue[];
36
41
  }
37
42
  export interface ParameterMirror {
38
43
  memberModifiers: string[];
package/index.ts CHANGED
@@ -40,10 +40,16 @@ export interface DocComment {
40
40
  error?: string;
41
41
  }
42
42
 
43
+ export interface AnnotationElementValue {
44
+ key: string;
45
+ value: string;
46
+ }
47
+
43
48
  export interface Annotation {
44
49
  rawDeclaration: string;
45
50
  name: string;
46
51
  type: string;
52
+ elementValues: AnnotationElementValue[];
47
53
  }
48
54
 
49
55
  export interface ParameterMirror {