function mapExport()

in server/src/standardLibrary/standardLibraryUtils.ts [45:80]


function mapExport(xport: StandardLibraryExport): PQLS.Library.TLibraryDefinition {
    const primitiveType: PQP.Language.Type.TPrimitiveType = assertPrimitiveTypeFromString(xport.dataType);
    const label: string = xport.name;
    const description: string = xport.documentation?.description ?? "No description available";

    if (primitiveType.kind === PQP.Language.Type.TypeKind.Type) {
        return {
            kind: PQLS.Library.LibraryDefinitionKind.Type,
            label,
            description,
            asPowerQueryType: primitiveType,
            completionItemKind: assertGetCompletionItemKind(xport.completionItemType),
        };
    } else if (xport.functionParameters) {
        const asPowerQueryType: PQP.Language.Type.DefinedFunction = mapLibraryFunctionSignatureToType(
            xport,
            primitiveType,
        );
        return {
            kind: PQLS.Library.LibraryDefinitionKind.Function,
            label: PQP.Language.TypeUtils.nameOf(asPowerQueryType),
            description,
            asPowerQueryType,
            completionItemKind: assertGetCompletionItemKind(xport.completionItemType),
            parameters: xport.functionParameters.map(mapParameterToLibraryParameter),
        };
    } else {
        return {
            kind: PQLS.Library.LibraryDefinitionKind.Constant,
            label,
            description,
            asPowerQueryType: primitiveType,
            completionItemKind: assertGetCompletionItemKind(xport.completionItemType),
        };
    }
}