next-runtime-env
Version:
Next.js Runtime Environment Configuration - Populates your environment at runtime rather than build time.
47 lines • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeEnvPublic = makeEnvPublic;
const log_1 = require("../helpers/log");
function prefixKey(key, options) {
// Check if key is available in process.env.
if (!process.env[key]) {
(0, log_1.warn)(`Skipped prefixing environment variable '${key}'. Variable not in process.env`, options);
return;
}
// Check if key is already public.
if (/^NEXT_PUBLIC_/i.test(key)) {
(0, log_1.warn)(`Environment variable '${key}' is already public`, options);
}
const prefixedKey = `NEXT_PUBLIC_${key}`;
process.env[prefixedKey] = process.env[key];
// eslint-disable-next-line no-console
(0, log_1.event)(`Prefixed environment variable '${key}'`, options);
}
/**
* Make a private environment variable public, so that it can be accessed in the
* browser.
*
* Usage:
* ```ts
* // Make a single variable public.
* makeEnvPublic('FOO');
*
* // Make multiple variables public.
* makeEnvPublic(['FOO', 'BAR', 'BAZ']);
*
* // Disable logging.
* makeEnvPublic('FOO', { logLevel: 'silent' });
*
* // Disable logging in production
* makeEnvPublic('FOO', { logLevel: process.env.NODE_ENV === 'production' ? 'silent': 'info' });
* ```
*/
function makeEnvPublic(key, options) {
if (typeof key === 'string') {
prefixKey(key, options);
}
else {
key.forEach((value) => prefixKey(value, options));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1lbnYtcHVibGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21ha2UtZW52LXB1YmxpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStDQSxzQ0FTQztBQXhERCx3Q0FBeUQ7QUFJekQsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQThCO0lBQzVELDRDQUE0QztJQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUEsVUFBSSxFQUNGLDJDQUEyQyxHQUFHLGdDQUFnQyxFQUM5RSxPQUFPLENBQ1IsQ0FBQztRQUVGLE9BQU87SUFDVCxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsSUFBQSxVQUFJLEVBQUMseUJBQXlCLEdBQUcscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFFekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRTVDLHNDQUFzQztJQUN0QyxJQUFBLFdBQUssRUFBQyxrQ0FBa0MsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQixhQUFhLENBQzNCLEdBQXNCLEVBQ3RCLE9BQThCO0lBRTlCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0FBQ0gsQ0FBQyJ9