@aloma.io/integration-sdk 3.8.60 → 3.8.62
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.
|
@@ -20,6 +20,7 @@ export function buildResolvers(methods, controller) {
|
|
|
20
20
|
return controller[method](args);
|
|
21
21
|
};
|
|
22
22
|
if (method.includes('.')) {
|
|
23
|
+
// Register nested tree for array-based resolution: ["crm", "contacts", "getPage"]
|
|
23
24
|
const parts = method.split('.');
|
|
24
25
|
let node = resolvers;
|
|
25
26
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
@@ -29,6 +30,8 @@ export function buildResolvers(methods, controller) {
|
|
|
29
30
|
node = node[parts[i]];
|
|
30
31
|
}
|
|
31
32
|
node[parts[parts.length - 1]] = handler;
|
|
33
|
+
// Also register flat dotted key for string-based resolution: ["crm.contacts.getPage"]
|
|
34
|
+
resolvers[method] = handler;
|
|
32
35
|
}
|
|
33
36
|
else {
|
|
34
37
|
resolvers[method] = handler;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { parseFromFiles } from '@ts-ast-parser/core';
|
|
2
|
+
function stripQuotes(name) {
|
|
3
|
+
if ((name.startsWith("'") && name.endsWith("'")) || (name.startsWith('"') && name.endsWith('"'))) {
|
|
4
|
+
return name.slice(1, -1);
|
|
5
|
+
}
|
|
6
|
+
return name;
|
|
7
|
+
}
|
|
2
8
|
const transform = (meta) => {
|
|
3
9
|
if (!meta?.length)
|
|
4
10
|
throw new Error('metadata is empty');
|
|
@@ -13,11 +19,12 @@ const transform = (meta) => {
|
|
|
13
19
|
member.isInherited() ||
|
|
14
20
|
member.getKind() !== 'Method' ||
|
|
15
21
|
member.getModifier() !== 'public' ||
|
|
16
|
-
member.getName().startsWith('_'));
|
|
22
|
+
stripQuotes(member.getName()).startsWith('_'));
|
|
17
23
|
});
|
|
18
24
|
const text = members
|
|
19
25
|
.map((member) => {
|
|
20
|
-
|
|
26
|
+
const methodName = stripQuotes(member.getName());
|
|
27
|
+
methods[methodName] = true;
|
|
21
28
|
return member
|
|
22
29
|
.getSignatures()
|
|
23
30
|
.map((sig) => {
|
|
@@ -66,7 +73,7 @@ const transform = (meta) => {
|
|
|
66
73
|
* ${space || ''}
|
|
67
74
|
* ${eg || ''}
|
|
68
75
|
**/
|
|
69
|
-
declare function ${
|
|
76
|
+
declare function ${methodName}(${params}): ${retVal};
|
|
70
77
|
`;
|
|
71
78
|
})
|
|
72
79
|
.join('\n');
|
package/package.json
CHANGED
|
@@ -22,6 +22,7 @@ export function buildResolvers(methods: string[], controller: any): any {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
if (method.includes('.')) {
|
|
25
|
+
// Register nested tree for array-based resolution: ["crm", "contacts", "getPage"]
|
|
25
26
|
const parts = method.split('.');
|
|
26
27
|
let node = resolvers;
|
|
27
28
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
@@ -31,6 +32,8 @@ export function buildResolvers(methods: string[], controller: any): any {
|
|
|
31
32
|
node = node[parts[i]];
|
|
32
33
|
}
|
|
33
34
|
node[parts[parts.length - 1]] = handler;
|
|
35
|
+
// Also register flat dotted key for string-based resolution: ["crm.contacts.getPage"]
|
|
36
|
+
resolvers[method] = handler;
|
|
34
37
|
} else {
|
|
35
38
|
resolvers[method] = handler;
|
|
36
39
|
}
|
package/src/transform/index.mts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import {parseFromFiles} from '@ts-ast-parser/core';
|
|
2
2
|
|
|
3
|
+
function stripQuotes(name: string): string {
|
|
4
|
+
if ((name.startsWith("'") && name.endsWith("'")) || (name.startsWith('"') && name.endsWith('"'))) {
|
|
5
|
+
return name.slice(1, -1);
|
|
6
|
+
}
|
|
7
|
+
return name;
|
|
8
|
+
}
|
|
9
|
+
|
|
3
10
|
const transform = (meta: any) => {
|
|
4
11
|
if (!meta?.length) throw new Error('metadata is empty');
|
|
5
12
|
meta = meta[0];
|
|
@@ -17,13 +24,14 @@ const transform = (meta: any) => {
|
|
|
17
24
|
member.isInherited() ||
|
|
18
25
|
member.getKind() !== 'Method' ||
|
|
19
26
|
member.getModifier() !== 'public' ||
|
|
20
|
-
member.getName().startsWith('_')
|
|
27
|
+
stripQuotes(member.getName()).startsWith('_')
|
|
21
28
|
);
|
|
22
29
|
});
|
|
23
30
|
|
|
24
31
|
const text = members
|
|
25
32
|
.map((member: any) => {
|
|
26
|
-
|
|
33
|
+
const methodName = stripQuotes(member.getName());
|
|
34
|
+
methods[methodName] = true;
|
|
27
35
|
|
|
28
36
|
return member
|
|
29
37
|
.getSignatures()
|
|
@@ -85,7 +93,7 @@ const transform = (meta: any) => {
|
|
|
85
93
|
* ${space || ''}
|
|
86
94
|
* ${eg || ''}
|
|
87
95
|
**/
|
|
88
|
-
declare function ${
|
|
96
|
+
declare function ${methodName}(${params}): ${retVal};
|
|
89
97
|
`;
|
|
90
98
|
})
|
|
91
99
|
.join('\n');
|