From 7936bd82b029688a29156bac7c4ace93cefb43f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Wed, 2 Mar 2022 16:18:45 +0100 Subject: [PATCH 1/2] fix(script): build `javascript-algoliasearch` after other clients --- scripts/buildClients.ts | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/scripts/buildClients.ts b/scripts/buildClients.ts index 48836322a73..925c258aeac 100644 --- a/scripts/buildClients.ts +++ b/scripts/buildClients.ts @@ -86,10 +86,31 @@ async function buildAllClients( } export async function buildClients( - generators: Generator[], + allGenerators: Generator[], verbose: boolean ): Promise { - const langs = [...new Set(generators.map((gen) => gen.language))]; + const langs = [...new Set(allGenerators.map((gen) => gen.language))]; + + // We exclude `javascript-algoliasearch` from the build batch because it + // is made of built generated clients and can cause race issue when executed + // together. + const { generators, jsAlgoliasearch } = allGenerators.reduce( + (prev, curr) => { + const gens = prev; + + if (curr.key === 'javascript-algoliasearch') { + gens.jsAlgoliasearch = curr; + } else { + prev.generators.push(curr); + } + + return gens; + }, + { generators: [], jsAlgoliasearch: undefined } as { + generators: Generator[]; + jsAlgoliasearch?: Generator; + } + ); await Promise.all([ Promise.all( @@ -103,4 +124,8 @@ export async function buildClients( .map((lang) => buildAllClients(lang, verbose)) ), ]); + + if (jsAlgoliasearch) { + await buildPerClient(jsAlgoliasearch, verbose); + } } From 229cd110919efdced242eb98054ed795be6c540c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Thu, 3 Mar 2022 14:56:38 +0100 Subject: [PATCH 2/2] apply changes from suggestion --- scripts/buildClients.ts | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/scripts/buildClients.ts b/scripts/buildClients.ts index 925c258aeac..be7ac42d9d9 100644 --- a/scripts/buildClients.ts +++ b/scripts/buildClients.ts @@ -94,22 +94,11 @@ export async function buildClients( // We exclude `javascript-algoliasearch` from the build batch because it // is made of built generated clients and can cause race issue when executed // together. - const { generators, jsAlgoliasearch } = allGenerators.reduce( - (prev, curr) => { - const gens = prev; - - if (curr.key === 'javascript-algoliasearch') { - gens.jsAlgoliasearch = curr; - } else { - prev.generators.push(curr); - } - - return gens; - }, - { generators: [], jsAlgoliasearch: undefined } as { - generators: Generator[]; - jsAlgoliasearch?: Generator; - } + const jsAlgoliasearch = allGenerators.find( + (gen) => gen.key === 'javascript-algoliasearch' + ); + const generators = allGenerators.filter( + (gen) => gen.key !== 'javascript-algoliasearch' ); await Promise.all([