@@ -5,15 +5,12 @@ import type { Serverless, ServerlessSecretHooks, ServerlessSecretOptions } from
5
5
class ServerlessAWSSecret {
6
6
hooks : ServerlessSecretHooks ;
7
7
options : ServerlessSecretOptions ;
8
- providerCopy : Serverless [ 'service' ] [ 'provider' ] ;
9
- region : string ;
8
+ serverless : Serverless ;
10
9
11
10
constructor ( serverless : Serverless ) {
12
11
this . setOptions ( serverless ) ;
13
12
14
- const { provider } = serverless . service ;
15
- this . region = provider . region ;
16
- this . providerCopy = provider ;
13
+ this . serverless = serverless ;
17
14
18
15
this . hooks = {
19
16
'before:package:initialize' : this . loadSecrets . bind ( this ) ,
@@ -22,7 +19,7 @@ class ServerlessAWSSecret {
22
19
}
23
20
24
21
async loadSecrets ( ) {
25
- const client = new SecretsManagerClient ( { region : this . region } ) ;
22
+ const client = new SecretsManagerClient ( { region : this . serverless . service . provider . region } ) ;
26
23
const command = new GetSecretValueCommand ( { SecretId : this . options . secretId } ) ;
27
24
28
25
const { SecretString } = await client . send ( command ) ;
@@ -34,7 +31,7 @@ class ServerlessAWSSecret {
34
31
const secrets = JSON . parse ( SecretString ) ;
35
32
36
33
let replaceCount = 0 ;
37
- for ( const [ key , value ] of Object . entries ( this . providerCopy . environment ) ) {
34
+ for ( const [ key , value ] of Object . entries ( this . serverless . service . provider . environment ) ) {
38
35
if ( value ?. startsWith ( this . options . secretPrefix ! ) ) {
39
36
const secretKey = value . replace ( this . options . secretPrefix ! , '' ) ;
40
37
@@ -46,7 +43,7 @@ class ServerlessAWSSecret {
46
43
console . log ( `[serverless-aws-secrets]: Replacing ${ key } with secret of ${ secretKey } ` ) ;
47
44
}
48
45
49
- this . providerCopy . environment [ key ] = secrets [ secretKey ] ;
46
+ this . serverless . service . provider . environment [ key ] = secrets [ secretKey ] ;
50
47
51
48
++ replaceCount ;
52
49
}
0 commit comments