@cparra/apex-reflection 1.7.0 → 1.8.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/__tests__/end-to-end.test.ts +28 -15
- package/index.d.ts +5 -0
- package/index.ts +6 -0
- package/out.js +3415 -3385
- package/package.json +1 -1
|
@@ -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 {
|