@@ -4,23 +4,29 @@ import { createSpinner } from './spinners.js';
4
4
import type { Generator , Language } from './types.js' ;
5
5
6
6
/**
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 .
8
8
*/
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 } '` ) ;
12
16
switch ( language ) {
13
17
case 'csharp' :
14
18
await run ( 'dotnet build --configuration Release' , { cwd, language } ) ;
15
19
break ;
16
20
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
-
22
21
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
+ }
24
30
25
31
break ;
26
32
case 'java' :
@@ -34,7 +40,10 @@ async function buildClient(language: Language, gens: Generator[]): Promise<void>
34
40
await run ( `sbt --batch -Dsbt.server.forcestart=true +compile` , { cwd, language } ) ;
35
41
break ;
36
42
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
+ }
38
47
break ;
39
48
default :
40
49
}
@@ -56,5 +65,9 @@ export async function buildClients(generators: Generator[]): Promise<void> {
56
65
{ } as Record < Language , Generator [ ] > ,
57
66
) ;
58
67
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 ) ) ) ;
60
73
}
0 commit comments