Buckets:
| import { Config, ConfigProvider, Effect, Layer, Schema } from "effect" | |
| import * as Context from "effect/Context" | |
| import { Resource } from "sst/resource" | |
| export class AppConfigValue extends Schema.Class<AppConfigValue>("AppConfigValue")({ | |
| stage: Schema.NonEmptyString, | |
| publicUrl: Schema.NonEmptyString, | |
| }) {} | |
| const decodeAppConfigValue = Schema.decodeUnknownSync(AppConfigValue) | |
| const config = Config.all({ | |
| stage: Config.succeed(Resource.App.stage), | |
| publicUrl: Config.string("PUBLIC_URL").pipe(Config.withDefault("http://localhost:3000")), | |
| }).pipe(Config.map(decodeAppConfigValue)) | |
| export class AppConfig extends Context.Service<AppConfig, AppConfigValue>()("@opencode/stats/AppConfig") { | |
| static readonly config = config | |
| static readonly layer: Layer.Layer<AppConfig, never, never> = Layer.effect( | |
| AppConfig, | |
| config.parse(ConfigProvider.fromEnv()).pipe(Effect.orDie), | |
| ) | |
| } | |
Xet Storage Details
- Size:
- 896 Bytes
- Xet hash:
- 25b11b3fb07baf75a87b5a706dc33df6c1ee255cc3b53011be2787247d83fb36
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.