mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-21 21:09:49 +08:00
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
DB migration compat / Check if migrations changed (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Build and Run / docker (push) Has been cancelled
Runs E2E API Tests (Local Emulator) / E2E Tests (Local Emulator, Node ${{ matrix.node-version }}) (22.x) (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (mock, 22.x) (push) Has been cancelled
Runs E2E API Tests / E2E Tests (Node ${{ matrix.node-version }}, Freestyle ${{ matrix.freestyle-mode }}) (prod, 22.x) (push) Has been cancelled
Runs E2E API Tests with custom port prefix / build (22.x) (push) Has been cancelled
Runs E2E Fallback Tests / E2E Fallback Tests (Node ${{ matrix.node-version }}) (22.x) (push) Has been cancelled
Lint & build / lint_and_build (24) (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
DB migration compat / Back-compat — Current branch migrations with ${{ needs.check-migrations-changed.outputs.base_branch }} branch code (push) Has been cancelled
DB migration compat / Forward-compat — Current branch code with ${{ needs.check-migrations-changed.outputs.base_branch }} branch migrations (push) Has been cancelled
DB migration compat / No migration changes (skipped) (push) Has been cancelled
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { StackClientApp } from "@hexclave/next";
|
|
|
|
const IS_DEV = process.env.NODE_ENV === "development";
|
|
const PLACEHOLDER = "REPLACE_ME";
|
|
|
|
// In dev, fall back to the seeded "internal" project if env vars are placeholders.
|
|
// In prod, the real values must be set via hosting platform env vars.
|
|
function envOrDevDefault(value: string | undefined, devDefault: string): string {
|
|
if (!value || value === PLACEHOLDER) {
|
|
if (IS_DEV) return devDefault;
|
|
throw new Error("Hexclave env var is not configured. Set the NEXT_PUBLIC_STACK_* vars in .env.local or hosting platform env.");
|
|
}
|
|
return value;
|
|
}
|
|
|
|
const portPrefix = process.env.NEXT_PUBLIC_HEXCLAVE_PORT_PREFIX ?? "81";
|
|
|
|
const projectId = envOrDevDefault(process.env.NEXT_PUBLIC_STACK_PROJECT_ID, "internal");
|
|
const publishableClientKey = envOrDevDefault(
|
|
process.env.NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY,
|
|
"this-publishable-client-key-is-for-local-development-only",
|
|
);
|
|
const apiUrl = envOrDevDefault(process.env.NEXT_PUBLIC_STACK_API_URL, `http://localhost:${portPrefix}02`);
|
|
|
|
export const stackClientApp = new StackClientApp({
|
|
projectId,
|
|
publishableClientKey,
|
|
tokenStore: "cookie",
|
|
redirectMethod: "window",
|
|
baseUrl: apiUrl,
|
|
urls: {
|
|
handler: "/handler",
|
|
afterSignIn: "/",
|
|
afterSignUp: "/",
|
|
afterSignOut: "/handler/sign-in",
|
|
},
|
|
});
|