UNPKG

@reliverse/rse

Version:

@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power

96 lines (95 loc) 2.12 kB
export function addSvelteKitEnvModules(aliases) { aliases["$env/dynamic/private"] = createDataUriModule( createDynamicEnvModule() ); aliases["$env/dynamic/public"] = createDataUriModule( createDynamicEnvModule() ); aliases["$env/static/private"] = createDataUriModule( createStaticEnvModule(filterPrivateEnv("PUBLIC_", "")) ); aliases["$env/static/public"] = createDataUriModule( createStaticEnvModule(filterPublicEnv("PUBLIC_", "")) ); } function createDataUriModule(module) { return `data:text/javascript;charset=utf-8,${encodeURIComponent(module)}`; } function createStaticEnvModule(env) { const declarations = Object.keys(env).filter((k) => validIdentifier.test(k) && !reserved.has(k)).map((k) => `export const ${k} = ${JSON.stringify(env[k])};`); return ` ${declarations.join("\n")} // jiti dirty hack: .unknown `; } function createDynamicEnvModule() { return ` export const env = process.env; // jiti dirty hack: .unknown `; } export function filterPrivateEnv(publicPrefix, privatePrefix) { return Object.fromEntries( Object.entries(process.env).filter( ([k]) => k.startsWith(privatePrefix) && (publicPrefix === "" || !k.startsWith(publicPrefix)) ) ); } export function filterPublicEnv(publicPrefix, privatePrefix) { return Object.fromEntries( Object.entries(process.env).filter( ([k]) => k.startsWith(publicPrefix) && (privatePrefix === "" || !k.startsWith(privatePrefix)) ) ); } const validIdentifier = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/; const reserved = /* @__PURE__ */ new Set([ "do", "if", "in", "for", "let", "new", "try", "var", "case", "else", "enum", "eval", "null", "this", "true", "void", "with", "await", "break", "catch", "class", "const", "false", "super", "throw", "while", "yield", "delete", "export", "import", "public", "return", "static", "switch", "typeof", "default", "extends", "finally", "package", "private", "continue", "debugger", "function", "arguments", "interface", "protected", "implements", "instanceof" ]);