@lonewolfspace/storage-manager-ts
Version:
A universal browser storage manager with optional AES encryption support for localStorage, sessionStorage, and cookies.
45 lines (44 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StorageManagerConfig = void 0;
const clientDefaults = {
secretKey: process.env.NEXT_PUBLIC_STORAGE_SECRET,
encryption: true,
keyPrefix: "",
};
const serverDefaults = {
secretKey: process.env.STORAGE_MANAGER_SECRET,
encryption: true,
keyPrefix: "",
};
let currentClientConfig = { ...clientDefaults };
let currentServerConfig = { ...serverDefaults };
exports.StorageManagerConfig = {
/**
* Set config for client-side usage (CSR)
*/
configureClient(config) {
currentClientConfig = {
...currentClientConfig,
...config,
};
},
/**
* Set config for server-side usage (SSR)
*/
configureServer(config) {
currentServerConfig = {
...currentServerConfig,
...config,
};
},
/**
* Auto-returns appropriate config based on runtime
*/
getConfig() {
if (typeof window === "undefined") {
return currentServerConfig;
}
return currentClientConfig;
},
};