appwrite-server-wrapper
Version:
Wrapper library to handle Appwrite methods including server handling using SSR with NextJS v15 (useActionState, useAction,...)
66 lines (65 loc) • 3.1 kB
JavaScript
/*
*
* MANDATORY
* User defined: using env vars
*
*/
const appDomain = process.env.APP_DOMAIN || "";
const databaseId = process.env.APPWRITE_DB_ID || "";
const endpoint = process.env.APPWRITE_ENDPOINT || "";
const projectId = process.env.APPWRITE_PROJECT_ID || "";
const apiKeySsr = process.env.APPWRITE_API_KEY_SSR || "";
const logsBucketId = process.env.APPWRITE_LOGS_BUCKET_ID || "";
const usersCollectionId = process.env.APPWRITE_USERS_COLL_ID || "";
const liveEnvVarName = process.env.APPWRITE_LIVE_ENV_VAR_NAME || "";
/*
*
* OPTIONAL
* Pre-defined: optionally customizable, using env vars
*
*/
const port = process.env.PORT || 3000;
const signInPath = process.env.APPWRITE_SIGN_IN_PATH || "sign-in";
const logsBucketName = process.env.APPWRITE_LOGS_BUCKET_NAME || "logs";
const cookiePrefix = process.env.APPWRITE_SESSION_COOKIE_PREFIX || "a_session_";
const oauthSuccessPath = process.env.APPWRITE_OAUTH_SUCCESS_PATH || "api/oauth";
const oauthFailurePath = process.env.APPWRITE_OAUTH_FAILURE_PATH || signInPath;
const verificationPath = process.env.APPWRITE_VERIFICATION_PATH || "verification";
const cookieName = process.env.APPWRITE_SESSION_COOKIE_NAME || cookiePrefix.concat(projectId);
// File/Folder paths
const i18nPath = process.env.APPWRITE_I18N_PATH || "messages/appwrite";
const logsPath = process.env.APPWRITE_LOGS_PATH || "lib/appwrite/logs";
const schemasPath = process.env.APPWRITE_SCHEMAS_PATH || "lib/appwrite/schemas";
const paths = [i18nPath, logsPath, schemasPath];
/*
*
* Initial env check
*
*/
const envCheck = () => {
if (process.env.NEXT_RUNTIME === "edge") {
throw new Error("APW-WRAPPER - Error: 'appwrite-server-wrapper' is not supported in Edge runtime!");
}
if (!process.env.APP_DOMAIN) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APP_DOMAIN");
}
if (!process.env.APPWRITE_ENDPOINT) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_ENDPOINT");
}
if (!process.env.APPWRITE_PROJECT_ID) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_PROJECT_ID");
}
if (!process.env.APPWRITE_API_KEY_SSR) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_API_KEY_SSR");
}
if (!process.env.APPWRITE_DB_ID) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_DB_ID");
}
if (!process.env.APPWRITE_USERS_COLL_ID) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_USERS_COLL_ID");
}
if (!process.env.APPWRITE_LIVE_ENV_VAR_NAME) {
throw new Error("APW-WRAPPER - Error: Missing required environment variable: APPWRITE_LIVE_ENV_VAR_NAME");
}
};
export { envCheck, apiKeySsr, appDomain, cookiePrefix, cookieName, databaseId, endpoint, i18nPath, liveEnvVarName, oauthSuccessPath, oauthFailurePath, projectId, port, paths, logsPath, schemasPath, signInPath, usersCollectionId, verificationPath, logsBucketId, logsBucketName, };