Env Package

Как и было написано в одном из прошлых сообщениях. Я выпускаю новый пакет в рамках playwright-labs, - fixture-env.

Давняя боль связана с валидацией тех или иных env переменных. Вдохновился t3-env, когда мы описываем схему и сами енв переменные.

import { s } from "ajv-ts"; import { createEnv } from "@playwright-labs/fixture-env/ajv-ts"

export const env = createEnv({ prefix: "PW_", schema: { DATABASE_URL: s.string().format("uri"), // expect PW_DATABASE_URL OPEN_AI_API_KEY: s.string().min(1), // expect PW_OPEN_AI_API_KEY }, env: process.env, });

Есть поддержка zod и ajv-ts из коробки import { z } from "zod" import { createEnv } from "@playwright-labs/fixture-env/zod"

export const env = createEnv({ prefix: "PW_", schema: { DATABASE_URL: s.string().format("uri"), // expect PW_DATABASE_URL OPEN_AI_API_KEY: s.string().min(1), // expect PW_OPEN_AI_API_KEY }, env: process.env, });

А также набор фикстур и ассертов для process.env, такие как getEnvValue и expect(value: string).toBeInEnv() в случае, если createEnv не пользуетесь.

#pw #playwright #ts #typescript @haradkou_sdet