which-url 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -126,6 +126,12 @@ url.href // never throws
126
126
 
127
127
  In **development**, it always falls back to localhost.
128
128
 
129
+ ## Gotchas
130
+
131
+ ### Vercel: Redeploy after assigning a custom domain
132
+
133
+ Framework-prefixed env vars like `NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL` are inlined into the bundle at **build time** — the bundler replaces references with their literal values. If you assign a custom domain after deploying, the old deployment still has the previous URL baked in. Trigger a new deployment for the updated domain to take effect.
134
+
129
135
  ## Cloudflare Workers
130
136
 
131
137
  Cloudflare Workers use runtime `env` bindings instead of `process.env`. Set `APP_URL` in `wrangler.toml`:
package/dist/env-var.d.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Read an env var, checking all framework-prefixed versions.
3
+ * On the server, unprefixed wins (it's always set).
4
+ * On the client, the bundler inlines the prefixed version.
5
+ *
6
+ * When called with an `env` object (e.g. from provider detection),
7
+ * falls back to dynamic lookup for test/server compatibility.
8
+ */
1
9
  export declare function getVar(env: Record<string, string | undefined>, name: string): string | undefined;
2
10
  export declare function getEnv(): Record<string, string | undefined>;
3
11
  //# sourceMappingURL=env-var.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env-var.d.ts","sourceRoot":"","sources":["../src/env-var.ts"],"names":[],"mappings":"AAaA,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAK3D"}
1
+ {"version":3,"file":"env-var.d.ts","sourceRoot":"","sources":["../src/env-var.ts"],"names":[],"mappings":"AAgGA;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CA0BpB;AAED,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAK3D"}
package/dist/index.js CHANGED
@@ -1,18 +1,39 @@
1
1
  // src/env-var.ts
2
- var FRAMEWORK_PREFIXES = [
3
- "",
4
- "NEXT_PUBLIC_",
5
- "NUXT_ENV_",
6
- "VITE_",
7
- "PUBLIC_",
8
- "REACT_APP_",
9
- "GATSBY_",
10
- "VUE_APP_",
11
- "REDWOOD_ENV_",
12
- "SANITY_STUDIO_"
13
- ];
2
+ function readStatic(name) {
3
+ switch (name) {
4
+ case "VERCEL_ENV":
5
+ return process.env.VERCEL_ENV || process.env.NEXT_PUBLIC_VERCEL_ENV || process.env.NUXT_ENV_VERCEL_ENV || process.env.VITE_VERCEL_ENV || process.env.PUBLIC_VERCEL_ENV || process.env.REACT_APP_VERCEL_ENV || process.env.GATSBY_VERCEL_ENV || process.env.VUE_APP_VERCEL_ENV || process.env.REDWOOD_ENV_VERCEL_ENV || process.env.SANITY_STUDIO_VERCEL_ENV || undefined;
6
+ case "VERCEL_URL":
7
+ return process.env.VERCEL_URL || process.env.NEXT_PUBLIC_VERCEL_URL || process.env.NUXT_ENV_VERCEL_URL || process.env.VITE_VERCEL_URL || process.env.PUBLIC_VERCEL_URL || process.env.REACT_APP_VERCEL_URL || process.env.GATSBY_VERCEL_URL || process.env.VUE_APP_VERCEL_URL || process.env.REDWOOD_ENV_VERCEL_URL || process.env.SANITY_STUDIO_VERCEL_URL || undefined;
8
+ case "VERCEL_BRANCH_URL":
9
+ return process.env.VERCEL_BRANCH_URL || process.env.NEXT_PUBLIC_VERCEL_BRANCH_URL || process.env.NUXT_ENV_VERCEL_BRANCH_URL || process.env.VITE_VERCEL_BRANCH_URL || process.env.PUBLIC_VERCEL_BRANCH_URL || process.env.REACT_APP_VERCEL_BRANCH_URL || process.env.GATSBY_VERCEL_BRANCH_URL || process.env.VUE_APP_VERCEL_BRANCH_URL || process.env.REDWOOD_ENV_VERCEL_BRANCH_URL || process.env.SANITY_STUDIO_VERCEL_BRANCH_URL || undefined;
10
+ case "VERCEL_PROJECT_PRODUCTION_URL":
11
+ return process.env.VERCEL_PROJECT_PRODUCTION_URL || process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL || process.env.NUXT_ENV_VERCEL_PROJECT_PRODUCTION_URL || process.env.VITE_VERCEL_PROJECT_PRODUCTION_URL || process.env.PUBLIC_VERCEL_PROJECT_PRODUCTION_URL || process.env.REACT_APP_VERCEL_PROJECT_PRODUCTION_URL || process.env.GATSBY_VERCEL_PROJECT_PRODUCTION_URL || process.env.VUE_APP_VERCEL_PROJECT_PRODUCTION_URL || process.env.REDWOOD_ENV_VERCEL_PROJECT_PRODUCTION_URL || process.env.SANITY_STUDIO_VERCEL_PROJECT_PRODUCTION_URL || undefined;
12
+ case "APP_URL":
13
+ return process.env.APP_URL || process.env.NEXT_PUBLIC_APP_URL || process.env.NUXT_ENV_APP_URL || process.env.VITE_APP_URL || process.env.PUBLIC_APP_URL || process.env.REACT_APP_APP_URL || process.env.GATSBY_APP_URL || process.env.VUE_APP_APP_URL || process.env.REDWOOD_ENV_APP_URL || process.env.SANITY_STUDIO_APP_URL || undefined;
14
+ case "APP_ENV":
15
+ return process.env.APP_ENV || process.env.NEXT_PUBLIC_APP_ENV || process.env.NUXT_ENV_APP_ENV || process.env.VITE_APP_ENV || process.env.PUBLIC_APP_ENV || process.env.REACT_APP_APP_ENV || process.env.GATSBY_APP_ENV || process.env.VUE_APP_APP_ENV || process.env.REDWOOD_ENV_APP_ENV || process.env.SANITY_STUDIO_APP_ENV || undefined;
16
+ }
17
+ }
14
18
  function getVar(env, name) {
15
- for (const prefix of FRAMEWORK_PREFIXES) {
19
+ if (typeof process !== "undefined" && process?.env && env === process.env) {
20
+ const val = readStatic(name);
21
+ if (val)
22
+ return val;
23
+ }
24
+ const PREFIXES = [
25
+ "",
26
+ "NEXT_PUBLIC_",
27
+ "NUXT_ENV_",
28
+ "VITE_",
29
+ "PUBLIC_",
30
+ "REACT_APP_",
31
+ "GATSBY_",
32
+ "VUE_APP_",
33
+ "REDWOOD_ENV_",
34
+ "SANITY_STUDIO_"
35
+ ];
36
+ for (const prefix of PREFIXES) {
16
37
  const val = env[prefix + name];
17
38
  if (val)
18
39
  return val;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "which-url",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Auto-detect your app's URL across hosting providers. Zero config.",
5
5
  "type": "module",
6
6
  "exports": {