5
5
dtsObjectTypeAlias,
6
6
convertTreeToString
7
7
} = docworksDts . dtsGenerator ;
8
+ const { convertOperationToFunction } = docworksDts . docworksToDtsConverters ;
8
9
9
10
const QUERYABLE_TYPE = "TypeNameToSdkType" ;
10
11
const $W = "$w" ;
12
+ const $W_MEMBER_KEY = "// $W_NAMESPACE_MEMBERS" ;
13
+
14
+ function find$wService ( services ) {
15
+ return services . find (
16
+ service =>
17
+ service . name === $W &&
18
+ ! Object . prototype . hasOwnProperty . call ( service , "memberOf" )
19
+ ) ;
20
+ }
11
21
12
22
function getQueryableObjectType ( services ) {
13
23
const isQueryableService = service =>
@@ -20,10 +30,45 @@ function getQueryableObjectType(services) {
20
30
return dtsObjectTypeAlias ( QUERYABLE_TYPE , properties ) ;
21
31
}
22
32
33
+ function extract$wComments ( services ) {
34
+ const $wService = find$wService ( services ) ;
35
+ const $wOperation = $wService . operations . find (
36
+ operation => operation . name === $W
37
+ ) ;
38
+ const [ $w$wMembersComment ] = $wService . operations
39
+ . filter ( o => o . name === $W )
40
+ . map ( operation => operation . docs . summary ) ;
41
+ return {
42
+ $W_GLOBAL_DECLARATION_COMMENT : $wOperation . docs . summary ,
43
+ $W_NAMESPACE_COMMENT : $wService . docs . summary ,
44
+ $W_$W_DECLARATION_COMMENT : $w$wMembersComment
45
+ } ;
46
+ }
47
+
48
+ function extract$wMembers ( services ) {
49
+ const $wService = find$wService ( services ) ;
50
+ const $wMembersOperations = $wService . operations
51
+ . filter ( o => o . name !== $W )
52
+ . map ( operation => {
53
+ return convertOperationToFunction ( $wService , operation , {
54
+ documentationGenerator : ( { summary } ) => summary
55
+ } ) ;
56
+ } ) ;
57
+ return convertTreeToString ( $wMembersOperations ) ;
58
+ }
59
+
23
60
function $wDeclarationBuilder ( services ) {
61
+ const $wComments = extract$wComments ( services ) ;
62
+ const $wMembers = extract$wMembers ( services ) ;
24
63
const queryableType = getQueryableObjectType ( services ) ;
25
64
26
- const page$w = fs . readFileSync ( "./src_types/pages/$w.d.ts" , null , "utf-8" ) ;
65
+ let page$w = fs . readFileSync ( "./src_types/pages/$w.d.ts" , "utf-8" ) ;
66
+ page$w = page$w . replace ( $W_MEMBER_KEY , $wMembers ) ;
67
+ page$w = Object . keys ( $wComments ) . reduce (
68
+ ( dts , commnetKey ) => dts . replace ( commnetKey , $wComments [ commnetKey ] ) ,
69
+ page$w
70
+ ) ;
71
+
27
72
return [ convertTreeToString ( { queryableType } ) , page$w ] . join ( "\n" ) ;
28
73
}
29
74
0 commit comments