55 * LICENSE file in the root of this projects source tree.
66 */
77
8+ import * as PQLSExt from "./vscode-powerquery.api.d" ;
9+
810import { PQTestTask } from "./PowerQueryTask" ;
911import type { ValueEventEmitter } from "./ValueEventEmitter" ;
1012
@@ -134,43 +136,33 @@ export interface IPQTestService {
134136
135137const CommonArgs : string [ ] = [ "--prettyPrint" ] ;
136138
137- // eslint-disable-next-line @typescript-eslint/no-explicit-any
138- export function convertExtensionInfoToLibraryJson ( extensionInfos : ExtensionInfo [ ] ) : any [ ] {
139- // eslint-disable-next-line @typescript-eslint/no-explicit-any
140- const result : any [ ] = [ ] ;
139+ export function convertExtensionInfoToLibraryJson ( extensionInfos : ExtensionInfo [ ] ) : PQLSExt . LibraryJson {
140+ const libraryExports : PQLSExt . LibraryExportJson [ ] = [ ] ;
141141
142142 for ( const oneInfo of extensionInfos ) {
143143 if ( oneInfo . Members && Array . isArray ( oneInfo . Members ) ) {
144- for ( const oneInfoMemeber of oneInfo . Members ) {
145- // eslint-disable-next-line @typescript-eslint/no-explicit-any
146- const one : any = { } ;
147-
148- one . name = oneInfoMemeber . Name ;
149- one . completionItemType = oneInfoMemeber . CompletionItemType ;
150- one . isDataSource = oneInfoMemeber . IsDataSource ;
151- one . dataType = oneInfoMemeber . DataTypeOrReturnType ;
152-
153- if ( oneInfoMemeber . Documentation && Array . isArray ( oneInfoMemeber . Documentation ) ) {
154- one . documentation = [ ] ;
155-
156- for ( const oneInfoMemberDoc of oneInfoMemeber . Documentation ) {
157- one . documentation . push ( {
158- description : oneInfoMemberDoc . Description ?? null ,
159- longDescription : oneInfoMemberDoc . LongDescription ?? null ,
160- category : oneInfoMemberDoc . Category ?? null ,
161- } ) ;
162- }
163- } else {
164- one . documentation = null ;
165- }
166-
167- if ( oneInfoMemeber . FunctionParameters && Array . isArray ( oneInfoMemeber . FunctionParameters ) ) {
168- one . functionParameters = [ ] ;
169-
170- for ( const oneInfoMemberPara of oneInfoMemeber . FunctionParameters ) {
171- one . functionParameters . push ( {
144+ for ( const oneInfoMember of oneInfo . Members ) {
145+ // TODO: language extension expects a single member rather than an array.
146+ // if (oneInfoMember.Documentation && Array.isArray(oneInfoMember.Documentation)) {
147+ // one.documentation = [];
148+
149+ // for (const oneInfoMemberDoc of oneInfoMember.Documentation) {
150+ // one.documentation.push({
151+ // description: oneInfoMemberDoc.Description ?? null,
152+ // longDescription: oneInfoMemberDoc.LongDescription ?? null,
153+ // });
154+ // }
155+ // } else {
156+ // one.documentation = null;
157+ // }
158+
159+ const functionParameters : PQLSExt . LibraryFunctionParameterJson [ ] = [ ] ;
160+
161+ if ( oneInfoMember . FunctionParameters && Array . isArray ( oneInfoMember . FunctionParameters ) ) {
162+ for ( const oneInfoMemberPara of oneInfoMember . FunctionParameters ) {
163+ functionParameters . push ( {
172164 name : oneInfoMemberPara . Name ,
173- parameterType : oneInfoMemberPara . ParameterType ,
165+ type : oneInfoMemberPara . ParameterType ,
174166 isRequired : oneInfoMemberPara . IsRequired ,
175167 isNullable : oneInfoMemberPara . IsNullable ,
176168 caption : oneInfoMemberPara . Caption ?? null ,
@@ -194,16 +186,23 @@ export function convertExtensionInfoToLibraryJson(extensionInfos: ExtensionInfo[
194186 enumCaptions : oneInfoMemberPara . EnumCaptions ?? null ,
195187 } ) ;
196188 }
197- } else {
198- one . functionParameters = null ;
199189 }
200190
201- result . push ( one ) ;
191+ const one : PQLSExt . LibraryExportJson = {
192+ name : oneInfoMember . Name ,
193+ documentation : null ,
194+ completionItemKind : oneInfoMember . CompletionItemType ,
195+ functionParameters : functionParameters . length > 0 ? functionParameters : null ,
196+ isDataSource : oneInfoMember . IsDataSource ,
197+ type : oneInfoMember . DataTypeOrReturnType ,
198+ } ;
199+
200+ libraryExports . push ( one ) ;
202201 }
203202 }
204203 }
205204
206- return result ;
205+ return libraryExports ;
207206}
208207
209208export function buildPqTestArgs ( pqTestTask : PQTestTask ) : string [ ] {
0 commit comments