next-runtime-env
Version:
Next.js Runtime Environment Configuration - Populates your environment at runtime rather than build time.
26 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.env = env;
const cache_1 = require("next/cache");
const is_browser_1 = require("../helpers/is-browser");
const constants_1 = require("./constants");
/**
* Reads a safe environment variable from the browser or any environment
* variable from the server (process.env).
*
* Usage:
* ```ts
* const API_URL = env('NEXT_PUBLIC_API_URL');
* ```
*/
function env(key) {
if ((0, is_browser_1.isBrowser)()) {
if (!key.startsWith('NEXT_PUBLIC_')) {
throw new Error(`Environment variable '${key}' is not public and cannot be accessed in the browser.`);
}
return window[constants_1.PUBLIC_ENV_KEY][key];
}
(0, cache_1.unstable_noStore)();
return process.env[key];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdC9lbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxrQkFjQztBQTVCRCxzQ0FBeUQ7QUFFekQsc0RBQWtEO0FBQ2xELDJDQUE2QztBQUU3Qzs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLEdBQUcsQ0FBQyxHQUFXO0lBQzdCLElBQUksSUFBQSxzQkFBUyxHQUFFLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IseUJBQXlCLEdBQUcsd0RBQXdELENBQ3JGLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsMEJBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFBLHdCQUFPLEdBQUUsQ0FBQztJQUVWLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDIn0=