@@ -4,7 +4,7 @@ import type { StartedSpannerEmulatorContainer } from "./spanner-emulator-contain
4
4
5
5
/**
6
6
* Helper class that encapsulates all Spanner client interactions against the emulator.
7
- * Clients and configs are lazily instantiated; user must call setAsEmulatorHost() .
7
+ * Clients and configs are lazily instantiated.
8
8
*/
9
9
export class SpannerEmulatorHelper {
10
10
private clientInstance ?: Spanner ;
@@ -14,56 +14,43 @@ export class SpannerEmulatorHelper {
14
14
15
15
constructor ( private readonly emulator : StartedSpannerEmulatorContainer ) { }
16
16
17
- public setEmulatorHost ( ) : void {
18
- process . env . SPANNER_EMULATOR_HOST = this . emulator . getEmulatorGrpcEndpoint ( ) ;
19
- }
20
-
21
17
/**
22
18
* Lazily get or create the Spanner client.
23
19
*/
24
20
public get client ( ) : Spanner {
25
- if ( ! this . clientInstance ) {
26
- // Provide fake credentials so the auth library never tries metadata
27
- this . clientInstance = new Spanner ( {
28
- projectId : this . emulator . getProjectId ( ) ,
29
- apiEndpoint : this . emulator . getHost ( ) ,
30
- port : this . emulator . getGrpcPort ( ) ,
31
- sslCreds : this . emulator . getSslCredentials ( ) ,
32
- } ) ;
33
- }
21
+ this . clientInstance ??= new Spanner ( {
22
+ projectId : this . emulator . getProjectId ( ) ,
23
+ apiEndpoint : this . emulator . getHost ( ) ,
24
+ port : this . emulator . getGrpcPort ( ) ,
25
+ sslCreds : this . emulator . getSslCredentials ( ) ,
26
+ } ) ;
34
27
return this . clientInstance ;
35
28
}
36
29
37
30
/**
38
31
* Lazily get or create the InstanceAdminClient.
39
32
*/
40
33
private get instanceAdminClient ( ) : ReturnType < Spanner [ "getInstanceAdminClient" ] > {
41
- if ( ! this . instanceAdminClientInstance ) {
42
- this . instanceAdminClientInstance = this . client . getInstanceAdminClient ( ) ;
43
- }
34
+ this . instanceAdminClientInstance ??= this . client . getInstanceAdminClient ( ) ;
44
35
return this . instanceAdminClientInstance ;
45
36
}
46
37
47
38
/**
48
39
* Lazily get or create the DatabaseAdminClient.
49
40
*/
50
41
private get databaseAdminClient ( ) : ReturnType < Spanner [ "getDatabaseAdminClient" ] > {
51
- if ( ! this . databaseAdminClientInstance ) {
52
- this . databaseAdminClientInstance = this . client . getDatabaseAdminClient ( ) ;
53
- }
42
+ this . databaseAdminClientInstance ??= this . client . getDatabaseAdminClient ( ) ;
54
43
return this . databaseAdminClientInstance ;
55
44
}
56
45
57
46
/**
58
47
* Lazily compute the instanceConfig path.
59
48
*/
60
49
public get instanceConfig ( ) : string {
61
- if ( ! this . instanceConfigValue ) {
62
- this . instanceConfigValue = this . instanceAdminClient . instanceConfigPath (
63
- this . emulator . getProjectId ( ) ,
64
- "emulator-config"
65
- ) ;
66
- }
50
+ this . instanceConfigValue ??= this . instanceAdminClient . instanceConfigPath (
51
+ this . emulator . getProjectId ( ) ,
52
+ "emulator-config"
53
+ ) ;
67
54
return this . instanceConfigValue ;
68
55
}
69
56
0 commit comments