diff --git a/web/source/keyboards/kmwkeyboards.ts b/web/source/keyboards/kmwkeyboards.ts index 16c37b1c89..9cea207ef0 100644 --- a/web/source/keyboards/kmwkeyboards.ts +++ b/web/source/keyboards/kmwkeyboards.ts @@ -898,28 +898,15 @@ namespace com.keyman.keyboards { /** * Build 362: addKeyboardArray() link to Cloud. One or more arguments may be used * - * @param {string|KeyboardStub|(string|KeyboardStub)[]} x keyboard name string or keyboard metadata JSON object + * @param {(string|KeyboardStub)[]} x keyboard name string or keyboard metadata JSON object * */ - async addKeyboardArray(args: string | KeyboardStub | (string|KeyboardStub)[]): - Promise<(KeyboardStub|ErrorStub)[]> { + async addKeyboardArray(x: (string|KeyboardStub)[]): Promise<(KeyboardStub|ErrorStub)[]> { let errorStub: ErrorStub[] = []; - // Determine number of keyboard args - let numArgs = 0, x: (string|KeyboardStub)[] = []; - if (args) { - if (args[0][0]) { - numArgs = args[0].length; - args[0].forEach(a => - x.push(a)); - } else { - numArgs = Array.isArray(args[0]) ? args[0].length : 1; - x = args[0]; - } - } // Store all keyboard meta-data for registering later if called before initialization if(!this.keymanweb.initialized) { - for(var k=0; kx[i]).length > 0) { var pList=(x[i]).split('@'),lList=['']; if(pList[0].toLowerCase() == 'english') { @@ -975,7 +962,7 @@ namespace com.keyman.keyboards { // Register any local keyboards immediately: // - must specify filename, keyboard name, language codes, region codes // - no request will be sent to cloud - let stub: KeyboardStub = x[i]; + let stub = x[i] as KeyboardStub; if(typeof(x[i]['filename']) == 'string') { if(!this.addStub(x[i])) { diff --git a/web/source/kmwbase.ts b/web/source/kmwbase.ts index be2a6bce31..47c7cffc46 100644 --- a/web/source/kmwbase.ts +++ b/web/source/kmwbase.ts @@ -311,24 +311,29 @@ namespace com.keyman { * @returns {Promise<(KeyboardStub|ErrorStub)[]} Promise of added keyboard/error stubs * */ - async ['addKeyboards'](...args: any[]) : Promise<(com.keyman.keyboards.KeyboardStub|com.keyman.keyboards.ErrorStub)[]> { + async ['addKeyboards'](...args: any[]) : + Promise<(com.keyman.keyboards.KeyboardStub|com.keyman.keyboards.ErrorStub)[]> { if (args[0].length == 0) { // Get the cloud keyboard catalog + let stubs: (com.keyman.keyboards.KeyboardStub|com.keyman.keyboards.ErrorStub)[] = []; try { let result:(com.keyman.keyboards.KeyboardStub|com.keyman.keyboards.ErrorStub)[]|Error = await this.keyboardManager.keymanCloudRequest('',false); console.log('Catalog: ', result); - let stubs: com.keyman.keyboards.KeyboardStub[] = []; return Promise.resolve(stubs); } catch(error) { console.error(error); - let stubs: com.keyman.keyboards.ErrorStub[] = []; let stub: com.keyman.keyboards.ErrorStub = {error: error}; stubs.push(stub); return Promise.reject(stubs); }; } else { - return this.keyboardManager.addKeyboardArray(args); + let x: (string|com.keyman.keyboards.KeyboardStub)[] = []; + if (args[0][0]) { + args[0].forEach(a => + x.push(a)); + } + return this.keyboardManager.addKeyboardArray(x); } }