@@ -4,23 +4,29 @@ import { createSpinner } from './spinners.js';
44import type { Generator , Language } from './types.js' ;
55
66/**
7- * Build client for a language at the same time, for those who live in the same folder .
7+ * Build code for a specific language .
88 */
9- async function buildClient ( language : Language , gens : Generator [ ] ) : Promise < void > {
10- const cwd = getLanguageFolder ( language ) ;
11- const spinner = createSpinner ( `building '${ language } '` ) ;
9+ async function buildLanguage (
10+ language : Language ,
11+ gens : Generator [ ] ,
12+ playground : boolean ,
13+ ) : Promise < void > {
14+ const cwd = playground ? `playground/${ language } ` : getLanguageFolder ( language ) ;
15+ const spinner = createSpinner ( `building ${ playground ? 'playground' : 'client' } '${ language } '` ) ;
1216 switch ( language ) {
1317 case 'csharp' :
1418 await run ( 'dotnet build --configuration Release' , { cwd, language } ) ;
1519 break ;
1620 case 'javascript' :
17- // eslint-disable-next-line no-case-declarations
18- const packageNames = gens . map ( ( { additionalProperties : { packageName } } ) =>
19- packageName === 'algoliasearch' ? packageName : `@algolia/${ packageName } ` ,
20- ) ;
21-
2221 await run ( 'YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install' , { cwd } ) ;
23- await run ( `yarn build:many '{${ packageNames . join ( ',' ) } ,}'` , { cwd } ) ;
22+ if ( playground ) {
23+ await run ( 'cd node && yarn build' , { cwd } ) ;
24+ } else {
25+ const packageNames = gens . map ( ( { additionalProperties : { packageName } } ) =>
26+ packageName === 'algoliasearch' ? packageName : `@algolia/${ packageName } ` ,
27+ ) ;
28+ await run ( `yarn build:many '{${ packageNames . join ( ',' ) } ,}'` , { cwd } ) ;
29+ }
2430
2531 break ;
2632 case 'java' :
@@ -34,7 +40,10 @@ async function buildClient(language: Language, gens: Generator[]): Promise<void>
3440 await run ( `sbt --batch -Dsbt.server.forcestart=true +compile` , { cwd, language } ) ;
3541 break ;
3642 case 'swift' :
37- await run ( `swift build -Xswiftc -suppress-warnings` , { cwd, language } ) ;
43+ // make this work in the playground
44+ if ( ! playground ) {
45+ await run ( `swift build -Xswiftc -suppress-warnings` , { cwd, language } ) ;
46+ }
3847 break ;
3948 default :
4049 }
@@ -56,5 +65,9 @@ export async function buildClients(generators: Generator[]): Promise<void> {
5665 { } as Record < Language , Generator [ ] > ,
5766 ) ;
5867
59- await Promise . all ( langs . map ( ( lang ) => buildClient ( lang , generatorsMap [ lang ] ) ) ) ;
68+ await Promise . all ( langs . map ( ( lang ) => buildLanguage ( lang , generatorsMap [ lang ] , false ) ) ) ;
69+ }
70+
71+ export async function buildPlaygrounds ( languages : Language [ ] ) : Promise < void > {
72+ await Promise . all ( languages . map ( ( lang ) => buildLanguage ( lang , [ ] , true ) ) ) ;
6073}
0 commit comments