env.ts 609 B

12345678910111213141516171819202122
  1. import { Effect } from "effect"
  2. import { PluginV2 } from "../plugin"
  3. export const EnvPlugin = PluginV2.define({
  4. id: PluginV2.ID.make("env"),
  5. effect: Effect.gen(function* () {
  6. return {
  7. "catalog.transform": Effect.fn(function* (evt) {
  8. for (const item of evt.provider.list()) {
  9. const key = item.provider.env.find((env) => process.env[env])
  10. if (!key) continue
  11. evt.provider.update(item.provider.id, (provider) => {
  12. provider.enabled = {
  13. via: "env",
  14. name: key,
  15. }
  16. })
  17. }
  18. }),
  19. }
  20. }),
  21. })