UNPKG

dphelper

Version:

dphelper devtools for developers

86 lines (62 loc) 1.98 kB
# memory Memory and state management. ## Functions | Function | Description | Example | |----------|-------------|---------| | `lock` | Lock a state property | `dphelper.memory.lock('state[key]')` | | `unlock` | Unlock a state property | `dphelper.memory.unlock('state[key]')` | ## Description State property protection: - **Lock** - Make property non-writable and non-configurable - **Unlock** - Restore writability and configurability - **Global State** - Work with window-level state objects ## Usage Examples ### Lock State Property ```javascript // Define global state window.myApp = { config: { theme: 'dark' }, user: { name: 'John' } }; // Lock the config dphelper.memory.lock('myApp.config'); // Try to modify (will fail silently or throw in strict mode) myApp.config = {}; // Won't work - locked // Can still modify properties if not locked myApp.config.theme = 'light'; // May work depending on implementation ``` ### Unlock State Property ```javascript // Unlock previously locked property dphelper.memory.unlock('myApp.config'); // Now can modify myApp.config = { theme: 'light' }; ``` ### Protect Application State ```javascript // Create protected app state const appState = { version: '1.0.0', initialized: false, data: {} }; // Add to window window.appState = appState; // Lock critical properties dphelper.memory.lock('appState.version'); // Prevent version changes dphelper.memory.lock('appState.initialized'); // Prevent re-initialization // Unlock when needed (e.g., updates) function updateVersion(newVersion) { dphelper.memory.unlock('appState.version'); appState.version = newVersion; dphelper.memory.lock('appState.version'); } ``` ## Details - **Author:** Dario Passariello - **Version:** 0.0.2 - **Creation Date:** 20230101 - **Last Modified:** 20230111 - **Environment:** client (browser) --- *Automatically generated document*