Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/ninety-jobs-bet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/kit': minor
---

feat: move `defineEnvVars` to `@sveltejs/kit/env`
16 changes: 8 additions & 8 deletions documentation/docs/20-core-concepts/70-environment-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,14 @@ export default {

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';

export const variables = defineEnvVars({
// ...
});
```

Each value in the object passed to [`defineEnvVars`](@sveltejs-kit-hooks#defineEnvVars) is an [`EnvVarConfig`](@sveltejs-kit#EnvVarConfig) object that configures the environment variable.
Each value in the object passed to [`defineEnvVars`](@sveltejs-kit-env#defineEnvVars) is an [`EnvVarConfig`](@sveltejs-kit#EnvVarConfig) object that configures the environment variable.

> [!NOTE] `defineEnvVars` returns its argument unaltered — it exists purely to help with type safety.

Expand All @@ -65,7 +65,7 @@ By default, all variables are considered private. For example, you don't want to

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';

export const variables = defineEnvVars({
+++API_KEY: {}+++
Expand All @@ -88,7 +88,7 @@ Some variables are perfectly safe — necessary, even — to expose to the brow

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';

export const variables = defineEnvVars({
GOOGLE_ANALYTICS_ID: {
Expand Down Expand Up @@ -133,7 +133,7 @@ You can specify a [Standard Schema](https://standardschema.dev/) validator such

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';
+++import * as v from 'valibot';+++

export const variables = defineEnvVars({
Expand All @@ -148,7 +148,7 @@ If a value is invalid, the app will fail to start (or build). To opt out of one

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';
+++import { building } from '$app/env'+++
import * as v from 'valibot';

Expand All @@ -168,7 +168,7 @@ By default, variables are dynamic. If a variable is configured with `static: tru

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';
import * as v from 'valibot';

export const variables = defineEnvVars({
Expand Down Expand Up @@ -212,7 +212,7 @@ You can document the purpose of an environment variable by adding a `description

```ts
/// file: src/env.ts
import { defineEnvVars } from '@sveltejs/kit/hooks';
import { defineEnvVars } from '@sveltejs/kit/env';

export const variables = defineEnvVars({
CACHE_TTL_SECONDS: {
Expand Down
5 changes: 5 additions & 0 deletions documentation/docs/98-reference/15-@sveltejs-kit-env.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: @sveltejs/kit/env
---

> MODULE: @sveltejs/kit/env
4 changes: 4 additions & 0 deletions packages/kit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@
"types": "./types/index.d.ts",
"import": "./src/exports/hooks/index.js"
},
"./env": {
"types": "./types/index.d.ts",
"import": "./src/exports/env/index.js"
},
"./vite": {
"types": "./types/index.d.ts",
"import": "./src/exports/vite/index.js"
Expand Down
1 change: 1 addition & 0 deletions packages/kit/scripts/generate-dts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ await createBundle({
output: 'types/index.d.ts',
modules: {
'@sveltejs/kit': 'src/exports/public.d.ts',
'@sveltejs/kit/env': 'src/exports/env/index.js',
'@sveltejs/kit/hooks': 'src/exports/hooks/index.js',
'@sveltejs/kit/node': 'src/exports/node/index.js',
'@sveltejs/kit/node/polyfills': 'src/exports/node/polyfills.js',
Expand Down
12 changes: 12 additions & 0 deletions packages/kit/src/exports/env/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/** @import { EnvVarConfig } from '@sveltejs/kit' */

/**
* Utility for defining [environment variables](https://svelte.dev/docs/kit/environment-variables),
* which are made available via `$app/env/public` and `$app/env/private`.
* @template {Record<string, EnvVarConfig<any>>} T
* @param {T} variables
* @returns {T}
*/
export function defineEnvVars(variables) {
return variables;
}
2 changes: 2 additions & 0 deletions packages/kit/src/exports/hooks/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ export { sequence } from './sequence.js';
* @template {Record<string, EnvVarConfig<any>>} T
* @param {T} variables
* @returns {T}
* @deprecated Import `defineEnvVars` from `@sveltejs/kit/env` instead
*/
export function defineEnvVars(variables) {
console.warn(`\`defineEnvVars\` has moved — import it from \`@sveltejs/kit/env\` instead`);
return variables;
}
2 changes: 1 addition & 1 deletion packages/kit/src/exports/public.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2366,7 +2366,7 @@ export type RemoteLiveQueryFunction<Input, Output, _Validated = Input> = (

/**
* [Environment variables](https://svelte.dev/docs/kit/environment-variables) can be configured by exporting
* a `variables` object from `src/env.ts`, using [`defineEnvVars`](https://svelte.dev/docs/kit/@sveltejs-kit-hooks#defineEnvVars).
* a `variables` object from `src/env.ts`, using [`defineEnvVars`](https://svelte.dev/docs/kit/@sveltejs-kit-env#defineEnvVars).
*/
export interface EnvVarConfig<T> {
/**
Expand Down
16 changes: 14 additions & 2 deletions packages/kit/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2339,7 +2339,7 @@ declare module '@sveltejs/kit' {

/**
* [Environment variables](https://svelte.dev/docs/kit/environment-variables) can be configured by exporting
* a `variables` object from `src/env.ts`, using [`defineEnvVars`](https://svelte.dev/docs/kit/@sveltejs-kit-hooks#defineEnvVars).
* a `variables` object from `src/env.ts`, using [`defineEnvVars`](https://svelte.dev/docs/kit/@sveltejs-kit-env#defineEnvVars).
*/
export interface EnvVarConfig<T> {
/**
Expand Down Expand Up @@ -3045,12 +3045,24 @@ declare module '@sveltejs/kit' {
export {};
}

declare module '@sveltejs/kit/env' {
import type { EnvVarConfig } from '@sveltejs/kit';
/**
* Utility for defining [environment variables](https://svelte.dev/docs/kit/environment-variables),
* which are made available via `$app/env/public` and `$app/env/private`.
* */
export function defineEnvVars<T extends Record<string, EnvVarConfig<any>>>(variables: T): T;

export {};
}

declare module '@sveltejs/kit/hooks' {
import type { EnvVarConfig, Handle } from '@sveltejs/kit';
/**
* Utility for defining [environment variables](https://svelte.dev/docs/kit/environment-variables),
* which are made available via `$app/env/public` and `$app/env/private`.
* */
* @deprecated Import `defineEnvVars` from `@sveltejs/kit/env` instead
*/
export function defineEnvVars<T extends Record<string, EnvVarConfig<any>>>(variables: T): T;
/**
* A helper function for sequencing multiple `handle` calls in a middleware-like manner.
Expand Down
Loading