From 62731a8b641f5c14196dc8daf1d60ac68f8a28f8 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Tue, 19 Nov 2019 23:28:23 +0530 Subject: [PATCH] Correctly store language and platform mappings together (#3588) Previously they were stored separately in their own arrays. This made them disconnected, and impossible to know if a page belonged to which platform and language combination. This PR adds an array of objects called `targets` which contains platform/language pairs. --- .gitignore | 1 + scripts/build-index.js | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 58c6ed065..38b05a106 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ test_result # but it's been superseded by a static asset # hosted at https://tldr-pages.github.io/assets/index.json pages/index.json +index.json diff --git a/scripts/build-index.js b/scripts/build-index.js index 4302f820d..360b35c19 100644 --- a/scripts/build-index.js +++ b/scripts/build-index.js @@ -29,8 +29,19 @@ function buildPagesIndex(files) { if (!index[page].language.includes(language)) { index[page].language.push(language); } + + const targets = index[page].targets; + const exists = targets.some((t) => {return t.platform === os && t.language === language}); + if (!exists) { + targets.push({os, language}) + } } else { - index[page] = {name: page, platform: [os], language: [language]}; + index[page] = { + name: page, + platform: [os], + language: [language], + targets: [{os, language}] + }; } return index; @@ -43,8 +54,9 @@ function buildPagesIndex(files) { .map(function(page) { return { name: page, - platform: obj[page]["platform"], - language: obj[page]["language"] + platform: obj[page].platform, + language: obj[page].language, + targets: obj[page].targets }; }); }