externalTypeResolver: createStandardLibraryTypeResolver()

in server/src/standardLibrary/standardLibraryUtils.ts [19:51]


            externalTypeResolver: createStandardLibraryTypeResolver(libraryDefinitions),
            libraryDefinitions,
        });
    }

    return PQP.Assert.asDefined(libraryByLocale.get(locale));
}

function getOrCreateStandardLibraryDefinitions(locale: string): PQLS.Library.LibraryDefinitions {
    if (!libraryDefinitionsByLocale.has(locale)) {
        const json: StandardLibrary = jsonByLocale.get(locale) ?? StandardLibraryEnUs;
        const mapped: Map<string, PQLS.Library.TLibraryDefinition> = new Map(
            json.map((xport: StandardLibraryExport) => [xport.name, mapExport(xport)]),
        );
        libraryDefinitionsByLocale.set(locale, mapped);
    }

    return PQP.Assert.asDefined(libraryDefinitionsByLocale.get(locale));
}

const jsonByLocale: Map<string, StandardLibrary> = new Map([[PQP.Locale.en_US, StandardLibraryEnUs]]);

const libraryByLocale: Map<string, PQLS.Library.ILibrary> = new Map();

const libraryDefinitionsByLocale: Map<string, Map<string, PQLS.Library.TLibraryDefinition>> = new Map();

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 {