@@ -75,10 +75,7 @@ extension EnvironmentClient: DependencyKey {
7575 builderToken: { Environment . get ( " BUILDER_TOKEN " ) } ,
7676 buildTimeout: { Environment . get ( " BUILD_TIMEOUT " ) . flatMap ( Int . init) ?? 10 } ,
7777 buildTriggerAllowList: {
78- Environment . get ( " BUILD_TRIGGER_ALLOW_LIST " )
79- . map { Data ( $0. utf8) }
80- . flatMap { try ? JSONDecoder ( ) . decode ( [ Package . Id ] . self, from: $0) }
81- ?? [ ]
78+ Environment . decode ( " BUILD_TRIGGER_ALLOW_LIST " , as: [ Package . Id ] . self) ?? [ ]
8279 } ,
8380 buildTriggerDownscaling: {
8481 Environment . get ( " BUILD_TRIGGER_DOWNSCALING " )
@@ -108,9 +105,7 @@ extension EnvironmentClient: DependencyKey {
108105 } ,
109106 random: { range in Double . random ( in: range) } ,
110107 shouldFail: { failureMode in
111- let shouldFail = Environment . get ( " FAILURE_MODE " )
112- . map { Data ( $0. utf8) }
113- . flatMap { try ? JSONDecoder ( ) . decode ( [ String : Double ] . self, from: $0) } ?? [ : ]
108+ let shouldFail = Environment . decode ( " FAILURE_MODE " , as: [ String : Double ] . self) ?? [ : ]
114109 guard let rate = shouldFail [ failureMode. rawValue] else { return false }
115110 return Double . random ( in: 0 ... 1 ) <= rate
116111 }
@@ -154,3 +149,12 @@ extension DependencyValues {
154149 set { self [ EnvironmentClient . self] = newValue }
155150 }
156151}
152+
153+
154+ private extension Environment {
155+ static func decode< T: Decodable > ( _ key: String , as type: T . Type ) -> T ? {
156+ Environment . get ( key)
157+ . map { Data ( $0. utf8) }
158+ . flatMap { try ? JSONDecoder ( ) . decode ( type, from: $0) }
159+ }
160+ }
0 commit comments