@matthew-hre/env 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -85,14 +85,23 @@ function parseClientServerSchema(schema, env, options) {
85
85
  const errors = [];
86
86
  let serverEnv;
87
87
  let clientEnv;
88
- try {
89
- serverEnv = schema.server.parse(env);
90
- } catch (err) {
91
- if (err instanceof import_zod.ZodError) {
92
- errors.push({ context: "server", error: err });
93
- } else {
94
- throw err;
88
+ const isServer = typeof window === "undefined";
89
+ if (isServer) {
90
+ try {
91
+ serverEnv = schema.server.parse(env);
92
+ } catch (err) {
93
+ if (err instanceof import_zod.ZodError) {
94
+ errors.push({ context: "server", error: err });
95
+ } else {
96
+ throw err;
97
+ }
95
98
  }
99
+ } else {
100
+ serverEnv = new Proxy({}, {
101
+ get: () => {
102
+ throw new Error("\u274C Attempted to access a server-side environment variable on the client");
103
+ }
104
+ });
96
105
  }
97
106
  const clientEnv_variables = Object.fromEntries(
98
107
  Object.entries(env).filter(([key]) => key.startsWith("NEXT_PUBLIC_"))
package/dist/index.js CHANGED
@@ -49,14 +49,23 @@ function parseClientServerSchema(schema, env, options) {
49
49
  const errors = [];
50
50
  let serverEnv;
51
51
  let clientEnv;
52
- try {
53
- serverEnv = schema.server.parse(env);
54
- } catch (err) {
55
- if (err instanceof ZodError) {
56
- errors.push({ context: "server", error: err });
57
- } else {
58
- throw err;
52
+ const isServer = typeof window === "undefined";
53
+ if (isServer) {
54
+ try {
55
+ serverEnv = schema.server.parse(env);
56
+ } catch (err) {
57
+ if (err instanceof ZodError) {
58
+ errors.push({ context: "server", error: err });
59
+ } else {
60
+ throw err;
61
+ }
59
62
  }
63
+ } else {
64
+ serverEnv = new Proxy({}, {
65
+ get: () => {
66
+ throw new Error("\u274C Attempted to access a server-side environment variable on the client");
67
+ }
68
+ });
60
69
  }
61
70
  const clientEnv_variables = Object.fromEntries(
62
71
  Object.entries(env).filter(([key]) => key.startsWith("NEXT_PUBLIC_"))
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@matthew-hre/env",
3
3
  "type": "module",
4
- "version": "0.3.0",
4
+ "version": "0.3.1",
5
5
  "description": "Type safe environment variable validation for NextJS projects",
6
6
  "author": "Matthew Hrehirchuk",
7
7
  "license": "MIT",