From 732e3fccb67f768db77dc586ed5a5f7fafbbe611 Mon Sep 17 00:00:00 2001 From: Albert Gasset Date: Mon, 18 Mar 2019 14:23:21 +0100 Subject: [PATCH] MOBILE-2838 site: Index functions by name to speed up wsAvailable --- src/classes/site.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/classes/site.ts b/src/classes/site.ts index b9068bd13..e103ab63a 100644 --- a/src/classes/site.ts +++ b/src/classes/site.ts @@ -217,6 +217,7 @@ export class CoreSite { this.wsProvider = injector.get(CoreWSProvider); this.logger = logger.getInstance('CoreWSProvider'); + this.setInfo(infos); this.calculateOfflineDisabled(); if (this.id) { @@ -349,6 +350,14 @@ export class CoreSite { */ setInfo(infos: any): void { this.infos = infos; + + // Index function by name to speed up wsAvailable method. + if (infos && infos.functions) { + infos.functionsByName = {}; + infos.functions.forEach((func) => { + infos.functionsByName[func.name] = func; + }); + } } /** @@ -711,11 +720,8 @@ export class CoreSite { return false; } - for (let i = 0; i < this.infos.functions.length; i++) { - const func = this.infos.functions[i]; - if (func.name == method) { - return true; - } + if (this.infos.functionsByName[method]) { + return true; } // Let's try again with the compatibility prefix.