AmplifyJS Client-Side Storage & Messaging

1.1.2-beta.2 · abandoned · verified Wed Apr 22

AmplifyJS is a legacy JavaScript library designed to simplify common web application problems, primarily client-side data storage and publish/subscribe messaging. Its core functionalities include `amplify.store` for persistent local storage (localStorage, sessionStorage, cookies) and `amplify.request` for simplified AJAX requests and client-side pub/sub (`amplify.publish`, `amplify.subscribe`). The library, last updated to version 1.1.2 in 2012 and developed by appendTo, is now considered abandoned. It predates modern JavaScript module systems (like ESM or CommonJS) and was typically included via `<script>` tags, exposing a global `amplify` object. It has no active development, bug fixes, or security patches, making it unsuitable for new projects or existing applications requiring modern maintenance. It should not be confused with AWS Amplify, which is a completely separate, actively maintained suite of tools for cloud-enabled applications.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to include AmplifyJS via a <script> tag and utilize its primary features: `amplify.store` for setting, getting, and removing client-side data, and `amplify.publish`/`amplify.subscribe` for a basic publish-subscribe messaging pattern within the browser.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AmplifyJS Quickstart</title>
    <!-- It is crucial to download amplify.min.js and serve it locally -->
    <!-- For demonstration, assume it's in the same directory -->
    <script src="./amplify.min.js"></script>
</head>
<body>
    <h1>AmplifyJS Demo</h1>
    <p>Check the browser console for output from amplify.store and amplify.pub/sub.</p>

    <script>
        // 1. Using amplify.store for client-side storage
        console.log('--- Amplify.store Demo ---');
        amplify.store('myAppState', { theme: 'dark', userId: 'testUser123' }, { expires: 60000 }); // Store for 1 minute
        let storedData = amplify.store('myAppState');
        console.log('Stored initial state:', storedData);

        // Update a value
        storedData.theme = 'light';
        amplify.store('myAppState', storedData);
        console.log('Updated state:', amplify.store('myAppState'));

        // Remove a value after some time (or explicitly)
        setTimeout(() => {
            amplify.store('myAppState', null); // Setting to null clears the key
            console.log('State after 2 seconds (should be null):', amplify.store('myAppState'));
        }, 2000);

        // 2. Using amplify.publish/subscribe for messaging
        console.log('\n--- Amplify.publish/subscribe Demo ---');
        amplify.subscribe('userLoggedIn', function(userData) {
            console.log(`User ${userData.name} (ID: ${userData.id}) logged in!`);
        });

        amplify.subscribe('userLoggedIn', function(userData, timestamp) {
            console.log(`[Logger] Event received at ${new Date(timestamp).toLocaleTimeString()}`);
        });

        console.log('Publishing userLoggedIn event...');
        amplify.publish('userLoggedIn', { name: 'Jane Doe', id: 'jane_d' }, Date.now());

        // Unsubscribe after some time
        const handlerToUnsubscribe = function(msg) { console.log('This handler will be unsubscribed:', msg); };
        amplify.subscribe('tempEvent', handlerToUnsubscribe);
        amplify.publish('tempEvent', 'First message for tempEvent');
        amplify.unsubscribe('tempEvent', handlerToUnsubscribe);
        amplify.publish('tempEvent', 'Second message (should not be seen)');

    </script>
</body>
</html>

view raw JSON →