@nph.muller/next-runtime-env
Version:
Next.js Runtime Environment Configuration - Populates your environment at runtime rather than build time.
32 lines • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EnvScript = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const constants_1 = require("./constants");
/**
* Sets the provided environment variables in the browser. If an nonce is
* available, it will be set on the script tag.
*
* Usage:
* ```ts
* <head>
* <EnvScript env={{ NODE_ENV: 'test', API_URL: 'http://localhost:3000' }} />
* </head>
* ```
*/
const EnvScript = ({ env, nonce }) => {
let nonceString;
// XXX: Blocked by https://github.com/vercel/next.js/pull/58129
// if (typeof nonce === 'object' && nonce !== null) {
// // It's strongly recommended to set a nonce on your script tags.
// nonceString = headers().get(nonce.headerKey) ?? undefined;
// }
if (typeof nonce === 'string') {
nonceString = nonce;
}
return ((0, jsx_runtime_1.jsx)("script", { "data-testid": "env-script", nonce: nonceString, dangerouslySetInnerHTML: {
__html: `window['${constants_1.PUBLIC_ENV_KEY}'] = ${JSON.stringify(env)}`,
} }));
};
exports.EnvScript = EnvScript;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHQvZW52LXNjcmlwdC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLDJDQUE2QztBQU83Qzs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxTQUFTLEdBQXVCLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtJQUM5RCxJQUFJLFdBQStCLENBQUM7SUFFcEMsK0RBQStEO0lBQy9ELHFEQUFxRDtJQUNyRCxxRUFBcUU7SUFDckUsK0RBQStEO0lBQy9ELElBQUk7SUFFSixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU8sQ0FDTCxrREFDYyxZQUFZLEVBQ3hCLEtBQUssRUFBRSxXQUFXLEVBQ2xCLHVCQUF1QixFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxXQUFXLDBCQUFjLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtTQUMvRCxHQUNELENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXRCVyxRQUFBLFNBQVMsYUFzQnBCIn0=